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

Unified Diff: pkg/compiler/lib/src/dart_backend/backend_ast_to_frontend_ast.dart

Issue 1859343004: dartfmt pkg/compiler (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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/compiler/lib/src/dart_backend/backend_ast_to_frontend_ast.dart
diff --git a/pkg/compiler/lib/src/dart_backend/backend_ast_to_frontend_ast.dart b/pkg/compiler/lib/src/dart_backend/backend_ast_to_frontend_ast.dart
index 2500c44175b353e5657af00bf4aab521c029a52f..1ab7882a44e972e3789ff17ba6003de97e324534 100644
--- a/pkg/compiler/lib/src/dart_backend/backend_ast_to_frontend_ast.dart
+++ b/pkg/compiler/lib/src/dart_backend/backend_ast_to_frontend_ast.dart
@@ -8,8 +8,7 @@ import '../common.dart';
import '../constants/values.dart' as values;
import '../dart_types.dart' as types;
import '../elements/elements.dart' as elements;
-import '../resolution/tree_elements.dart' show
- TreeElementMapping;
+import '../resolution/tree_elements.dart' show TreeElementMapping;
import '../tokens/token.dart';
import '../tokens/token_constants.dart';
import '../tokens/precedence.dart';
@@ -20,8 +19,7 @@ import 'backend_ast_nodes.dart';
import 'backend_ast_emitter.dart' show TypeGenerator;
/// Translates the backend AST to Dart frontend AST.
-tree.Node emit(TreeElementMapping treeElements,
- RootNode root) {
+tree.Node emit(TreeElementMapping treeElements, RootNode root) {
return new TreePrinter(treeElements).makeDefinition(root);
}
@@ -52,10 +50,11 @@ class TreePrinter {
setElement(definition, node.element, node);
return new tree.VariableDefinitions(
null, // TODO(sigurdm): Type
- makeVarModifiers(useVar: true,
- isFinal: node.element.isFinal,
- isStatic: node.element.isStatic,
- isConst: node.element.isConst),
+ makeVarModifiers(
+ useVar: true,
+ isFinal: node.element.isFinal,
+ isStatic: node.element.isStatic,
+ isConst: node.element.isConst),
makeList(null, [definition], close: semicolon));
} else if (node is FunctionExpression) {
return makeExpression(node);
@@ -90,12 +89,12 @@ class TreePrinter {
return openTok;
}
- final BeginGroupToken openParen = makeGroup(OPEN_PAREN_INFO,
- CLOSE_PAREN_INFO);
- final BeginGroupToken openBrace = makeGroup(OPEN_CURLY_BRACKET_INFO,
- CLOSE_CURLY_BRACKET_INFO);
- final BeginGroupToken openBracket = makeGroup(OPEN_SQUARE_BRACKET_INFO,
- CLOSE_SQUARE_BRACKET_INFO);
+ final BeginGroupToken openParen =
+ makeGroup(OPEN_PAREN_INFO, CLOSE_PAREN_INFO);
+ final BeginGroupToken openBrace =
+ makeGroup(OPEN_CURLY_BRACKET_INFO, CLOSE_CURLY_BRACKET_INFO);
+ final BeginGroupToken openBracket =
+ makeGroup(OPEN_SQUARE_BRACKET_INFO, CLOSE_SQUARE_BRACKET_INFO);
final BeginGroupToken lt = makeGroup(LT_INFO, GT_INFO);
Token get closeParen => openParen.endGroup;
@@ -116,6 +115,7 @@ class TreePrinter {
static Token makeIdToken(String text) {
return new StringToken.fromString(IDENTIFIER_INFO, text, -1);
}
+
final Token newToken = makeIdToken('new');
final Token constToken = makeIdToken('const');
final Token throwToken = makeIdToken('throw');
@@ -168,27 +168,32 @@ class TreePrinter {
tree.NodeList blankList() {
return new tree.NodeList(null, makeLink([]), null, '');
}
+
tree.NodeList singleton(tree.Node node) {
return new tree.NodeList(null, makeLink([node]), null, '');
}
- tree.NodeList makeList(String delimiter,
- Iterable<tree.Node> nodes,
- { Token open,
- Token close }) {
+
+ tree.NodeList makeList(String delimiter, Iterable<tree.Node> nodes,
+ {Token open, Token close}) {
return new tree.NodeList(open, makeLink(nodes), close, delimiter);
}
+
tree.NodeList parenList(String delimiter, Iterable<tree.Node> nodes) {
return makeList(delimiter, nodes, open: openParen, close: closeParen);
}
+
tree.NodeList bracketList(String delimiter, Iterable<tree.Node> nodes) {
return makeList(delimiter, nodes, open: openBracket, close: closeBracket);
}
+
tree.NodeList braceList(String delimiter, Iterable<tree.Node> nodes) {
return makeList(delimiter, nodes, open: openBrace, close: closeBrace);
}
+
tree.NodeList argList(Iterable<tree.Node> nodes) {
return parenList(',', nodes);
}
+
tree.NodeList typeArgList(Iterable<tree.Node> nodes) {
return makeList(',', nodes, open: lt, close: gt);
}
@@ -198,7 +203,7 @@ class TreePrinter {
if (name == null) {
return null;
}
- List<String> names = name.split('.').toList(growable:false);
+ List<String> names = name.split('.').toList(growable: false);
tree.Node node = makeIdentifier(names[0]);
for (int i = 1; i < names.length; i++) {
node = new tree.Send(node, makeIdentifier(names[i]));
@@ -208,18 +213,30 @@ class TreePrinter {
static Token assignmentToken(String operatorName) {
switch (operatorName) {
- case '=': return new SymbolToken(EQ_INFO, -1);
- case '+=': return new SymbolToken(PLUS_EQ_INFO, -1);
- case '-=': return new SymbolToken(MINUS_EQ_INFO, -1);
- case '*=': return new SymbolToken(STAR_EQ_INFO, -1);
- case '/=': return new SymbolToken(SLASH_EQ_INFO, -1);
- case '~/=': return new SymbolToken(TILDE_SLASH_EQ_INFO, -1);
- case '%=': return new SymbolToken(PERCENT_EQ_INFO, -1);
- case '&=': return new SymbolToken(AMPERSAND_EQ_INFO, -1);
- case '^=': return new SymbolToken(CARET_EQ_INFO, -1);
- case '|=': return new SymbolToken(BAR_EQ_INFO, -1);
- case '>>=': return new SymbolToken(GT_GT_EQ_INFO, -1);
- case '<<=': return new SymbolToken(LT_LT_EQ_INFO, -1);
+ case '=':
+ return new SymbolToken(EQ_INFO, -1);
+ case '+=':
+ return new SymbolToken(PLUS_EQ_INFO, -1);
+ case '-=':
+ return new SymbolToken(MINUS_EQ_INFO, -1);
+ case '*=':
+ return new SymbolToken(STAR_EQ_INFO, -1);
+ case '/=':
+ return new SymbolToken(SLASH_EQ_INFO, -1);
+ case '~/=':
+ return new SymbolToken(TILDE_SLASH_EQ_INFO, -1);
+ case '%=':
+ return new SymbolToken(PERCENT_EQ_INFO, -1);
+ case '&=':
+ return new SymbolToken(AMPERSAND_EQ_INFO, -1);
+ case '^=':
+ return new SymbolToken(CARET_EQ_INFO, -1);
+ case '|=':
+ return new SymbolToken(BAR_EQ_INFO, -1);
+ case '>>=':
+ return new SymbolToken(GT_GT_EQ_INFO, -1);
+ case '<<=':
+ return new SymbolToken(LT_LT_EQ_INFO, -1);
default:
throw "Unrecognized assignment operator: $operatorName";
}
@@ -227,25 +244,44 @@ class TreePrinter {
static Token binopToken(String operatorName) {
switch (operatorName) {
- case '+': return new SymbolToken(PLUS_INFO, -1);
- case '-': return new SymbolToken(MINUS_INFO, -1);
- case '*': return new SymbolToken(STAR_INFO, -1);
- case '/': return new SymbolToken(SLASH_INFO, -1);
- case '~/': return new SymbolToken(TILDE_SLASH_INFO, -1);
- case '%': return new SymbolToken(PERCENT_INFO, -1);
- case '&': return new SymbolToken(AMPERSAND_INFO, -1);
- case '^': return new SymbolToken(CARET_INFO, -1);
- case '|': return new SymbolToken(BAR_INFO, -1);
- case '>>': return new SymbolToken(GT_GT_INFO, -1);
- case '<<': return new SymbolToken(LT_LT_INFO, -1);
- case '==': return new SymbolToken(EQ_EQ_INFO, -1);
- case '!=': return new SymbolToken(BANG_EQ_INFO, -1);
- case '>': return new SymbolToken(GT_INFO, -1);
- case '>=': return new SymbolToken(GT_EQ_INFO, -1);
- case '<': return new SymbolToken(LT_INFO, -1);
- case '<=': return new SymbolToken(LT_EQ_INFO, -1);
- case '&&': return new SymbolToken(AMPERSAND_AMPERSAND_INFO, -1);
- case '||': return new SymbolToken(BAR_BAR_INFO, -1);
+ case '+':
+ return new SymbolToken(PLUS_INFO, -1);
+ case '-':
+ return new SymbolToken(MINUS_INFO, -1);
+ case '*':
+ return new SymbolToken(STAR_INFO, -1);
+ case '/':
+ return new SymbolToken(SLASH_INFO, -1);
+ case '~/':
+ return new SymbolToken(TILDE_SLASH_INFO, -1);
+ case '%':
+ return new SymbolToken(PERCENT_INFO, -1);
+ case '&':
+ return new SymbolToken(AMPERSAND_INFO, -1);
+ case '^':
+ return new SymbolToken(CARET_INFO, -1);
+ case '|':
+ return new SymbolToken(BAR_INFO, -1);
+ case '>>':
+ return new SymbolToken(GT_GT_INFO, -1);
+ case '<<':
+ return new SymbolToken(LT_LT_INFO, -1);
+ case '==':
+ return new SymbolToken(EQ_EQ_INFO, -1);
+ case '!=':
+ return new SymbolToken(BANG_EQ_INFO, -1);
+ case '>':
+ return new SymbolToken(GT_INFO, -1);
+ case '>=':
+ return new SymbolToken(GT_EQ_INFO, -1);
+ case '<':
+ return new SymbolToken(LT_INFO, -1);
+ case '<=':
+ return new SymbolToken(LT_EQ_INFO, -1);
+ case '&&':
+ return new SymbolToken(AMPERSAND_AMPERSAND_INFO, -1);
+ case '||':
+ return new SymbolToken(BAR_BAR_INFO, -1);
default:
throw "Unrecognized binary operator: $operatorName";
}
@@ -253,17 +289,22 @@ class TreePrinter {
static Token incrementToken(String operatorName) {
switch (operatorName) {
- case '++': return new SymbolToken(PLUS_PLUS_INFO, -1);
- case '--': return new SymbolToken(MINUS_MINUS_INFO, -1);
+ case '++':
+ return new SymbolToken(PLUS_PLUS_INFO, -1);
+ case '--':
+ return new SymbolToken(MINUS_MINUS_INFO, -1);
default:
throw "Unrecognized increment operator: $operatorName";
}
}
static Token typeOpToken(String operatorName) {
- switch (operatorName) { // "is!" is not an operator in the frontend AST.
- case 'is': return new SymbolToken(IS_INFO, -1);
- case 'as': return new SymbolToken(AS_INFO, -1);
+ switch (operatorName) {
+ // "is!" is not an operator in the frontend AST.
+ case 'is':
+ return new SymbolToken(IS_INFO, -1);
+ case 'as':
+ return new SymbolToken(AS_INFO, -1);
default:
throw 'Unrecognized type operator: $operatorName';
}
@@ -271,9 +312,12 @@ class TreePrinter {
Token unopToken(String operatorName) {
switch (operatorName) {
- case '-': return new SymbolToken(MINUS_INFO, -1);
- case '~': return new SymbolToken(TILDE_INFO, -1);
- case '!': return bang;
+ case '-':
+ return new SymbolToken(MINUS_INFO, -1);
+ case '~':
+ return new SymbolToken(TILDE_INFO, -1);
+ case '!':
+ return bang;
default:
throw "Unrecognized unary operator: $operatorName";
}
@@ -283,9 +327,7 @@ class TreePrinter {
if (treeElements == null) return null;
if (element.isStatic) {
elements.ClassElement enclosingClass = element.enclosingClass;
- tree.Send send = new tree.Send(
- null,
- makeIdentifier(enclosingClass.name));
+ tree.Send send = new tree.Send(null, makeIdentifier(enclosingClass.name));
treeElements[send] = enclosingClass;
return send;
} else {
@@ -298,9 +340,7 @@ class TreePrinter {
return makeExpression(arg);
} else if (arg is NamedArgument) {
return new tree.NamedArgument(
- makeIdentifier(arg.name),
- colon,
- makeExpression(arg.expression));
+ makeIdentifier(arg.name), colon, makeExpression(arg.expression));
} else {
throw "Unrecognized argument type: ${arg}";
}
@@ -338,8 +378,8 @@ class TreePrinter {
} else if (left is IndexExpression) {
receiver = makeExp(left.object, PRIMARY, beginStmt: beginStmt);
selector = new tree.Operator(indexToken);
- arguments = bracketList(',',
- [makeExpression(left.index), makeExpression(exp.right)]);
+ arguments = bracketList(
+ ',', [makeExpression(left.index), makeExpression(exp.right)]);
} else {
throw "Unexpected left-hand side of assignment: ${left}";
}
@@ -358,8 +398,8 @@ class TreePrinter {
// class B { var x; B() : x = (() {return a;}) {}}
// Not the invalid:
// class B { var x; B() : x = () {return a;} {}}
- result = new tree.SendSet(receiver, selector, op,
- singleton(makeExp(exp.body, CALLEE)));
+ result = new tree.SendSet(
+ receiver, selector, op, singleton(makeExp(exp.body, CALLEE)));
setElement(result, exp.element, exp);
} else if (exp is SuperInitializer) {
precedence = EXPRESSION;
@@ -369,9 +409,8 @@ class TreePrinter {
if (exp.target.name == "") {
result = new tree.Send(null, receiver, arguments);
} else {
- result = new tree.Send(receiver,
- makeIdentifier(exp.target.name),
- arguments);
+ result =
+ new tree.Send(receiver, makeIdentifier(exp.target.name), arguments);
}
setElement(result, exp.target, exp);
} else if (exp is BinaryOperator) {
@@ -395,9 +434,7 @@ class TreePrinter {
selector = makeExp(callee, CALLEE, beginStmt: beginStmt);
}
result = new tree.Send(
- receiver,
- selector,
- argList(exp.arguments.map(makeArgument)));
+ receiver, selector, argList(exp.arguments.map(makeArgument)));
if (callee is Identifier) {
setElement(result, element, exp);
}
@@ -406,31 +443,23 @@ class TreePrinter {
// TODO(sra): Elide receiver when This, but only if not in a scope that
// shadows the method (e.g. constructor body).
tree.Node receiver = makeExp(exp.object, PRIMARY, beginStmt: beginStmt);
- result = new tree.Send(
- receiver,
- makeIdentifier(exp.methodName),
+ result = new tree.Send(receiver, makeIdentifier(exp.methodName),
argList(exp.arguments.map(makeArgument)));
} else if (exp is CallNew) {
precedence = CALLEE;
tree.Node selector = makeName(exp.type.name);
if (exp.type.typeArguments.length > 0) {
selector = new tree.TypeAnnotation(
- selector,
- typeArgList(exp.type.typeArguments.map(makeType)));
+ selector, typeArgList(exp.type.typeArguments.map(makeType)));
setType(selector, exp.dartType, exp);
}
if (exp.constructorName != null) {
- selector = new tree.Send(
- selector,
- makeIdentifier(exp.constructorName));
+ selector = new tree.Send(selector, makeIdentifier(exp.constructorName));
}
tree.Send send = new tree.Send(
- null,
- selector,
- argList(exp.arguments.map(makeArgument)));
- result = new tree.NewExpression(
- exp.isConst ? constToken : newToken,
- send);
+ null, selector, argList(exp.arguments.map(makeArgument)));
+ result =
+ new tree.NewExpression(exp.isConst ? constToken : newToken, send);
setType(result, exp.dartType, exp);
setElement(send, exp.constructor, exp);
} else if (exp is CallStatic) {
@@ -459,18 +488,19 @@ class TreePrinter {
tree.NodeList parameters = makeParameters(exp.parameters);
tree.NodeList initializers =
exp.initializers == null || exp.initializers.isEmpty
- ? null
- : makeList(",", exp.initializers.map(makeExpression).toList());
+ ? null
+ : makeList(",", exp.initializers.map(makeExpression).toList());
tree.Node body = exp.isConst || exp.body == null
? new tree.EmptyStatement(semicolon)
: makeFunctionBody(exp.body);
- result = new tree.FunctionExpression(constructorName(exp),
+ result = new tree.FunctionExpression(
+ constructorName(exp),
parameters,
body,
- null, // return type
+ null, // return type
makeFunctionModifiers(exp),
initializers,
- null, // get/set
+ null, // get/set
null); // async modifier
setElement(result, exp.element, exp);
} else if (exp is FunctionExpression) {
@@ -478,33 +508,27 @@ class TreePrinter {
if (beginStmt && exp.name != null) {
needParen = true; // Do not mistake for function declaration.
}
- Token getOrSet = exp.isGetter
- ? getToken
- : exp.isSetter
- ? setToken
- : null;
- tree.NodeList parameters = exp.isGetter
- ? makeList("", [])
- : makeParameters(exp.parameters);
+ Token getOrSet = exp.isGetter ? getToken : exp.isSetter ? setToken : null;
+ tree.NodeList parameters =
+ exp.isGetter ? makeList("", []) : makeParameters(exp.parameters);
tree.Node body = makeFunctionBody(exp.body);
result = new tree.FunctionExpression(
functionName(exp),
parameters,
body,
exp.returnType == null || exp.element.isConstructor
- ? null
- : makeType(exp.returnType),
+ ? null
+ : makeType(exp.returnType),
makeFunctionModifiers(exp),
- null, // initializers
- getOrSet, // get/set
- null); // async modifier
+ null, // initializers
+ getOrSet, // get/set
+ null); // async modifier
elements.Element element = exp.element;
if (element != null) setElement(result, element, exp);
} else if (exp is Identifier) {
precedence = CALLEE;
result = new tree.Send(
- makeStaticReceiver(exp.element),
- makeIdentifier(exp.name));
+ makeStaticReceiver(exp.element), makeIdentifier(exp.name));
setElement(result, exp.element, exp);
} else if (exp is Increment) {
Expression lvalue = exp.expression;
@@ -597,8 +621,7 @@ class TreePrinter {
} else if (exp is LiteralSymbol) {
precedence = PRIMARY;
result = new tree.LiteralSymbol(
- hash,
- makeList('.', exp.id.split('.').map(makeIdentifier)));
+ hash, makeList('.', exp.id.split('.').map(makeIdentifier)));
} else if (exp is LiteralType) {
precedence = TYPE_LITERAL;
elements.Element optionalElement = exp.type.element;
@@ -606,14 +629,13 @@ class TreePrinter {
optionalElement == null ? null : makeStaticReceiver(optionalElement),
makeIdentifier(exp.name));
treeElements.setType(result, exp.type);
- if (optionalElement != null) { // dynamic does not have an element
+ if (optionalElement != null) {
+ // dynamic does not have an element
setElement(result, optionalElement, exp);
}
} else if (exp is ReifyTypeVar) {
precedence = PRIMARY;
- result = new tree.Send(
- null,
- makeIdentifier(exp.name));
+ result = new tree.Send(null, makeIdentifier(exp.name));
setElement(result, exp.element, exp);
setType(result, exp.element.type, exp);
} else if (exp is StringConcat) {
@@ -624,9 +646,7 @@ class TreePrinter {
result = makeIdentifier('this');
} else if (exp is Throw) {
precedence = EXPRESSION; // ???
- result = new tree.Throw(
- makeExpression(exp.expression),
- throwToken,
+ result = new tree.Throw(makeExpression(exp.expression), throwToken,
throwToken); // endToken not used by unparser
} else if (exp is TypeOperator) {
precedence = RELATIONAL;
@@ -634,10 +654,8 @@ class TreePrinter {
tree.Node rightOperand = makeType(exp.type);
if (exp.operator == 'is!') {
operator = new tree.Operator(typeOpToken('is'));
- rightOperand = new tree.Send(
- rightOperand,
- new tree.Operator(bang),
- blankList());
+ rightOperand =
+ new tree.Send(rightOperand, new tree.Operator(bang), blankList());
} else {
operator = new tree.Operator(typeOpToken(exp.operator));
}
@@ -647,8 +665,7 @@ class TreePrinter {
singleton(rightOperand));
} else if (exp is UnaryOperator) {
precedence = UNARY;
- result = new tree.Send.prefix(
- makeExp(exp.operand, UNARY),
+ result = new tree.Send.prefix(makeExp(exp.operand, UNARY),
new tree.Operator(unopToken(exp.operatorName)));
} else {
throw "Unknown expression type: ${exp}";
@@ -672,9 +689,7 @@ class TreePrinter {
tree.LiteralMapEntry makeLiteralMapEntry(LiteralMapEntry en) {
return new tree.LiteralMapEntry(
- makeExpression(en.key),
- colon,
- makeExpression(en.value));
+ makeExpression(en.key), colon, makeExpression(en.value));
}
/// A comment token to be inserted when [INSERT_NEW_BACKEND_COMMENT] is true.
@@ -684,8 +699,8 @@ class TreePrinter {
tree.Node makeFunctionBody(Statement stmt) {
if (INSERT_NEW_BACKEND_COMMENT) {
- return new tree.Block(makeList('', [makeBlock(stmt)],
- open: newBackendComment));
+ return new tree.Block(
+ makeList('', [makeBlock(stmt)], open: newBackendComment));
} else {
return makeBlock(stmt);
}
@@ -717,7 +732,7 @@ class TreePrinter {
/// True if [stmt] is equivalent to an empty statement.
bool isEmptyStatement(Statement stmt) {
return stmt is EmptyStatement ||
- (stmt is Block && stmt.statements.every(isEmptyStatement));
+ (stmt is Block && stmt.statements.every(isEmptyStatement));
}
tree.Node makeStatement(Statement stmt, {bool shortIf: true}) {
@@ -748,8 +763,7 @@ class TreePrinter {
return new tree.EmptyStatement(semicolon);
} else if (stmt is ExpressionStatement) {
return new tree.ExpressionStatement(
- makeExp(stmt.expression, EXPRESSION, beginStmt: true),
- semicolon);
+ makeExp(stmt.expression, EXPRESSION, beginStmt: true), semicolon);
} else if (stmt is For) {
tree.Node initializer;
if (stmt.initializer is VariableDeclarations) {
@@ -762,8 +776,7 @@ class TreePrinter {
tree.Node condition;
if (stmt.condition != null) {
condition = new tree.ExpressionStatement(
- makeExpression(stmt.condition),
- semicolon);
+ makeExpression(stmt.condition), semicolon);
} else {
condition = new tree.EmptyStatement(semicolon);
}
@@ -780,12 +793,8 @@ class TreePrinter {
} else {
left = makeVariableDeclarations(stmt.leftHandValue);
}
- return new tree.SyncForIn(
- left,
- makeExpression(stmt.expression),
- makeStatement(stmt.body, shortIf: shortIf),
- forToken,
- inToken);
+ return new tree.SyncForIn(left, makeExpression(stmt.expression),
+ makeStatement(stmt.body, shortIf: shortIf), forToken, inToken);
} else if (stmt is FunctionDeclaration) {
tree.FunctionExpression function = new tree.FunctionExpression(
stmt.name != null ? makeIdentifier(stmt.name) : null,
@@ -793,8 +802,8 @@ class TreePrinter {
makeFunctionBody(stmt.body),
stmt.returnType != null ? makeType(stmt.returnType) : null,
makeEmptyModifiers(),
- null, // initializers
- null, // get/set
+ null, // initializers
+ null, // get/set
null); // async modifier
setElement(function, stmt.function.element, stmt);
return new tree.FunctionDeclaration(function);
@@ -827,14 +836,11 @@ class TreePrinter {
inner = lbl.statement;
}
return new tree.LabeledStatement(
- makeList('', labels),
- makeStatement(inner, shortIf: shortIf));
+ makeList('', labels), makeStatement(inner, shortIf: shortIf));
} else if (stmt is Rethrow) {
return new tree.Rethrow(rethrowToken, semicolon);
} else if (stmt is Return) {
- return new tree.Return(
- returnToken,
- semicolon,
+ return new tree.Return(returnToken, semicolon,
stmt.expression == null ? null : makeExpression(stmt.expression));
} else if (stmt is Switch) {
return new tree.SwitchStatement(
@@ -851,10 +857,8 @@ class TreePrinter {
} else if (stmt is VariableDeclarations) {
return makeVariableDeclarations(stmt, useVar: true, endToken: semicolon);
} else if (stmt is While) {
- return new tree.While(
- parenthesize(makeExpression(stmt.condition)),
- makeStatement(stmt.body, shortIf: shortIf),
- whileToken);
+ return new tree.While(parenthesize(makeExpression(stmt.condition)),
+ makeStatement(stmt.body, shortIf: shortIf), whileToken);
} else {
throw "Unrecognized statement: ${stmt}";
}
@@ -866,11 +870,8 @@ class TreePrinter {
if (vd.initializer == null) {
return id;
}
- tree.Node send = new tree.SendSet(
- null,
- id,
- new tree.Operator(eq),
- singleton(makeExpression(vd.initializer)));
+ tree.Node send = new tree.SendSet(null, id, new tree.Operator(eq),
+ singleton(makeExpression(vd.initializer)));
setElement(send, vd.element, vd);
return send;
}
@@ -879,15 +880,14 @@ class TreePrinter {
/// if no other modifiers are present.
/// [endToken] will be used to terminate the declaration list.
tree.Node makeVariableDeclarations(VariableDeclarations decl,
- { bool useVar: false,
- Token endToken: null }) {
+ {bool useVar: false, Token endToken: null}) {
return new tree.VariableDefinitions(
decl.type == null ? null : makeType(decl.type),
- makeVarModifiers(isConst: decl.isConst,
- isFinal: decl.isFinal,
- useVar: useVar && decl.type == null),
- makeList(',',
- decl.declarations.map(makeVariableDeclaration),
+ makeVarModifiers(
+ isConst: decl.isConst,
+ isFinal: decl.isFinal,
+ useVar: useVar && decl.type == null),
+ makeList(',', decl.declarations.map(makeVariableDeclaration),
close: endToken));
}
@@ -897,17 +897,13 @@ class TreePrinter {
tree.Node exceptionName = makeIdentifier(block.exceptionVar.name);
setElement(exceptionName, block.exceptionVar.element, block.exceptionVar);
formals.add(new tree.VariableDefinitions(
- null,
- makeEmptyModifiers(),
- singleton(exceptionName)));
+ null, makeEmptyModifiers(), singleton(exceptionName)));
}
if (block.stackVar != null) {
tree.Node stackTraceName = makeIdentifier(block.stackVar.name);
setElement(stackTraceName, block.stackVar.element, block.stackVar);
formals.add(new tree.VariableDefinitions(
- null,
- makeEmptyModifiers(),
- singleton(stackTraceName)));
+ null, makeEmptyModifiers(), singleton(stackTraceName)));
}
return new tree.CatchBlock(
block.onType == null ? null : makeType(block.onType),
@@ -958,7 +954,7 @@ class TreePrinter {
Token open = params.hasNamedParameters ? openBrace : openBracket;
Token close = params.hasNamedParameters ? closeBrace : closeBracket;
Iterable<tree.Node> opt =
- params.optionalParameters.map((p) => makeParameter(p,assign));
+ params.optionalParameters.map((p) => makeParameter(p, assign));
nodes.add(new tree.NodeList(open, makeLink(opt), close, ','));
}
return argList(nodes);
@@ -971,10 +967,10 @@ class TreePrinter {
makeIdentifier(param.name),
makeParameters(param.parameters),
null, // body
- param.type == null ? null : makeType(param.type),
+ param.type == null ? null : makeType(param.type),
makeEmptyModifiers(), // TODO: Function parameter modifiers?
- null, // initializers
- null, // get/set
+ null, // initializers
+ null, // get/set
null); // async modifier
if (param.element != null) {
setElement(definition, param.element, param);
@@ -987,9 +983,7 @@ class TreePrinter {
singleton(makeExpression(param.defaultValue)));
}
return new tree.VariableDefinitions(
- null,
- makeEmptyModifiers(),
- singleton(definition));
+ null, makeEmptyModifiers(), singleton(definition));
} else {
tree.Node definition;
if (param.defaultValue != null) {
@@ -1015,13 +1009,14 @@ class TreePrinter {
return new tree.Modifiers(blankList());
}
- tree.Modifiers makeModifiers({bool isExternal: false,
- bool isStatic: false,
- bool isAbstract: false,
- bool isFactory: false,
- bool isConst: false,
- bool isFinal: false,
- bool isVar: false}) {
+ tree.Modifiers makeModifiers(
+ {bool isExternal: false,
+ bool isStatic: false,
+ bool isAbstract: false,
+ bool isFactory: false,
+ bool isConst: false,
+ bool isFinal: false,
+ bool isVar: false}) {
List<tree.Node> nodes = [];
if (isExternal) {
nodes.add(makeIdentifier('external'));
@@ -1047,22 +1042,25 @@ class TreePrinter {
return new tree.Modifiers(makeList(' ', nodes));
}
- tree.Modifiers makeVarModifiers({bool isConst: false,
- bool isFinal: false,
- bool useVar: false,
- bool isStatic: false}) {
- return makeModifiers(isStatic: isStatic,
- isConst: isConst,
- isFinal: isFinal,
- isVar: useVar && !(isConst || isFinal));
+ tree.Modifiers makeVarModifiers(
+ {bool isConst: false,
+ bool isFinal: false,
+ bool useVar: false,
+ bool isStatic: false}) {
+ return makeModifiers(
+ isStatic: isStatic,
+ isConst: isConst,
+ isFinal: isFinal,
+ isVar: useVar && !(isConst || isFinal));
}
tree.Modifiers makeFunctionModifiers(FunctionExpression exp) {
if (exp.element == null) return makeEmptyModifiers();
- return makeModifiers(isExternal: exp.element.isExternal,
- isStatic: exp.element.isStatic,
- isFactory: exp.element.isFactoryConstructor,
- isConst: exp.element.isConst);
+ return makeModifiers(
+ isExternal: exp.element.isExternal,
+ isStatic: exp.element.isStatic,
+ isFactory: exp.element.isFactoryConstructor,
+ isConst: exp.element.isConst);
}
tree.Node makeNodeForClassElement(elements.ClassElement cls) {
@@ -1089,8 +1087,8 @@ class TreePrinter {
final Token typedefKeyword = typedefToken;
final Token endToken = semicolon;
- return new tree.Typedef(returnType, name, typeParameters, formals,
- typedefKeyword, endToken);
+ return new tree.Typedef(
+ returnType, name, typeParameters, formals, typedefKeyword, endToken);
}
/// Create a [tree.NodeList] containing the type variable declarations in
@@ -1126,17 +1124,17 @@ class TreePrinter {
/// differs between [tree.NamedMixinApplication] and [tree.ClassNode].
// TODO(johnniwinther): Normalize interfaces on[tree.NamedMixinApplication]
// and [tree.ClassNode].
- tree.NodeList makeInterfaces(Link<types.DartType> interfaces,
- Set<types.DartType> mixinTypes,
- {bool forNamedMixinApplication: false}) {
+ tree.NodeList makeInterfaces(
+ Link<types.DartType> interfaces, Set<types.DartType> mixinTypes,
+ {bool forNamedMixinApplication: false}) {
Link<tree.Node> typeAnnotations = const Link<tree.Node>();
for (Link<types.DartType> link = interfaces;
- !link.isEmpty;
- link = link.tail) {
+ !link.isEmpty;
+ link = link.tail) {
types.DartType interface = link.head;
if (!mixinTypes.contains(interface)) {
- typeAnnotations = typeAnnotations.prepend(
- makeType(TypeGenerator.createType(interface)));
+ typeAnnotations = typeAnnotations
+ .prepend(makeType(TypeGenerator.createType(interface)));
}
}
if (typeAnnotations.isEmpty) {
@@ -1144,7 +1142,9 @@ class TreePrinter {
} else {
return new tree.NodeList(
forNamedMixinApplication ? null : implementsToken,
- typeAnnotations, null, ',');
+ typeAnnotations,
+ null,
+ ',');
}
}
@@ -1152,11 +1152,10 @@ class TreePrinter {
// TODO(johnniwinther): Unify creation of mixin lists between
// [NamedMixinApplicationElement] and [ClassElement].
tree.NamedMixinApplication makeNamedMixinApplication(
- elements.MixinApplicationElement cls) {
-
+ elements.MixinApplicationElement cls) {
assert(invariant(cls, !cls.isUnnamedMixinApplication,
message: "Cannot create ClassNode for unnamed mixin application "
- "$cls."));
+ "$cls."));
tree.Modifiers modifiers = makeModifiers(isAbstract: cls.isAbstract);
tree.Identifier name = makeIdentifier(cls.name);
tree.NodeList typeParameters = makeTypeParameters(cls.typeVariables);
@@ -1183,12 +1182,11 @@ class TreePrinter {
tree.Node supernode = new tree.MixinApplication(
superclass, new tree.NodeList(null, mixins, null, ','));
- tree.NodeList interfaces = makeInterfaces(
- cls.interfaces, mixinTypes, forNamedMixinApplication: true);
+ tree.NodeList interfaces = makeInterfaces(cls.interfaces, mixinTypes,
+ forNamedMixinApplication: true);
- return new tree.NamedMixinApplication(
- name, typeParameters, modifiers, supernode,
- interfaces, classToken, semicolon);
+ return new tree.NamedMixinApplication(name, typeParameters, modifiers,
+ supernode, interfaces, classToken, semicolon);
}
tree.Enum makeEnum(elements.EnumClassElement cls) {
@@ -1196,14 +1194,14 @@ class TreePrinter {
enumToken,
makeIdentifier(cls.name),
makeList(',', cls.enumValues.map((e) => makeIdentifier(e.name)),
- open: openBrace, close: closeBrace));
+ open: openBrace, close: closeBrace));
}
/// Creates a [tree.ClassNode] node for [cls].
tree.ClassNode makeClassNode(elements.ClassElement cls) {
assert(invariant(cls, !cls.isUnnamedMixinApplication,
message: "Cannot create ClassNode for unnamed mixin application "
- "$cls."));
+ "$cls."));
tree.Modifiers modifiers = makeModifiers(isAbstract: cls.isAbstract);
tree.Identifier name = makeIdentifier(cls.name);
tree.NodeList typeParameters = makeTypeParameters(cls.typeVariables);
@@ -1232,13 +1230,17 @@ class TreePrinter {
supernode = makeType(TypeGenerator.createType(supertype));
}
}
- tree.NodeList interfaces = makeInterfaces(
- cls.interfaces, mixinTypes);
+ tree.NodeList interfaces = makeInterfaces(cls.interfaces, mixinTypes);
Token extendsKeyword = supernode != null ? extendsToken : null;
return new tree.ClassNode(
- modifiers, name, typeParameters, supernode,
- interfaces, openBrace, extendsKeyword,
+ modifiers,
+ name,
+ typeParameters,
+ supernode,
+ interfaces,
+ openBrace,
+ extendsKeyword,
null, // No body.
closeBrace);
}
@@ -1246,9 +1248,8 @@ class TreePrinter {
tree.Node constructorName(ConstructorDefinition exp) {
String name = exp.name;
tree.Identifier className = makeIdentifier(exp.element.enclosingClass.name);
- tree.Node result = name == ""
- ? className
- : new tree.Send(className, makeIdentifier(name));
+ tree.Node result =
+ name == "" ? className : new tree.Send(className, makeIdentifier(name));
setElement(result, exp.element, exp);
return result;
}
@@ -1296,9 +1297,8 @@ class TreePrinter {
// Finish the previous string interpolation, if there is one.
tree.LiteralString lit = makeVerbatimStringLiteral(sb.toString());
if (currentInterpolation != null) {
- literalParts.add(new tree.StringInterpolationPart(
- currentInterpolation,
- lit));
+ literalParts.add(
+ new tree.StringInterpolationPart(currentInterpolation, lit));
} else {
firstLiteral = lit;
}
@@ -1322,24 +1322,20 @@ class TreePrinter {
if (firstLiteral == null) {
node = lit;
} else {
- literalParts.add(new tree.StringInterpolationPart(
- currentInterpolation,
- lit));
+ literalParts
+ .add(new tree.StringInterpolationPart(currentInterpolation, lit));
node = new tree.StringInterpolation(
- firstLiteral,
- makeList('', literalParts));
+ firstLiteral, makeList('', literalParts));
}
// Juxtapose with the previous string chunks, if any.
if (chunk.previous != null) {
return new tree.StringJuxtaposition(
- printStringChunk(chunk.previous),
- node);
+ printStringChunk(chunk.previous), node);
} else {
return node;
}
}
return printStringChunk(output.chunk);
}
-
}
« no previous file with comments | « pkg/compiler/lib/src/dart_backend/backend_ast_nodes.dart ('k') | pkg/compiler/lib/src/dart_backend/dart_backend.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698