diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-01-18 20:03:37 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-02-03 13:33:40 +0100 |
commit | ec37f4cef2bf5746fcc19ad1289b124bd9b0076a (patch) | |
tree | 06fafaf595421a1574f4c3f37edc5f9d0d06602e /vala/valaparser.vala | |
parent | 5464767cfa5a8dbbc5f46293693ca627b8fcc46d (diff) | |
download | vala-ec37f4cef2bf5746fcc19ad1289b124bd9b0076a.tar.gz |
parser: Handle delimiters inside of parse_argument_list/parse_initializer
Diffstat (limited to 'vala/valaparser.vala')
-rw-r--r-- | vala/valaparser.vala | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/vala/valaparser.vala b/vala/valaparser.vala index d399d9dd6..fd2b31ad2 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -575,12 +575,14 @@ public class Vala.Parser : CodeVisitor { } List<Expression> parse_argument_list () throws ParseError { + expect (TokenType.OPEN_PARENS); var list = new ArrayList<Expression> (); if (current () != TokenType.CLOSE_PARENS) { do { list.add (parse_argument ()); } while (accept (TokenType.COMMA)); } + expect (TokenType.CLOSE_PARENS); return list; } @@ -786,9 +788,7 @@ public class Vala.Parser : CodeVisitor { } Expression parse_method_call (SourceLocation begin, Expression inner) throws ParseError { - expect (TokenType.OPEN_PARENS); var arg_list = parse_argument_list (); - expect (TokenType.CLOSE_PARENS); var src = get_src (begin); var init_list = parse_object_initializer (); @@ -877,7 +877,7 @@ public class Vala.Parser : CodeVisitor { } var member = parse_member_name (); - if (accept (TokenType.OPEN_PARENS)) { + if (current () == TokenType.OPEN_PARENS) { var expr = parse_object_creation_expression (begin, member); return expr; } else { @@ -901,7 +901,6 @@ public class Vala.Parser : CodeVisitor { Expression parse_object_creation_expression (SourceLocation begin, MemberAccess member) throws ParseError { member.creation_member = true; var arg_list = parse_argument_list (); - expect (TokenType.CLOSE_PARENS); var src = get_src (begin); var init_list = parse_object_initializer (); @@ -2733,8 +2732,7 @@ public class Vala.Parser : CodeVisitor { expect (TokenType.OPEN_BRACE); var initializer = new InitializerList (get_src (begin)); while (current () != TokenType.CLOSE_BRACE) { - var init = parse_argument (); - initializer.append (init); + initializer.append (parse_argument ()); if (!accept (TokenType.COMMA)) { break; |