Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Unified Diff: pkg/front_end/lib/src/fasta/parser/parser.dart

Issue 2709783003: Parse optional and named parameters. (Closed)
Patch Set: Add 'FormalParameterType kind' to endFormalParameter() and add handleFormalParameterWithoutValue(). Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/lib/src/fasta/parser/parser.dart
diff --git a/pkg/front_end/lib/src/fasta/parser/parser.dart b/pkg/front_end/lib/src/fasta/parser/parser.dart
index 19512820017d87d353339ceba1ae7bad30986160..4354aca87f5304d67394d581ca966cf41ae6e14e 100644
--- a/pkg/front_end/lib/src/fasta/parser/parser.dart
+++ b/pkg/front_end/lib/src/fasta/parser/parser.dart
@@ -462,7 +462,7 @@ class Parser {
return expect(')', token);
}
- Token parseFormalParameter(Token token, FormalParameterType type) {
+ Token parseFormalParameter(Token token, FormalParameterType kind) {
token = parseMetadataStar(token, forParameter: true);
listener.beginFormalParameter(token);
@@ -502,15 +502,17 @@ class Parser {
Token equal = token;
token = parseExpression(token.next);
listener.handleValuedFormalParameter(equal, token);
- if (type.isRequired) {
+ if (kind.isRequired) {
reportRecoverableError(
equal, ErrorKind.RequiredParameterWithDefault);
- } else if (type.isPositional && identical(':', value)) {
+ } else if (kind.isPositional && identical(':', value)) {
reportRecoverableError(
equal, ErrorKind.PositionalParameterWithEquals);
}
+ } else {
+ listener.handleFormalParameterWithoutValue(token);
}
- listener.endFormalParameter(thisKeyword);
+ listener.endFormalParameter(thisKeyword, kind);
return token;
}

Powered by Google App Engine
This is Rietveld 408576698