| Index: pkg/compiler/lib/src/parser/partial_elements.dart
|
| diff --git a/pkg/compiler/lib/src/parser/partial_elements.dart b/pkg/compiler/lib/src/parser/partial_elements.dart
|
| index c68e5e4521f55e18d10d44ec21a193e003256f66..948e9a16029a6e49e1ef2dcf2411bcebe5c4e487 100644
|
| --- a/pkg/compiler/lib/src/parser/partial_elements.dart
|
| +++ b/pkg/compiler/lib/src/parser/partial_elements.dart
|
| @@ -31,14 +31,13 @@ import '../elements/modelx.dart'
|
| TypedefElementX,
|
| VariableList;
|
| import '../elements/visitor.dart' show ElementVisitor;
|
| -import '../tokens/token.dart' show Token;
|
| -import '../tokens/token_constants.dart' as Tokens show EOF_TOKEN;
|
| +import 'package:dart_scanner/dart_scanner.dart' show Token;
|
| +import 'package:dart_scanner/dart_scanner.dart' as Tokens show EOF_TOKEN;
|
| import '../tree/tree.dart';
|
| -import 'class_element_parser.dart' show ClassElementParser;
|
| -import 'listener.dart' show ParserError;
|
| +import 'package:dart_parser/dart_parser.dart'
|
| + show ClassMemberParser, Parser, ParserError;
|
| import 'member_listener.dart' show MemberListener;
|
| import 'node_listener.dart' show NodeListener;
|
| -import 'parser.dart' show Parser;
|
|
|
| abstract class PartialElement implements DeclarationSite {
|
| Token beginToken;
|
| @@ -374,13 +373,14 @@ class PartialClassElement extends ClassElementX with PartialElement {
|
| parsing.measure(() {
|
| MemberListener listener = new MemberListener(
|
| parsing.getScannerOptionsFor(this), reporter, this);
|
| - Parser parser = new ClassElementParser(listener);
|
| + Parser parser = new ClassMemberParser(listener);
|
| try {
|
| Token token = parser.parseTopLevelDeclaration(beginToken);
|
| assert(identical(token, endToken.next));
|
| cachedNode = listener.popNode();
|
| - assert(invariant(beginToken, listener.nodes.isEmpty,
|
| - message: "Non-empty listener stack: ${listener.nodes}"));
|
| + assert(invariant(reporter.spanFromToken(beginToken),
|
| + listener.nodes.isEmpty,
|
| + message: "Non-empty listener stack: ${listener.nodes}"));
|
| } on ParserError {
|
| // TODO(ahe): Often, a ParserError is thrown while parsing the class
|
| // body. This means that the stack actually contains most of the
|
| @@ -443,7 +443,7 @@ Node parse(ParsingContext parsing, ElementX element, PartialElement partial,
|
| doParse(new Parser(listener));
|
| } on ParserError catch (e) {
|
| partial.hasParseError = true;
|
| - return new ErrorNode(element.position, e.reason);
|
| + return new ErrorNode(element.position, e.kind, e.arguments);
|
| }
|
| Node node = listener.popNode();
|
| assert(listener.nodes.isEmpty);
|
|
|