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