Skip to content

fix: support iodata token values in Lexer.merge/1 - #76

Merged
josevalim merged 2 commits into
elixir-makeup:masterfrom
javiergarea:fix/merge-iodata-token-values
Sep 28, 2026
Merged

josevalim merged 2 commits into
elixir-makeup:masterfrom
javiergarea:fix/merge-iodata-token-values

Conversation

@javiergarea

Copy link
Copy Markdown
Contributor

Token values are documented as iodata().
merge/1 joined them with <>, which only works on binaries.
Merging binaries now returns an iolist.

Comment thread lib/makeup/lexer.ex Outdated
@spec merge(list(T.token())) :: list(T.token())
def merge([{tag, meta, value1}, {tag, meta, value2} | rest]),
do: merge [{tag, meta, value1 <> value2} | rest]
do: merge [{tag, meta, [value1, value2]} | rest]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
do: merge [{tag, meta, [value1, value2]} | rest]
do: merge [{tag, meta, [value1 | value2]} | rest]

@javiergarea
javiergarea force-pushed the fix/merge-iodata-token-values branch 2 times, most recently from afcb6a2 to fbc7ec7 Compare September 28, 2026 19:51
@josevalim
josevalim merged commit 2dce70d into elixir-makeup:master Sep 28, 2026
2 checks passed
@josevalim

Copy link
Copy Markdown
Collaborator

💚 💙 💜 💛 ❤️

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