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

Unified Diff: lib/src/js/builder.dart

Issue 1686953005: Split Parameter and TypeParameter out of Identifier Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 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
« no previous file with comments | « lib/src/codegen/js_codegen.dart ('k') | lib/src/js/nodes.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/js/builder.dart
diff --git a/lib/src/js/builder.dart b/lib/src/js/builder.dart
index 5037a3f0ef142003125f4e83838acf2d5f2f8dba..f868e67a9f10175e7d762e1c7159891c20a1fc0e 100644
--- a/lib/src/js/builder.dart
+++ b/lib/src/js/builder.dart
@@ -840,7 +840,7 @@ class MiniJsParser {
return parseArrowFunctionBody(<Parameter>[]);
}
if (acceptCategory(ELLIPSIS)) {
- var params = <Parameter>[new RestParameter(parseParameter())];
+ var params = <Parameter>[parseParameter(isRest: true)];
expectCategory(RPAREN);
expectCategory(ARROW);
return parseArrowFunctionBody(params);
@@ -850,7 +850,7 @@ class MiniJsParser {
if (acceptCategory(ELLIPSIS)) {
var params = <Parameter>[];
_expressionToParameterList(expression, params);
- params.add(new RestParameter(parseParameter()));
+ params.add(parseParameter(isRest: true));
expectCategory(RPAREN);
expectCategory(ARROW);
return parseArrowFunctionBody(params);
@@ -873,7 +873,7 @@ class MiniJsParser {
*/
void _expressionToParameterList(Expression node, List<Parameter> params) {
if (node is Identifier) {
- params.add(node);
+ params.add(new Parameter(node));
} else if (node is Binary && node.op == ',') {
// TODO(jmesserly): this will allow illegal parens, such as
// `((a, b), (c, d))`. Fixing it on the left side needs an explicit
@@ -915,7 +915,7 @@ class MiniJsParser {
if (!acceptCategory(RPAREN)) {
for (;;) {
if (acceptCategory(ELLIPSIS)) {
- params.add(new RestParameter(parseParameter()));
+ params.add(parseParameter(isRest: true));
expectCategory(RPAREN);
break;
}
@@ -946,17 +946,17 @@ class MiniJsParser {
}
/** Parse parameter name or interpolated parameter. */
- Identifier parseParameter() {
+ Parameter parseParameter({bool isRest: false}) {
if (acceptCategory(HASH)) {
var nameOrPosition = parseHash();
- var parameter = new InterpolatedParameter(nameOrPosition);
+ var parameter = new InterpolatedParameter(nameOrPosition, isRest: isRest);
interpolatedValues.add(parameter);
return parameter;
} else {
// TODO(jmesserly): validate this is not a keyword
String argumentName = lastToken;
expectCategory(ALPHA);
- return new Identifier(argumentName);
+ return new Parameter(new Identifier(argumentName), isRest: isRest);
}
}
« no previous file with comments | « lib/src/codegen/js_codegen.dart ('k') | lib/src/js/nodes.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698