[vala/wip/proper-source-references: 3/4] parser: Exclude trailing semicolon from source_reference of statements



commit ea50b089a2a4c676a0157826d4fd483692bcddb9
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Fri Mar 8 18:46:02 2019 +0100

    parser: Exclude trailing semicolon from source_reference of statements

 vala/valaparser.vala | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index 1a1320bb1..669c29d87 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -2028,15 +2028,17 @@ public class Vala.Parser : CodeVisitor {
        Statement parse_break_statement () throws ParseError {
                var begin = get_location ();
                expect (TokenType.BREAK);
+               var src = get_src (begin);
                expect (TokenType.SEMICOLON);
-               return new BreakStatement (get_src (begin));
+               return new BreakStatement (src);
        }
 
        Statement parse_continue_statement () throws ParseError {
                var begin = get_location ();
                expect (TokenType.CONTINUE);
+               var src = get_src (begin);
                expect (TokenType.SEMICOLON);
-               return new ContinueStatement (get_src (begin));
+               return new ContinueStatement (src);
        }
 
        Statement parse_return_statement () throws ParseError {
@@ -2046,8 +2048,9 @@ public class Vala.Parser : CodeVisitor {
                if (current () != TokenType.SEMICOLON) {
                        expr = parse_expression ();
                }
+               var src = get_src (begin);
                expect (TokenType.SEMICOLON);
-               return new ReturnStatement (expr, get_src (begin));
+               return new ReturnStatement (expr, src);
        }
 
        Statement parse_yield_statement () throws ParseError {
@@ -2062,16 +2065,18 @@ public class Vala.Parser : CodeVisitor {
                        }
                        return parse_expression_statement ();
                }
+               var src = get_src (begin);
                expect (TokenType.SEMICOLON);
-               return new YieldStatement (get_src (begin));
+               return new YieldStatement (src);
        }
 
        Statement parse_throw_statement () throws ParseError {
                var begin = get_location ();
                expect (TokenType.THROW);
                var expr = parse_expression ();
+               var src = get_src (begin);
                expect (TokenType.SEMICOLON);
-               return new ThrowStatement (expr, get_src (begin));
+               return new ThrowStatement (expr, src);
        }
 
        Statement parse_try_statement () throws ParseError {
@@ -2138,16 +2143,18 @@ public class Vala.Parser : CodeVisitor {
                expect (TokenType.OPEN_PARENS);
                var expr = parse_expression ();
                expect (TokenType.CLOSE_PARENS);
+               var src = get_src (begin);
                expect (TokenType.SEMICOLON);
-               return new UnlockStatement (expr, get_src (begin));
+               return new UnlockStatement (expr, src);
        }
 
        Statement parse_delete_statement () throws ParseError {
                var begin = get_location ();
                expect (TokenType.DELETE);
                var expr = parse_expression ();
+               var src = get_src (begin);
                expect (TokenType.SEMICOLON);
-               return new DeleteStatement (expr, get_src (begin));
+               return new DeleteStatement (expr, src);
        }
 
        string parse_attribute_value () throws ParseError {


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