Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(375)

Unified Diff: compiler/java/com/google/dart/compiler/parser/DartParser.java

Issue 8381018: Expect '{' during class parsing, report error if not. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: compiler/java/com/google/dart/compiler/parser/DartParser.java
diff --git a/compiler/java/com/google/dart/compiler/parser/DartParser.java b/compiler/java/com/google/dart/compiler/parser/DartParser.java
index 6a9709359e670f7f1f5babf368444452290e8db7..ec16ce39e234170658ae4954edb46712cf5327a3 100644
--- a/compiler/java/com/google/dart/compiler/parser/DartParser.java
+++ b/compiler/java/com/google/dart/compiler/parser/DartParser.java
@@ -519,15 +519,18 @@ public class DartParser extends CompletionHooksParserBase {
}
// Parse the members.
- expect(Token.LBRACE);
List<DartNode> members = new ArrayList<DartNode>();
- while (!match(Token.RBRACE) && !EOS()) {
- DartNode member = parseFieldOrMethod(true);
- if (member != null) {
- members.add(member);
+ if (optional(Token.LBRACE)) {
+ while (!match(Token.RBRACE) && !EOS()) {
+ DartNode member = parseFieldOrMethod(true);
+ if (member != null) {
+ members.add(member);
+ }
}
+ expectCloseBrace();
+ } else {
+ reportErrorWithoutAdvancing(DartCompilerErrorCode.EXPECTED_CLASS_DECLARATION_LBRACE);
}
- expectCloseBrace();
if (isParsingInterface) {
return done(new DartClass(name, superType, interfaces, members, typeParameters, factory));

Powered by Google App Engine
This is Rietveld 408576698