From 87d928c1b5dd440d71b1fdb9576ec382100d793e Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 23 Aug 2022 16:54:18 -0400 Subject: [PATCH] Fix right assignment token management --- lib/syntax_tree/parser.rb | 7 ++++++- test/fixtures/rassign.rb | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/syntax_tree/parser.rb b/lib/syntax_tree/parser.rb index 8af0b8ed..ed9de499 100644 --- a/lib/syntax_tree/parser.rb +++ b/lib/syntax_tree/parser.rb @@ -910,7 +910,12 @@ def on_case(value, consequent) location: keyword.location.to(consequent.location) ) else - operator = find_token(Kw, "in", consume: false) || find_token(Op, "=>") + operator = + if (keyword = find_token(Kw, "in", consume: false)) + tokens.delete(keyword) + else + find_token(Op, "=>") + end RAssign.new( value: value, diff --git a/test/fixtures/rassign.rb b/test/fixtures/rassign.rb index ce749550..3db52b18 100644 --- a/test/fixtures/rassign.rb +++ b/test/fixtures/rassign.rb @@ -20,3 +20,6 @@ ConstantConstantConstant, ConstantConstantConstant ] +% +a in Integer +b => [Integer => c]