José Valim
2e9ce85e91
Fix precedence when parsing unary ops with do-end blocks
...
Closes #15849 . Closes #15851 .
2026-09-05 10:04:11 +02:00
Jean Klingler
4a74923ebb
Minor improvements to invalid struct key error ( #15852 )
2026-09-05 16:48:42 +09:00
Daniel Kukula
6cde8680ab
Remove intermediate list in elixir_interpolation hex_to_int ( #15767 )
2026-08-18 17:36:38 +02:00
Daniel Kukula
11e920f9e4
Fast path for unescape_char/2 ( #15766 )
2026-08-18 17:25:48 +02:00
Alexander Gubarev
c929e885bb
Fix struct key malformed error message ( #15735 )
2026-08-12 23:46:03 +02:00
José Valim
b911bb0380
Raise when | is used in guards, closes #15734
2026-08-12 07:42:25 +02:00
José Valim
ca719e08fb
Do not store optional in descr ( #15624 )
2026-07-17 01:20:39 +02:00
José Valim
6adff3fcc2
Fix cursor completion after operators
...
Treat trailing operator keywords as completion fragments
when they follow another operator.
Assisted-by: Codex:GPT-5
Closes #15591 .
2026-07-11 16:52:00 +02:00
José Valim
46c461e617
Expand defguard per guard and expression
...
Closes #15450 .
Closes #15284 .
2026-06-24 13:07:43 +02:00
José Valim
f4bf3fd20e
Segregate bitstring and bitstring no binary in map domains
2026-06-23 10:43:35 +02:00
Jean Klingler
83e9b66e65
Add to_unsafe_atom/1 and soft-deprecate to_atom/1 ( #15494 )
2026-06-16 20:50:11 +09:00
Jean Klingler
8efdf4eb10
Add List.to_existing_atom/2 to validate against a list of allowed atoms ( #15493 )
2026-06-16 20:35:01 +09:00
Jean Klingler
fd1109e859
Add String.to_existing_atom/2 to validate against a list of allowed atoms ( #15483 )
2026-06-16 17:45:09 +09:00
José Valim
23d9bfd3e1
Do not leak vars between default args
...
Closes #15463 .
2026-06-15 13:55:39 +02:00
José Valim
99cd654460
Handle rebound vars in bitstring size expansion
...
Closes #15479 .
2026-06-15 13:45:55 +02:00
Łukasz Samson
784db65375
Fix missed optimization of Kernel.put_elem/3 ( #15480 )
...
?reorder added in 87582af54 used wrong arity and wrong erlang call
2026-06-15 12:16:54 +02:00
Jean Klingler
2421be6732
Fix bin comprehensions when option is used ( #15473 )
...
* Fix bin comprehensions - static size
* Fix bin comprehensions - pinned var size
* Fix bin comprehensions - operations
* Add tests for nested generators
2026-06-15 17:32:26 +09:00
Jean Klingler
df9d1d6e52
Cleaner error message for unquote when quote is used in a pattern ( #15469 )
2026-06-13 21:15:55 +09:00
José Valim
82fa62d0a5
Use cyclic instead of recursive, add more examples, closes #15462
2026-06-12 18:50:54 +02:00
José Valim
6a14c55681
Warn on unaligned binary segments
...
Closes #15465 .
2026-06-12 18:06:05 +02:00
Alexander Gubarev
bb8480fc3c
Typo fixes ( #15447 )
2026-06-10 00:25:22 +02:00
José Valim
65e6b08576
Tag lists member as returning boolean
2026-06-07 11:07:14 +02:00
Gary Rennie
9ee4bcf564
Add support for erlc_options and beam_debug_info chunk to support edb ( #15438 )
2026-06-07 10:53:57 +02:00
José Valim
b897da7b4c
require_file releases the file if compilation fails
2026-06-04 19:42:34 +02:00
Jonatan Männchen
b5f1864d4e
Use package.hexdocs.pm URL format instead of hexdocs.pm/package ( #15429 )
2026-05-30 22:19:31 +02:00
Jean Klingler
db6e80277d
Never suggest back invalid characters in tokenizer hint ( #15421 )
2026-05-27 10:23:12 +02:00
Jean Klingler
571c108503
Inline in empty list in erlang pass ( #15413 )
2026-05-24 09:05:42 +09:00
José Valim
e17cb856a0
Avoid false positives on cascading warnings
...
Only emit warnings for missing exports in defined
modules to avoid false positives with modules from
the current project which may not have been defined
yet.
2026-05-22 10:41:13 +02:00
José Valim
5337ab8716
Revert expansion of or/and in guards
...
This partially reverts aad63173 as it caused
massive AST to generate when expanding guards
with `expr in [...]` checks in them, as each
`or` became a full-blown case expression.
Alternative approaches will be explored in
future releases.
2026-05-22 09:51:09 +02:00
José Valim
8336f33263
Wrap quote in a function that will implement recursive types
...
Closes #15410 .
2026-05-22 09:51:09 +02:00
Evadne Wu
ca13b750ce
Fix parse_error input spec ( #15393 )
2026-05-16 13:20:23 +02:00
José Valim
87582af546
Preserve evaluation order when rewriting ( #15389 )
...
This was done by moving the rewriting which change evaluation order to the Erlang pass,
otherwise would be hard to rewrite back in the type checker reports.
Closes #15310 .
2026-05-14 21:16:55 +02:00
José Valim
46f7b37916
Ignore eval failure warnings from Erlang
...
Closes #15372 .
2026-05-14 13:59:28 +02:00
José Valim
aae39c87dc
Fix warnings
2026-05-12 14:49:36 +02:00
Łukasz Samson
68c413f76c
Improve ambiguous import error message ( #15335 )
2026-05-06 12:22:34 +02:00
Guillaume Duboc
c376c0feb6
Hash-cons BDD descriptors ( #15332 )
2026-05-04 11:55:53 +02:00
José Valim
002e382794
Raise when loading struct info
2026-05-04 10:09:24 +02:00
José Valim
3120d4539b
Type checked struct operations must not deadlock the compiler
2026-05-04 01:24:42 +02:00
José Valim
facde14525
Inline struct loading
2026-05-04 01:24:42 +02:00
José Valim
40e930607a
Use definition instead of origin in meta
2026-05-04 01:24:42 +02:00
Łukasz Samson
39d646f459
Include sigils option in invalid import error message ( #15334 )
2026-05-01 23:04:20 +02:00
Łukasz Samson
007efde2d5
Fix reentrancy of Code.eval_* ( #15306 )
...
Keep env and dbg callbacks on stacks in process dict
Closes #15303
2026-04-28 19:38:28 +02:00
José Valim
e5d8b00e5b
Remove maps:put/3 inlining, as it is done by the Erlang compiler, closes #15313
2026-04-27 12:03:24 +02:00
Łukasz Samson
76d3fbad88
Disallow raw CR line ending in strings, comments and after ? ( #15307 )
2026-04-26 09:32:12 +02:00
Łukasz Samson
4ad7497d0e
Consistently validate column option passed to parser ( #15295 )
...
Apply the same guard `line` option uses
2026-04-21 13:41:04 +02:00
Łukasz Samson
5e44c78fff
Fix compiler crash on invalid nested bitstring ( #15280 )
2026-04-16 15:32:48 +02:00
Lukasz Samson
4d56bdd898
Do not reset quote level on calls in has_unquotes/2
...
The bug was introduced in 146fb4e3ff
Signed-off-by: José Valim <jose.valim@gmail.com >
2026-04-16 13:49:37 +02:00
José Valim
2e9981d98c
Raise when splicing cons without head, closes #15282
2026-04-16 13:48:08 +02:00
José Valim
370e7db14a
Ensure compiler modules are returned on failures, closes #15279
2026-04-16 08:26:16 +02:00
Łukasz Samson
5a1fa351dc
Fix invalid module reference in prune_stacktrace ( #15272 )
...
Closes #15271
2026-04-15 08:59:08 +02:00