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