]> 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>
Tue, 20 Nov 2018 11:42:54 +0000 (12:42 +0100)
This caused to loose comment of first element of enums and error domains.

Regression of 540aa1492c342f482be6838b97f54437f3b776e4

vala/valaparser.vala

index f52fba8938e108ba89d4635cba81efd3883c783b..032e2638bd7fa7ccd8c66c51f4995dc5ec55c809 100644 (file)
@@ -3073,7 +3073,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)) {
@@ -3084,6 +3086,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
@@ -3137,13 +3140,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