| Index: pkg/compiler/lib/src/patch_parser.dart
|
| diff --git a/pkg/compiler/lib/src/patch_parser.dart b/pkg/compiler/lib/src/patch_parser.dart
|
| index 593b08fb43519d980fbc981ed080fe4cca2b395c..8ca31b02d55705e6d3adf20fefca1a508a948117 100644
|
| --- a/pkg/compiler/lib/src/patch_parser.dart
|
| +++ b/pkg/compiler/lib/src/patch_parser.dart
|
| @@ -141,11 +141,12 @@ import 'parser/listener.dart' show
|
| Listener,
|
| ParserError;
|
| import 'parser/element_listener.dart' show
|
| - ElementListener;
|
| + ElementListener,
|
| + ParserOptions;
|
| import 'parser/member_listener.dart' show
|
| MemberListener;
|
| import 'parser/partial_elements.dart' show
|
| - PartialClassElement;
|
| + PartialClassElement;
|
| import 'parser/partial_parser.dart' show
|
| PartialParser;
|
| import 'parser/parser.dart' show
|
| @@ -160,9 +161,12 @@ import 'tokens/token.dart' show
|
| class PatchParserTask extends CompilerTask {
|
| final String name = "Patching Parser";
|
| final bool _enableConditionalDirectives;
|
| + final bool _enableGenericMethods;
|
|
|
| - PatchParserTask(Compiler compiler, {bool enableConditionalDirectives})
|
| - : this._enableConditionalDirectives = enableConditionalDirectives,
|
| + PatchParserTask(Compiler compiler, ParserOptions parserOptions)
|
| + : this._enableConditionalDirectives =
|
| + parserOptions.enableConditionalDirectives,
|
| + this._enableGenericMethods = parserOptions.enableGenericMethods,
|
| super(compiler);
|
|
|
| /**
|
| @@ -199,7 +203,8 @@ class PatchParserTask extends CompilerTask {
|
| idGenerator);
|
| try {
|
| new PartialParser(patchListener,
|
| - enableConditionalDirectives: _enableConditionalDirectives)
|
| + enableConditionalDirectives: _enableConditionalDirectives,
|
| + enableGenericMethods: _enableGenericMethods)
|
| .parseUnit(tokens);
|
| } on ParserError catch (e) {
|
| // No need to recover from a parser error in platform libraries, user
|
| @@ -218,7 +223,9 @@ class PatchParserTask extends CompilerTask {
|
| measure(() => reporter.withCurrentElement(cls, () {
|
| MemberListener listener = new PatchMemberListener(compiler, cls);
|
| Parser parser = new PatchClassElementParser(
|
| - listener, enableConditionalDirectives: _enableConditionalDirectives);
|
| + listener,
|
| + enableConditionalDirectives: _enableConditionalDirectives,
|
| + enableGenericMethods: _enableGenericMethods);
|
| try {
|
| Token token = parser.parseTopLevelDeclaration(cls.beginToken);
|
| assert(identical(token, cls.endToken.next));
|
| @@ -270,9 +277,12 @@ class PatchMemberListener extends MemberListener {
|
| * declarations.
|
| */
|
| class PatchClassElementParser extends PartialParser {
|
| - PatchClassElementParser(Listener listener, {bool enableConditionalDirectives})
|
| + PatchClassElementParser(Listener listener,
|
| + {bool enableConditionalDirectives: false,
|
| + bool enableGenericMethods: false})
|
| : super(listener,
|
| - enableConditionalDirectives: enableConditionalDirectives);
|
| + enableConditionalDirectives: enableConditionalDirectives,
|
| + enableGenericMethods: enableGenericMethods);
|
|
|
| Token parseClassBody(Token token) => fullParseClassBody(token);
|
| }
|
|
|