Index: lib/compiler/implementation/ssa/builder.dart |
diff --git a/lib/compiler/implementation/ssa/builder.dart b/lib/compiler/implementation/ssa/builder.dart |
index fbaabf33dc42309795e95ca40a1f297b85098309..fbffcde651006065b105446665748ec054d53735 100644 |
--- a/lib/compiler/implementation/ssa/builder.dart |
+++ b/lib/compiler/implementation/ssa/builder.dart |
@@ -948,7 +948,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
SendSet node = variable.parseNode(compiler); |
openFunction(variable, node); |
Link<Node> link = node.arguments; |
- assert(!link.isEmpty() && link.tail.isEmpty()); |
+ assert(!link.isEmpty && link.tail.isEmpty); |
visit(link.head); |
HInstruction value = pop(); |
value = potentiallyCheckType(value, variable); |
@@ -970,12 +970,12 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
// If we know the body doesn't have any code, we don't generate it. |
if (node.body.asBlock() != null) { |
NodeList statements = node.body.asBlock().statements; |
- if (statements.isEmpty()) return null; |
+ if (statements.isEmpty) return null; |
} |
ClassElement classElement = constructor.getEnclosingClass(); |
ConstructorBodyElement bodyElement; |
for (Link<Element> backendMembers = classElement.backendMembers; |
- !backendMembers.isEmpty(); |
+ !backendMembers.isEmpty; |
backendMembers = backendMembers.tail) { |
Element backendMember = backendMembers.head; |
if (backendMember.isGenerativeConstructorBody()) { |
@@ -1187,7 +1187,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
if (functionNode.initializers != null) { |
Link<Node> initializers = functionNode.initializers.nodes; |
- for (Link<Node> link = initializers; !link.isEmpty(); link = link.tail) { |
+ for (Link<Node> link = initializers; !link.isEmpty; link = link.tail) { |
assert(link.head is Send); |
if (link.head is !SendSet) { |
// A super initializer or constructor redirection. |
@@ -1204,7 +1204,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
// A field initializer. |
SendSet init = link.head; |
Link<Node> arguments = init.arguments; |
- assert(!arguments.isEmpty() && arguments.tail.isEmpty()); |
+ assert(!arguments.isEmpty && arguments.tail.isEmpty); |
sourceElementStack.add(constructor); |
visit(arguments.head); |
sourceElementStack.removeLast(); |
@@ -1595,17 +1595,17 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
visitBlock(Block node) { |
for (Link<Node> link = node.statements.nodes; |
- !link.isEmpty(); |
+ !link.isEmpty; |
link = link.tail) { |
visit(link.head); |
if (isAborted()) { |
// The block has been aborted by a return or a throw. |
- if (!stack.isEmpty()) compiler.cancel('non-empty instruction stack'); |
+ if (!stack.isEmpty) compiler.cancel('non-empty instruction stack'); |
return; |
} |
} |
assert(!current.isClosed()); |
- if (!stack.isEmpty()) compiler.cancel('non-empty instruction stack'); |
+ if (!stack.isEmpty) compiler.cancel('non-empty instruction stack'); |
} |
visitClassNode(ClassNode node) { |
@@ -1657,7 +1657,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
branchBlock.addSuccessor(loopExitBlock); |
open(loopExitBlock); |
localsHandler.endLoop(loopEntry); |
- if (!breakLocals.isEmpty()) { |
+ if (!breakLocals.isEmpty) { |
breakLocals.add(savedLocals); |
localsHandler = savedLocals.mergeMultiple(breakLocals, loopExitBlock); |
} else { |
@@ -1751,7 +1751,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
HLabeledBlockInformation labelInfo; |
List<LabelElement> labels = jumpHandler.labels(); |
TargetElement target = elements[loop]; |
- if (!labels.isEmpty()) { |
+ if (!labels.isEmpty) { |
beginBodyBlock.setBlockFlow( |
new HLabeledBlockInformation( |
new HSubGraphBlockInformation(bodyGraph), |
@@ -1873,7 +1873,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
continueLocals.add(locals); |
}); |
bodyExitBlock.addSuccessor(conditionBlock); |
- if (!continueLocals.isEmpty()) { |
+ if (!continueLocals.isEmpty) { |
continueLocals.add(localsHandler); |
localsHandler = savedLocals.mergeMultiple(continueLocals, conditionBlock); |
SubGraph bodyGraph = new SubGraph(bodyEntryBlock, bodyExitBlock); |
@@ -1881,7 +1881,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
HSubGraphBlockInformation bodyInfo = |
new HSubGraphBlockInformation(bodyGraph); |
HLabeledBlockInformation info; |
- if (!labels.isEmpty()) { |
+ if (!labels.isEmpty) { |
info = new HLabeledBlockInformation(bodyInfo, labels, isContinue: true); |
} else { |
info = new HLabeledBlockInformation.implicit(bodyInfo, target, |
@@ -1934,7 +1934,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
compiler.enqueuer.codegen.addToWorkList(callElement, elements); |
// TODO(ahe): This should be registered in codegen, not here. |
compiler.enqueuer.codegen.registerInstantiatedClass(closureClassElement); |
- assert(closureClassElement.localScope.isEmpty()); |
+ assert(closureClassElement.localScope.isEmpty); |
List<HInstruction> capturedVariables = <HInstruction>[]; |
for (Element member in closureClassElement.backendMembers) { |
@@ -2395,7 +2395,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
new Map<SourceString, HInstruction>(); |
List<SourceString> namedArguments = selector.namedArguments; |
int nameIndex = 0; |
- for (; !arguments.isEmpty(); arguments = arguments.tail) { |
+ for (; !arguments.isEmpty; arguments = arguments.tail) { |
visit(arguments.head); |
instructions[namedArguments[nameIndex++]] = pop(); |
} |
@@ -2447,7 +2447,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
} |
void addGenericSendArgumentsToList(Link<Node> link, List<HInstruction> list) { |
- for (; !link.isEmpty(); link = link.tail) { |
+ for (; !link.isEmpty; link = link.tail) { |
visit(link.head); |
list.add(pop()); |
} |
@@ -2459,7 +2459,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
SourceString dartMethodName; |
bool isNotEquals = false; |
- if (node.isIndex && !node.arguments.tail.isEmpty()) { |
+ if (node.isIndex && !node.arguments.tail.isEmpty) { |
dartMethodName = Elements.constructOperatorName( |
const SourceString('[]='), false); |
} else if (node.selector.asOperator() != null) { |
@@ -2528,7 +2528,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
// If the invoke is on foreign code, don't visit the first |
// argument, which is the type, and the second argument, |
// which is the foreign code. |
- if (link.isEmpty() || link.tail.isEmpty()) { |
+ if (link.isEmpty || link.tail.isEmpty) { |
compiler.cancel('At least two arguments expected', |
node: node.argumentsNode); |
} |
@@ -2559,7 +2559,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
void handleForeignUnintercepted(Send node) { |
Link<Node> link = node.arguments; |
- if (!link.tail.isEmpty()) { |
+ if (!link.tail.isEmpty) { |
compiler.cancel( |
'More than one expression in UNINTERCEPTED()', node: node); |
} |
@@ -2571,7 +2571,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
void handleForeignJsHasEquals(Send node) { |
List<HInstruction> inputs = <HInstruction>[]; |
- if (!node.arguments.tail.isEmpty()) { |
+ if (!node.arguments.tail.isEmpty) { |
compiler.cancel( |
'More than one expression in JS_HAS_EQUALS()', node: node); |
} |
@@ -2584,7 +2584,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
} |
void handleForeignJsCurrentIsolate(Send node) { |
- if (!node.arguments.isEmpty()) { |
+ if (!node.arguments.isEmpty) { |
compiler.cancel( |
'Too many arguments to JS_CURRENT_ISOLATE', node: node); |
} |
@@ -2635,7 +2635,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
} |
void handleForeignDartClosureToJs(Send node) { |
- if (node.arguments.isEmpty() || !node.arguments.tail.isEmpty()) { |
+ if (node.arguments.isEmpty || !node.arguments.tail.isEmpty) { |
compiler.cancel('Exactly one argument required', |
node: node.argumentsNode); |
} |
@@ -2806,7 +2806,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
} else if (type is InterfaceType) { |
bool isFirstVariable = true; |
InterfaceType interfaceType = type; |
- bool hasTypeArguments = !interfaceType.arguments.isEmpty(); |
+ bool hasTypeArguments = !interfaceType.arguments.isEmpty; |
if (!isInQuotes) template.add("'"); |
template.add(rti.getName(type.element)); |
if (hasTypeArguments) { |
@@ -2853,7 +2853,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
void callSetRuntimeTypeInfo(ClassElement element, |
List<HInstruction> rtiInputs, |
HInstruction newObject) { |
- bool needsRti = compiler.world.needsRti(element) && !rtiInputs.isEmpty(); |
+ bool needsRti = compiler.world.needsRti(element) && !rtiInputs.isEmpty; |
bool runtimeTypeIsUsed = compiler.enabledRuntimeType; |
if (!needsRti && !runtimeTypeIsUsed) return; |
@@ -2904,7 +2904,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
Element originalElement = elements[node]; |
if (identical(originalElement.getEnclosingClass(), compiler.listClass)) { |
isListConstructor = true; |
- if (node.arguments.isEmpty()) { |
+ if (node.arguments.isEmpty) { |
return HType.EXTENDABLE_ARRAY; |
} else { |
return HType.MUTABLE_ARRAY; |
@@ -3169,7 +3169,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
} else if (const SourceString("=") == op.source) { |
Element element = elements[node]; |
Link<Node> link = node.arguments; |
- assert(!link.isEmpty() && link.tail.isEmpty()); |
+ assert(!link.isEmpty && link.tail.isEmpty); |
visit(link.head); |
HInstruction value = pop(); |
generateSetter(node, element, value); |
@@ -3180,7 +3180,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
const SourceString("--") == op.source || |
node.assignmentOperator.source.stringValue.endsWith("=")); |
Element element = elements[node]; |
- bool isCompoundAssignment = !node.arguments.isEmpty(); |
+ bool isCompoundAssignment = !node.arguments.isEmpty; |
bool isPrefix = !node.isPostfix; // Compound assignments are prefix. |
// [receiver] is only used if the node is an instance send. |
@@ -3248,7 +3248,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
} |
visitNodeList(NodeList node) { |
- for (Link<Node> link = node.nodes; !link.isEmpty(); link = link.tail) { |
+ for (Link<Node> link = node.nodes; !link.isEmpty; link = link.tail) { |
if (isAborted()) { |
compiler.reportWarning(link.head, 'dead code'); |
} else { |
@@ -3293,7 +3293,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
visit(node.expression); |
value = pop(); |
} |
- if (!inliningStack.isEmpty()) { |
+ if (!inliningStack.isEmpty) { |
localsHandler.updateLocal(returnElement, value); |
} else { |
close(attachPosition(new HReturn(value), node)).addSuccessor(graph.exit); |
@@ -3322,7 +3322,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
visitVariableDefinitions(VariableDefinitions node) { |
for (Link<Node> link = node.definitions.nodes; |
- !link.isEmpty(); |
+ !link.isEmpty; |
link = link.tail) { |
Node definition = link.head; |
if (definition is Identifier) { |
@@ -3346,7 +3346,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
List<HInstruction> inputs = <HInstruction>[]; |
for (Link<Node> link = node.elements.nodes; |
- !link.isEmpty(); |
+ !link.isEmpty; |
link = link.tail) { |
visit(link.head); |
inputs.add(pop()); |
@@ -3542,7 +3542,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
} |
List<HInstruction> inputs = <HInstruction>[]; |
for (Link<Node> link = node.entries.nodes; |
- !link.isEmpty(); |
+ !link.isEmpty; |
link = link.tail) { |
visit(link.head); |
inputs.addLast(pop()); |
@@ -3569,7 +3569,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
HBasicBlock startBlock = openNewBlock(); |
visit(node.expression); |
HInstruction expression = pop(); |
- if (node.cases.isEmpty()) { |
+ if (node.cases.isEmpty) { |
return; |
} |
@@ -3668,7 +3668,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
HBasicBlock expressionStart = openNewBlock(); |
visit(node.expression); |
HInstruction expression = pop(); |
- if (node.cases.isEmpty()) { |
+ if (node.cases.isEmpty) { |
return true; |
} |
HBasicBlock expressionEnd = current; |
@@ -3834,14 +3834,14 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
} |
Link<Node> skipLabels(Link<Node> labelsAndCases) { |
- while (!labelsAndCases.isEmpty() && labelsAndCases.head is Label) { |
+ while (!labelsAndCases.isEmpty && labelsAndCases.head is Label) { |
labelsAndCases = labelsAndCases.tail; |
} |
return labelsAndCases; |
} |
Link<Node> labelsAndCases = skipLabels(node.labelsAndCases.nodes); |
- if (labelsAndCases.isEmpty()) { |
+ if (labelsAndCases.isEmpty) { |
// Default case with no expressions. |
if (!node.isDefaultCase) { |
compiler.internalError("Case with no expression and not default", |
@@ -3877,7 +3877,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
// If this is the last expression, just return it. |
Link<Node> tail = skipLabels(remainingCases.tail); |
- if (tail.isEmpty()) { |
+ if (tail.isEmpty) { |
left(); |
return; |
} |
@@ -3892,7 +3892,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
if (node.isDefaultCase) { |
// Default case must be last. |
- assert(cases.tail.isEmpty()); |
+ assert(cases.tail.isEmpty); |
// Perform the tests until one of them match, but then always execute the |
// statements. |
// TODO(lrn): Stop performing tests when all expressions are compile-time |
@@ -3900,7 +3900,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
handleIf(node, () { buildTests(labelsAndCases); }, (){}, null); |
visit(node.statements); |
} else { |
- if (cases.tail.isEmpty()) { |
+ if (cases.tail.isEmpty) { |
handleIf(node, |
() { buildTests(labelsAndCases); }, |
() { visit(node.statements); }, |
@@ -3951,7 +3951,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
SubGraph catchGraph = null; |
HParameterValue exception = null; |
- if (!node.catchBlocks.isEmpty()) { |
+ if (!node.catchBlocks.isEmpty) { |
localsHandler = new LocalsHandler.from(savedLocals); |
startCatchBlock = graph.addNewBlock(); |
open(startCatchBlock); |
@@ -4016,7 +4016,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
} |
void visitElse() { |
- if (link.isEmpty()) { |
+ if (link.isEmpty) { |
close(new HThrow(exception, isRethrow: true)); |
} else { |
CatchBlock newBlock = link.head; |
@@ -4451,7 +4451,7 @@ class SsaBranchBuilder { |
(isAnd ? send.isLogicalAnd : send.isLogicalOr)) { |
Node newLeft = send.receiver; |
Link<Node> link = send.argumentsNode.nodes; |
- assert(link.tail.isEmpty()); |
+ assert(link.tail.isEmpty); |
Node middle = link.head; |
handleLogicalAndOrWithLeftNode( |
newLeft, |
@@ -4493,7 +4493,7 @@ class SsaBranchBuilder { |
HBasicBlock elseBlock = elseBranch.block; |
HBasicBlock joinBlock; |
// If at least one branch did not abort, open the joinBranch. |
- if (!joinBranch.block.predecessors.isEmpty()) { |
+ if (!joinBranch.block.predecessors.isEmpty) { |
startBranch(joinBranch); |
joinBlock = joinBranch.block; |
} |