Index: pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart b/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart |
index 51e088fd184912e17b64f9fad1ed52c7fefbc1cc..9b0802ce14b5697037edd348a24bd57a2a6d6c51 100644 |
--- a/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart |
+++ b/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart |
@@ -500,19 +500,22 @@ class AstBuilder extends ScopeListener { |
push(NullValue.ParameterDefaultValue); |
} |
- void endFormalParameter(Token thisKeyword, FormalParameterType kind) { |
+ void endFormalParameter( |
+ Token covariantKeyword, Token thisKeyword, FormalParameterType kind) { |
debugEvent("FormalParameter"); |
_ParameterDefaultValue defaultValue = pop(); |
SimpleIdentifier name = pop(); |
TypeName type = pop(); |
Token keyword = _popOptionalSingleModifier(); |
pop(); // TODO(paulberry): Metadata. |
- // TODO(paulberry): handle covariant keyword. |
FormalParameter node; |
if (thisKeyword == null) { |
- node = ast.simpleFormalParameter( |
- null, null, toAnalyzerToken(keyword), type, name); |
+ node = ast.simpleFormalParameter2( |
+ covariantKeyword: toAnalyzerToken(covariantKeyword), |
+ keyword: toAnalyzerToken(keyword), |
+ type: type, |
+ identifier: name); |
} else { |
// TODO(scheglov): Ideally the period token should be passed in. |
Token period = identical('.', thisKeyword.next?.stringValue) |
@@ -520,16 +523,15 @@ class AstBuilder extends ScopeListener { |
: null; |
TypeParameterList typeParameters; // TODO(scheglov) |
FormalParameterList formalParameters; // TODO(scheglov) |
- node = ast.fieldFormalParameter( |
- null, |
- null, |
- toAnalyzerToken(keyword), |
- type, |
- toAnalyzerToken(thisKeyword), |
- toAnalyzerToken(period), |
- name, |
- typeParameters, |
- formalParameters); |
+ node = ast.fieldFormalParameter2( |
+ covariantKeyword: toAnalyzerToken(covariantKeyword), |
+ keyword: toAnalyzerToken(keyword), |
+ type: type, |
+ thisKeyword: toAnalyzerToken(thisKeyword), |
+ period: toAnalyzerToken(period), |
+ identifier: name, |
+ typeParameters: typeParameters, |
+ parameters: formalParameters); |
} |
if (defaultValue != null) { |