From 1ec1a041f87be564d1970ff82d5239b45b4dcebc Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Tue, 18 Jan 2022 14:33:15 +0100 Subject: [PATCH] parser: Reduce the source reference of main block method to its beginning The end contains broken information which lead to a crash while trying to report this multi-line source reference. --- tests/Makefile.am | 1 + tests/parser/main-block-minimal.vala | 1 + vala/valaparser.vala | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 tests/parser/main-block-minimal.vala diff --git a/tests/Makefile.am b/tests/Makefile.am index f68930da6..69f687dc1 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -889,6 +889,7 @@ TESTS = \ parser/local-variable-array-type-invalid.test \ parser/lock-statement.vala \ parser/main-block.vala \ + parser/main-block-minimal.vala \ parser/member-access-pointer.vala \ parser/member-initializer.vala \ parser/member-initializer-empty.vala \ diff --git a/tests/parser/main-block-minimal.vala b/tests/parser/main-block-minimal.vala new file mode 100644 index 000000000..d029e43fa --- /dev/null +++ b/tests/parser/main-block-minimal.vala @@ -0,0 +1 @@ +print ("foo"); diff --git a/vala/valaparser.vala b/vala/valaparser.vala index c05f4ea66..8661565f3 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -2488,7 +2488,7 @@ public class Vala.Parser : CodeVisitor { void parse_main_block (Symbol parent) throws ParseError { var begin = get_location (); - var method = new Method ("main", new VoidType (), get_src (begin)); + var method = new Method ("main", new VoidType (), new SourceReference (scanner.source_file, begin, begin)); method.access = SymbolAccessibility.PUBLIC; method.binding = MemberBinding.STATIC; method.body = new Block (get_src (begin)); -- 2.47.2