Skip to content

Bump toxic2 - #349

Merged
lukaszsamson merged 1 commit into
masterfrom
bump-toxic2
Oct 19, 2026
Merged

lukaszsamson merged 1 commit into
masterfrom
bump-toxic2

Conversation

@lukaszsamson

Copy link
Copy Markdown
Collaborator

Bumps toxic2 from c47c911 to 79e583a.

The main reason is lukaszsamson/toxic2#1. A file containing an alias segment (or other name) over the 255-character atom limit made ElixirSense.Core.Parser.parse_string/4 raise, so every request on that file crashed:

** (SystemLimitError) a system limit has been reached
    :erlang.binary_to_atom("Abbbb…", :utf8)
    (toxic2) lib/toxic2/lower.ex: Toxic2.Lower.to_atom/2
    (toxic2) lib/toxic2/lower.ex: Toxic2.Lower.seg_atoms/3
    (toxic2) lib/toxic2/lower.ex: Toxic2.Lower.build_alias/6

Such names are now lowered like any other unconvertible atom (an __error__ node plus a :nonexistent_atom diagnostic).

The range also brings in the toxic2 grammar-gap fixes (the P0–P4 and OX/KIMI audit findings) and the lexer/parser/lowerer performance work. That is 56 commits, about 2.7k lines changed in lib/.

Verified locally on Elixir 1.20.4 / OTP 29: the full suite gives 2313 passed (9 doctests, 5 properties, 2299 tests), the same as master with the old pin, and the long-alias repro no longer raises.

Picks up lukaszsamson/toxic2#1, which makes the lowerer treat names over
the 255-character atom limit as unconvertible atoms instead of raising
SystemLimitError, so ElixirSense.Core.Parser.parse_string no longer
crashes on files containing such an alias. Also includes the toxic2
grammar-gap and performance fixes since c47c911.
@lukaszsamson
lukaszsamson merged commit 52cd140 into master Oct 19, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant