Skip to content

Commit

Permalink
- builders/default: fix constant_pattern source map
Browse files Browse the repository at this point in the history
  • Loading branch information
palkan committed Mar 20, 2020
1 parent 5610352 commit 20a7d25
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
6 changes: 3 additions & 3 deletions doc/AST_FORMAT.md
Expand Up @@ -2139,7 +2139,7 @@ Format:
"in X[^foo bar]"
~ begin (const-pattern)
~ end (const-pattern)
~~~~~~~~~~~ expression (const-pattern)
~~~~~~~~~~~~ expression (const-pattern)
~ name (const-pattern.const)
~ expression (const-pattern.const)
~~~
Expand All @@ -2157,7 +2157,7 @@ Format:
"in X[foo:, bar:]"
~ begin (const-pattern)
~ end (const-pattern)
~~~~~~~~~~~~ expression (const-pattern)
~~~~~~~~~~~~~ expression (const-pattern)
~ name (const-pattern.const)
~ expression (const-pattern.const)
~~~
Expand All @@ -2173,7 +2173,7 @@ Format:
"in X[]"
~ begin (const-pattern)
~ end (const-pattern)
~~ expression (const-pattern)
~~~ expression (const-pattern)
~ name (const-pattern.const)
~ expression (const-pattern.const)
~~ expression (const-pattern.array_pattern)
Expand Down
6 changes: 5 additions & 1 deletion lib/parser/builders/default.rb
Expand Up @@ -1340,7 +1340,11 @@ def match_with_trailing_comma(match, comma_t)

def const_pattern(const, ldelim_t, pattern, rdelim_t)
n(:const_pattern, [const, pattern],
collection_map(ldelim_t, [pattern], rdelim_t))
Source::Map::Collection.new(
loc(ldelim_t), loc(rdelim_t),
const.loc.expression.join(loc(rdelim_t))
)
)
end

def pin(pin_t, var)
Expand Down
12 changes: 6 additions & 6 deletions test/test_parser.rb
Expand Up @@ -8993,7 +8993,7 @@ def test_pattern_matching_const_pattern
nil,
s(:true)),
%q{in A(1, 2) then true},
%q{ ~~~~~~ expression (in_pattern.const_pattern)
%q{ ~~~~~~~ expression (in_pattern.const_pattern)
| ~ begin (in_pattern.const_pattern)
| ~ end (in_pattern.const_pattern)
| ~ expression (in_pattern.const_pattern.const)
Expand All @@ -9009,7 +9009,7 @@ def test_pattern_matching_const_pattern
nil,
s(:true)),
%q{in A(x:) then true},
%q{ ~~~~ expression (in_pattern.const_pattern)
%q{ ~~~~~ expression (in_pattern.const_pattern)
| ~ begin (in_pattern.const_pattern)
| ~ end (in_pattern.const_pattern)
| ~ expression (in_pattern.const_pattern.const)
Expand All @@ -9024,7 +9024,7 @@ def test_pattern_matching_const_pattern
nil,
s(:true)),
%q{in A() then true},
%q{ ~~ expression (in_pattern.const_pattern)
%q{ ~~~ expression (in_pattern.const_pattern)
| ~ begin (in_pattern.const_pattern)
| ~ end (in_pattern.const_pattern)
| ~ expression (in_pattern.const_pattern.const)
Expand All @@ -9041,7 +9041,7 @@ def test_pattern_matching_const_pattern
nil,
s(:true)),
%q{in A[1, 2] then true},
%q{ ~~~~~~ expression (in_pattern.const_pattern)
%q{ ~~~~~~~ expression (in_pattern.const_pattern)
| ~ begin (in_pattern.const_pattern)
| ~ end (in_pattern.const_pattern)
| ~ expression (in_pattern.const_pattern.const)
Expand All @@ -9057,7 +9057,7 @@ def test_pattern_matching_const_pattern
nil,
s(:true)),
%q{in A[x:] then true},
%q{ ~~~~ expression (in_pattern.const_pattern)
%q{ ~~~~~ expression (in_pattern.const_pattern)
| ~ begin (in_pattern.const_pattern)
| ~ end (in_pattern.const_pattern)
| ~ expression (in_pattern.const_pattern.const)
Expand All @@ -9072,7 +9072,7 @@ def test_pattern_matching_const_pattern
nil,
s(:true)),
%q{in A[] then true},
%q{ ~~ expression (in_pattern.const_pattern)
%q{ ~~~ expression (in_pattern.const_pattern)
| ~ begin (in_pattern.const_pattern)
| ~ end (in_pattern.const_pattern)
| ~~ expression (in_pattern.const_pattern.array_pattern)}
Expand Down

0 comments on commit 20a7d25

Please sign in to comment.