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

Unified Diff: lib/compiler/implementation/ssa/builder.dart

Issue 11238035: Make isEmpty a getter. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update status file with co19 issue number. Created 8 years, 2 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/compiler/implementation/ssa/bailout.dart ('k') | lib/compiler/implementation/ssa/codegen.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
« no previous file with comments | « lib/compiler/implementation/ssa/bailout.dart ('k') | lib/compiler/implementation/ssa/codegen.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698