José Valim
a0ef7f0c3e
Move struct validation in patterns and updates to type checker
...
This means changing a struct definition only cases
recompilation when structs are created, no longer on
matches and updates.
Closes #15098 .
2026-02-23 14:24:29 +01:00
José Valim
8def030f38
Use type warning instead of typing violation, closes #15065
2026-01-16 08:37:04 +01:00
José Valim
781d500246
Checkpoint before verification to avoid ignore modules warnings
2025-10-05 15:36:13 +02:00
José Valim
2e55f40713
Do not persist temporary compilation warnings, closes #14768
2025-09-14 10:26:55 +02:00
José Valim
468228a236
Add :indentation to Code.string_to_quoted/2 ( #14406 )
2025-04-07 16:02:01 +02:00
Jonatan Männchen
e1d171e5c7
Add inline License / Copyright to Erlang files ( #14255 )
2025-02-05 13:50:00 +01:00
José Valim
c1c2cf8a65
Type checking of protocol dispatch ( #14117 )
2024-12-27 19:40:26 +01:00
José Valim
182e4b5304
Track source for warnings, closes #14093
2024-12-22 11:03:45 +01:00
José Valim
a506ebc257
Avoid crashes on diagnostics with tabs, closes #14073
2024-12-16 12:09:02 +01:00
José Valim
e8ea6a5259
Print type violation slogan
2024-06-18 12:46:53 +02:00
José Valim
7a4060cbf3
Add detail and span to typing diagnostics
...
Closes #13646 .
2024-06-10 16:13:39 +02:00
José Valim
21840ed563
Do not assume all parser errors can be parsed into erlang terms
2024-06-05 12:21:23 +02:00
José Valim
b3710dea97
Always start IEx shell via -user
...
There is some uncertainty as to wether it will be possible
to start an IEx shell dynamically from a -noshell environment.
Therefore, this PR simplifies the shell booting to still
rely on -user, as it did earlier than Erlang/OTP 26.
2024-02-29 14:48:54 +01:00
José Valim
e4a71032d5
Always log errors at the end
2024-01-17 23:14:20 +01:00
José Valim
926560350b
Extract snippet in elixir_errors to simplify exception handling
2023-12-21 21:14:44 +01:00
José Valim
7f3d62108b
Consider column in snippets, closes #13199
2023-12-21 19:26:06 +01:00
José Valim
3a52c2d729
Add source field to diagnostics
2023-12-21 17:05:47 +01:00
Vinícius Müller
1d978bf73c
Improve unclosed delimiter messages ( #13123 )
2023-12-04 12:46:15 +01:00
José Valim
dfba5db6c0
Consider start line in MismatchedDelimiterError
2023-11-13 12:28:39 +01:00
José Valim
665a459a59
Handle nil values in IO.warn
2023-11-10 12:53:34 +01:00
George Guimarães
eb20bdd716
Fix some typos ( #13043 )
2023-10-30 17:48:47 +01:00
Vinícius Müller
9a74a73a00
Normalize hint labels ( #12958 )
2023-09-23 18:59:08 +02:00
José Valim
32690dd7d1
Read snippets as binaries
2023-09-16 20:30:04 +02:00
Vinícius Müller
10077bdb5e
Add span to unused/undefined variable diagnostics ( #12940 )
2023-09-16 20:11:26 +02:00
Vinícius Müller
f1594048a5
Unicode support for mismatched delimiter errors ( #12935 )
2023-09-16 10:59:59 +02:00
Vinícius Müller
3111a5b78a
Improve mismatched delimiter message ( #12928 )
2023-09-15 18:31:48 +02:00
Vinícius Müller
0349240827
Add MistmatchedDelimiterError ( #12918 )
2023-09-12 12:18:51 +02:00
Vinícius Müller
7e9006988d
Add span field to diagnostics ( #12843 )
2023-09-03 21:14:51 +02:00
José Valim
d3a6395edf
Only add spacing to error message if snippet is present
2023-07-31 13:11:33 +02:00
Vinícius Müller
48b471d055
Update diagnostics reporting format ( #12813 )
2023-07-20 18:49:55 +02:00
José Valim
56098b98db
Only include location in diagnostic when precise
2023-07-03 17:55:27 +02:00
Vinícius Müller
f60d54bbc1
Show snippets on additional diagnostics printing ( #12725 )
2023-07-02 14:29:41 +02:00
Vinícius Müller
384ca45a16
Fix infinite recursion in get_file_line ( #12714 )
2023-06-26 11:38:11 +03:00
José Valim
7b67dd4553
Remove trailing space and trailing newlines in snippets
2023-06-25 20:04:11 +02:00
Vinícius Müller
2e87bc8385
Align error snippet with stacktrace on single digit lines ( #12709 )
2023-06-25 19:46:24 +02:00
Jean Klingler
88d6436a39
Refactoring: use recursion instead of building list ( #12711 )
2023-06-25 16:54:56 +09:00
Vinícius Müller
774d10b83e
Improve compiler warnings visuals ( #12683 )
2023-06-24 22:18:37 +02:00
Jean Klingler
a7edd6ea47
Parser honors :static_atoms_encoder for multi-letter sigils ( #12706 )
...
* Unify sigil token generation
* Parser honors :static_atoms_encoder for multi-letter sigils
* Remove chars from token, reverse engineer from atom
2023-06-24 18:29:24 +09:00
José Valim
fcc743c47f
Simplify whitespace prunning
2023-06-19 13:29:54 +02:00
Vinícius Müller
0da6662b5e
Improvide diagnostics on lexer exceptions ( #12670 )
2023-06-19 11:07:59 +02:00
Vinícius Müller
34f54c0cea
Pass column info through meta_location and env_format ( #12639 )
2023-06-09 19:24:34 +02:00
sabiwara
4fc5b77c40
Code.with_diagnostics/2 formats paths as relative ( #12590 )
...
* Code.with_diagnostics/2 formats paths as relative
* Fix in :elixir_errors instead
* Fix it in parallel checker too
2023-05-25 20:07:09 +09:00
José Valim
5480491dc5
Include column information in unused variable warning, closes #12591
2023-05-23 20:31:49 +02:00
José Valim
a0f0f75ee8
Add Code.with_diagnostics/2, closes #12276
2023-05-16 11:52:59 +02:00
José Valim
6476355246
Keep stacktrace in diagnostics
2023-05-15 23:35:07 +02:00
José Valim
48e2efd2d9
Return diagnostics from Kernel.ParallelCompiler
2023-05-10 12:32:25 +02:00
José Valim
b04bbed1e3
Check for prim_tty on Erlang/OTP 26+
2023-03-23 15:52:27 +01:00
Andrea Leopardi
c402e8336c
Add support for multi-letter uppercase sigils ( #12448 )
2023-03-05 13:10:28 -06:00
José Valim
a3a7b15768
Fix accidental variable match in errors from macro, closes #12340
2023-01-15 11:19:02 +01:00
José Valim
d634355ace
Fix code comment
2022-11-29 08:18:13 +01:00