Jean Klingler
aef3dcecd1
Warn on deprecated ~~~ unary op in tokenizer ( #14870 )
2025-10-29 19:23:31 +09:00
José Valim
dc6647c0e9
Pass signatures on the side instead of module map
2025-10-23 00:18:14 +02:00
José Valim
d18088a3b4
Do not include signatures twice in beam files
2025-10-22 23:58:33 +02:00
José Valim
22b47d7f48
Measure and optimize writing of .beam files in the compiler
...
This should provide meaningful benefits when working with
containers and network mounted drives.
2025-10-22 10:47:00 +02:00
José Valim
f4aa384d1b
Escape meta within existing quote extensions ( #14832 )
...
Closes #14829
Closes #14830
2025-10-14 13:07:05 +02:00
José Valim
e07f0117bd
Improve error message when escaping default values with custom rules in structs, closes #14817
2025-10-07 14:26:02 +02:00
José Valim
36b0a69d3c
Ensure escaping works within struct fields, closes #14817
2025-10-07 13:07:18 +02:00
Eksperimental
e7c121609e
Grammar correction: to warn of ( #14816 )
...
Use "to warn of something" instead of "to warn for something".
Some instances of "to warn on" and "to warn about" have been replaced.
2025-10-06 19:05:04 +02:00
José Valim
781d500246
Checkpoint before verification to avoid ignore modules warnings
2025-10-05 15:36:13 +02:00
José Valim
184c7717f6
Include previous clause line on default errors/warnings, closes #14804
2025-10-01 08:43:16 +02:00
Jean Klingler
16fb81545d
Optimize for comprehensions into: MapSet ( #14796 )
2025-09-29 18:15:50 +09:00
Guillaume Duboc
5a2a5ae96c
Rewrite maps, tuples, lists as BDDs and improve performance ( #14693 )
2025-09-28 19:04:45 +02:00
José Valim
0685a35c63
Address regressions on 'not in' operator
...
Closes #14783 .
2025-09-28 17:03:32 +02:00
José Valim
bba5542393
Do not warn on conditional requires or requires from quote
2025-09-27 16:33:05 +02:00
Thiago Santos
f089571351
Warn on unused require ( #14779 )
2025-09-23 09:38:06 +02:00
Jean Klingler
9a8794183e
Warn on boot for OTP28.0 ( #14732 )
2025-09-18 19:08:39 +09:00
Jean Klingler
514bc86a71
Fix Macro.escape/1 bug when :quote tuples is in the tail of a list ( #14775 )
...
Close https://github.com/elixir-lang/elixir/issues/14771
2025-09-17 07:15:16 +09:00
Jean Klingler
2ee1d0eb78
Bugfix: Macro.escape/1 properly escapes meta in :quote tuples ( #14773 )
...
Close #14771
Also internally renames the `op` field inside `elixir_quote`: `none -> escape`, `prune_metadata` -> `escape_and_prune`, `add_context -> quote`.
2025-09-16 18:36:39 +09:00
José Valim
2e55f40713
Do not persist temporary compilation warnings, closes #14768
2025-09-14 10:26:55 +02:00
José Valim
bedb6777c1
Revert "Bump column info on open curly in %{"
...
Otherwise tokens are emitted with the wrong information.
This reverts commit 6a7511f9af .
2025-09-02 11:23:24 +02:00
José Valim
6a7511f9af
Bump column info on open curly in %{
2025-09-02 10:17:30 +02:00
José Valim
78fb312013
Consistently treat \ followed by newlines as horizontal space
...
Closes #14713 .
Closes #14714 .
2025-08-31 20:04:24 +02:00
José Valim
90e1826c7e
Include meta information in blocks from do-end blocks
...
Closes #14689 .
2025-08-31 13:51:02 +02:00
José Valim
02968a46ff
Add closing token metadata to a.{}, closes #14682
2025-08-31 13:08:28 +02:00
José Valim
33ee657a7f
Properly handle column for 'in' in 'not in' operator
...
Closes #14681 .
2025-08-31 13:08:28 +02:00
Jean Klingler
b87a9fa35b
Do not consider variables from pattern in bitstring modifier ( #14738 )
2025-08-31 19:20:26 +09:00
José Valim
54321de136
Update bidi/line break character checks according to UX#55
2025-08-31 10:56:33 +02:00
José Valim
6ee313a835
Only break newlines if original char is a newline
2025-08-31 10:50:57 +02:00
Lukasz Samson
c5f1c64be3
Advance line when processing ? followed by <LF> and \<LF>
...
Closes #14715 .
2025-08-31 10:14:49 +02:00
Jean Klingler
032d5660f3
Shallow-validate the return of __escape__ ( #14736 )
2025-08-31 15:50:35 +09:00
Jean Klingler
7a8dc78593
Add __escape__/1 and use it to fix Regex escaping in OTP28.1+ ( #14720 )
...
Leverages newly added :re.import/1.
https://github.com/erlang/otp/pull/9976
2025-08-30 18:15:50 +09:00
Jean Klingler
67042e8770
Stop propagating generated on macro arguments ( #14696 )
...
* Stop propagating generated on macro arguments
* Explicitly mark assert as generated
2025-08-07 05:54:41 +09:00
Łukasz Samson
75a3272036
Fix expand crash on invalid multialias root ( #14698 )
2025-08-06 08:49:12 +02:00
José Valim
b2d548af0e
Remove general catch on sigil token
2025-07-28 08:28:51 +02:00
Łukasz Samson
23776d9e8f
Return error on invalid unicode sequences ( #14666 )
2025-07-27 19:04:14 +02:00
José Valim
4b48982da1
Remove incorrect about incorrect usage of \x in strings
...
Their usage in Elixir v1.0 was always semantically wrong,
which became deprecation warnings in v1.1 to avoid crashes.
Any software relying on this feature both emits warnings
and invalid strings.
Closes #14660 .
2025-07-20 18:22:59 +02:00
José Valim
f4fdf64b61
Update checker to v2 as representation has changed
2025-07-16 16:39:20 +02:00
José Valim
a6844bf725
Add tests for allow_locals option
2025-07-10 17:30:36 +02:00
Łukasz Samson
802ecdd4a0
Add local_for_callback option to Macro.Env.expand_import ( #14620 )
2025-07-10 17:15:21 +02:00
José Valim
08d3865fad
Transform the struct update syntax into a type assertion
...
This transforms the struct update into a type assertion,
requiring the type system to be sure the expression has
precisely the given struct type.
The struct update syntax may still be deprecated in the
future but this will provide a safer migration path and
allow us to engage in more conversations with the community.
2025-06-25 19:30:04 +02:00
José Valim
54515bf48a
Distinguish source_anno from doc_anno, see #14595
2025-06-21 03:54:44 -07:00
Łukasz Samson
b2587e8633
Handle error result from unescape_tokens in tokenizer ( #14587 )
2025-06-19 12:02:02 -07:00
Łukasz Samson
6ca0ad84b7
Consistently raise UnicodeConversionError in tokenizer ( #14589 )
2025-06-19 12:00:43 -07:00
Łukasz Samson
972f9e46ed
Fix invalid warning on no parens call on true ( #14593 )
2025-06-19 05:56:47 -07:00
Łukasz Samson
f07bc7b3d5
Fix typo in elixir_erl_pass inline_pure_function decode_www_form ( #14592 )
2025-06-19 20:08:57 +09:00
Jean Klingler
d59f49aa54
Mark inlined function call result as generated ( #14581 )
2025-06-14 19:05:31 +09:00
José Valim
fb9a9e97d8
Allow captures to be reconstructed on type system pretty printing
2025-06-11 13:51:24 +02:00
José Valim
5946e8bb9d
Improve error message for bad/missing clauses, closes #14569
2025-06-10 14:38:30 +02:00
Joe Yates
46b5fabc63
Fix use of prefer with '-ing' ( #14568 )
2025-06-10 11:17:04 +02:00
José Valim
bff9f3ebbc
Point out module must be required before macro usage in match/guard
2025-06-10 10:13:50 +02:00