[vala/0.48] parser: Reduce the source reference of main block method to its beginning



commit ea1d2aedd77b5a84617fce0e2942a284ce59b5b9
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Tue Jan 18 14:33:15 2022 +0100

    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(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c3fad8451..f01ad7079 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -865,6 +865,7 @@ TESTS = \
        parser/local-variable.vala \
        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 d2e42321a..d40994dac 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -2367,7 +2367,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));


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]