Repository navigation
fix: keep newline after unclosed map or struct - #145
Merged
Merged
Conversation
When a map or struct literal was missing its closing brace, the parser
consumed the following newline anyway. The first token of the next line
then looked like part of the map's enclosing expression and was dropped,
so an unfinished `a = %{` above `defmodule Bar do` lost the
`defmodule`. In container_cursor_to_quoted, the same thing left a
keyword pair followed by `__cursor__(`, which crashed
parse_call_expression with a MatchError.
A `%` at the end of a line had the same effect through the struct type
parser, which skipped past the newline after reporting it.
A do-block after an alias, as in `Foo do ... end`, was attached as an
extra alias segment and parsed as valid. Elixir rejects it, and the
resulting AST is malformed. It is now reported as a syntax error.
doorgan
force-pushed
the
doorgan/struct-bug
branch
from
October 15, 2026 20:26
357fb16 to
aa17abe
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes a bug reported in Expert at expert-lsp/expert#938