Commit Graph
2627 Commits
Author SHA1 Message Date
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