Skip to content

fix: handle ellipsis before <-, ::, and when#114

Merged
mhanberg merged 1 commit intoelixir-tools:mainfrom
mkaput:mk/pr-8b50284-ellipsis-ops
Mar 4, 2026
Merged

fix: handle ellipsis before <-, ::, and when#114
mhanberg merged 1 commit intoelixir-tools:mainfrom
mkaput:mk/pr-8b50284-ellipsis-ops

Conversation

@mkaput
Copy link
Contributor

@mkaput mkaput commented Feb 18, 2026

Ellipsis standalone detection used is_binary_op?/1, but that set did not include in_match_op, type_op, or when_op. As a result, expressions like x...<-y and x...::y attempted to parse <-/:: as an ellipsis RHS prefix and failed with unknown token errors.

Extend @binary_op_types with when_op, in_match_op, and type_op so parse_ellipsis_op/1 keeps ... standalone before those operators, matching Elixir AST behavior.

Add regression assertions in the existing property regression block for x...<-y, x...::y, and x... when y alongside the newline ternary case.

@mkaput mkaput force-pushed the mk/pr-8b50284-ellipsis-ops branch 2 times, most recently from 065ec79 to caa2ffc Compare February 19, 2026 13:12
Ellipsis standalone detection used is_binary_op?/1, but that set did not include in_match_op, type_op, or when_op. As a result, expressions like x...<-y and x...::y attempted to parse <-/:: as an ellipsis RHS prefix and failed with unknown token errors.

Extend @binary_op_types with when_op, in_match_op, and type_op so parse_ellipsis_op/1 keeps ... standalone before those operators, matching Elixir AST behavior.

Add regression assertions in the existing property regression block for x...<-y, x...::y, and x... when y alongside the newline ternary case.
@mhanberg mhanberg force-pushed the mk/pr-8b50284-ellipsis-ops branch from caa2ffc to 692fdf3 Compare March 4, 2026 03:02
@mhanberg mhanberg merged commit 221fe49 into elixir-tools:main Mar 4, 2026
31 of 37 checks passed
mhanberg pushed a commit that referenced this pull request Mar 4, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.3.8](v0.3.7...v0.3.8)
(2026-03-04)


### Bug Fixes

* handle ellipsis before &lt;-, ::, and when
([#114](#114))
([221fe49](221fe49))
* parse newline ternary continuation after ellipsis
([#115](#115))
([708da64](708da64))
* preserve fn newline metadata after semicolons
([#112](#112))
([52099ff](52099ff))
* preserve leading nil in stab clause body
([#120](#120))
([f0a79a0](f0a79a0)),
closes [#113](#113)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

2 participants