From 32871b1293ad3272ec3fa666c6a6b4987e422afe Mon Sep 17 00:00:00 2001 From: Quinton Miller Date: Tue, 30 Jan 2024 00:29:54 +0800 Subject: [PATCH] Fix end locations of `Alias` nodes --- spec/compiler/parser/parser_spec.cr | 1 + src/compiler/crystal/syntax/parser.cr | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/compiler/parser/parser_spec.cr b/spec/compiler/parser/parser_spec.cr index 2fa1a5b4c4a7..25bb4fa42aa1 100644 --- a/spec/compiler/parser/parser_spec.cr +++ b/spec/compiler/parser/parser_spec.cr @@ -2252,6 +2252,7 @@ module Crystal assert_end_location "class Foo; end" assert_end_location "struct Foo; end" assert_end_location "module Foo; end" + assert_end_location "alias Foo = Bar" assert_end_location "->{ }" assert_end_location "macro foo;end" assert_end_location "macro foo; 123; end" diff --git a/src/compiler/crystal/syntax/parser.cr b/src/compiler/crystal/syntax/parser.cr index f14399212e65..15d85b17ba45 100644 --- a/src/compiler/crystal/syntax/parser.cr +++ b/src/compiler/crystal/syntax/parser.cr @@ -5852,9 +5852,10 @@ module Crystal next_token_skip_space_or_newline value = parse_bare_proc_type + end_location = value.end_location skip_space - alias_node = Alias.new(name, value) + alias_node = Alias.new(name, value).at_end(end_location) alias_node.doc = doc alias_node end