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)); |