Skip to content

Commit 6a0e939

Browse files
ggcampinhoJosé Valim
authored andcommitted
Fix column count on heredoc tokenizer (#7486)
Signed-off-by: José Valim <[email protected]>
1 parent d59c801 commit 6a0e939

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

lib/elixir/src/elixir_tokenizer.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -735,7 +735,7 @@ extract_heredoc(Line0, Column0, Rest0, Marker, Scope) ->
735735
%% in the final heredoc body three lines below.
736736
case extract_heredoc_body(Line0, Column0, Marker, [$\n | Rest1], []) of
737737
{ok, Line1, Body, Rest2, Spaces} ->
738-
{ok, Line1, 1, tl(remove_heredoc_spaces(Body, Spaces, Marker, Scope)), Rest2};
738+
{ok, Line1, 4 + Spaces, tl(remove_heredoc_spaces(Body, Spaces, Marker, Scope)), Rest2};
739739
{error, Reason, ErrorLine} ->
740740
Terminator = [Marker, Marker, Marker],
741741
{Message, Token} = heredoc_error_message(Reason, Line0, Terminator),

lib/elixir/test/erlang/tokenizer_test.erl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ string_test() ->
151151
[{bin_string, {1, 1, nil}, [<<"f\"">>]}] = tokenize("\"f\\\"\""),
152152
[{list_string, {1, 1, nil}, [<<"foo">>]}] = tokenize("'foo'").
153153

154+
heredoc_test() ->
155+
[{bin_heredoc, {1, 1, nil}, [<<"heredoc\n">>]}] = tokenize("\"\"\"\nheredoc\n\"\"\""),
156+
[{bin_heredoc, {1, 1, nil}, [<<"heredoc\n">>]}, {';', {3, 5, 0}}] = tokenize("\"\"\"\n heredoc\n \"\"\";").
157+
154158
empty_string_test() ->
155159
[{bin_string, {1, 1, nil}, [<<>>]}] = tokenize("\"\""),
156160
[{list_string, {1, 1, nil}, [<<>>]}] = tokenize("''").

0 commit comments

Comments
 (0)