]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
parser: Use comment which was already retrieved in parse_declaration()
authorRico Tzschichholz <ricotz@ubuntu.com>
Tue, 20 Nov 2018 11:31:52 +0000 (12:31 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Mon, 26 Nov 2018 08:59:49 +0000 (09:59 +0100)
This caused to loose comment of first element of enums and error domains.

Regression of 540aa1492c342f482be6838b97f54437f3b776e4

vala/valaparser.vala

index c4d8a5313b4af87063d81c814bc950c0f1b33f78..59d659f356fea7cee0f5ccb4fbc50918845adaf1 100644 (file)
@@ -3103,7 +3103,9 @@ public class Vala.Parser : CodeVisitor {
                        var value_attrs = parse_attributes ();
                        var value_begin = get_location ();
                        string id = parse_identifier ();
-                       comment = scanner.pop_comment ();
+                       if (comment == null) {
+                               comment = scanner.pop_comment ();
+                       }
 
                        Expression value = null;
                        if (accept (TokenType.ASSIGN)) {
@@ -3114,6 +3116,7 @@ public class Vala.Parser : CodeVisitor {
                        ev.access = SymbolAccessibility.PUBLIC;
                        set_attributes (ev, value_attrs);
                        en.add_value (ev);
+                       comment = null;
                } while (accept (TokenType.COMMA));
                if (accept (TokenType.SEMICOLON)) {
                        // enum methods
@@ -3167,13 +3170,17 @@ public class Vala.Parser : CodeVisitor {
                        var code_attrs = parse_attributes ();
                        var code_begin = get_location ();
                        string id = parse_identifier ();
-                       comment = scanner.pop_comment ();
+                       if (comment == null) {
+                               comment = scanner.pop_comment ();
+                       }
+
                        var ec = new ErrorCode (id, get_src (code_begin), comment);
                        set_attributes (ec, code_attrs);
                        if (accept (TokenType.ASSIGN)) {
                                ec.value = parse_expression ();
                        }
                        ed.add_code (ec);
+                       comment = null;
                } while (accept (TokenType.COMMA));
                if (accept (TokenType.SEMICOLON)) {
                        // errordomain methods