Revert r27592, some unit tests fail.

Review URL: https://codereview.chromium.org//23904023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27593 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
ngeoffray@google.com
2013-09-18 07:27:19 +00:00
parent abbd435329
commit 461f930268
7 changed files with 15 additions and 67 deletions
@@ -536,9 +536,6 @@ class ClosureTranslator extends Visitor {
} else if (node.isTypeCast) {
DartType type = elements.getType(node.arguments.head);
analyzeType(type);
} else if (element == compiler.assertMethod
&& !compiler.enableUserAssertions) {
return;
}
node.visitChildren(this);
}
@@ -44,9 +44,9 @@ class DeclarationTypePlaceholder {
class SendVisitor extends ResolvedVisitor {
final PlaceholderCollector collector;
SendVisitor(collector, TreeElements elements)
: this.collector = collector,
super(elements, collector.compiler);
get compiler => collector.compiler;
SendVisitor(this.collector, TreeElements elements) : super(elements);
visitOperatorSend(Send node) {
}
@@ -104,10 +104,6 @@ class SendVisitor extends ResolvedVisitor {
}
}
visitAssert(node) {
visitStaticSend(node);
}
visitStaticSend(Send node) {
final element = elements[node];
collector.backend.registerStaticSend(element, node);
@@ -5,10 +5,9 @@
part of dart2js;
abstract class ResolvedVisitor<R> extends Visitor<R> {
final Compiler compiler;
TreeElements elements;
ResolvedVisitor(this.elements, this.compiler);
ResolvedVisitor(this.elements);
R visitSend(Send node) {
Element element = elements[node];
@@ -27,8 +26,6 @@ abstract class ResolvedVisitor<R> extends Visitor<R> {
return visitStaticSend(node);
} else if (Elements.isClosureSend(node, element)) {
return visitClosureSend(node);
} else if (element == compiler.assertMethod) {
return visitAssert(node);
} else {
if (Elements.isUnresolved(element)) {
if (element == null) {
@@ -62,7 +59,6 @@ abstract class ResolvedVisitor<R> extends Visitor<R> {
R visitDynamicSend(Send node);
R visitStaticSend(Send node);
R visitTypeReferenceSend(Send node);
R visitAssert(Send node);
void internalError(String reason, {Node node});
@@ -935,7 +935,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
sourceElementStack = <Element>[work.element],
inliningStack = <InliningState>[],
rti = builder.backend.rti,
super(work.resolutionTree, builder.compiler) {
super(work.resolutionTree) {
localsHandler = new LocalsHandler(this);
}
@@ -3601,14 +3601,6 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
}
}
visitAssert(node) {
if (!compiler.enableUserAssertions) {
stack.add(graph.addConstantNull(compiler));
return;
}
visitStaticSend(node);
}
visitStaticSend(Send node) {
Selector selector = elements.getSelector(node);
Element element = elements[node];
@@ -3622,6 +3614,11 @@ class SsaBuilder extends ResolvedVisitor implements Visitor {
argumentNodes: node.arguments);
return;
}
if (identical(element, compiler.assertMethod)
&& !compiler.enableUserAssertions) {
stack.add(graph.addConstantNull(compiler));
return;
}
compiler.ensure(!element.isGenerativeConstructor());
if (element.isFunction()) {
var inputs = <HInstruction>[];
@@ -1666,7 +1666,7 @@ class TypeInferrerVisitor extends ResolvedVisitor<ConcreteType> {
ConcreteTypesInferrer inferrer, this.environment)
: this.inferrer = inferrer
, this.backend = inferrer.compiler.backend
, super(elements, inferrer.compiler) {
, super(elements) {
for (Element element in elements.otherDependencies) {
if (element.isClass()) {
inferrer.augmentSeenClasses(inferrer.normalize(element));
@@ -2378,14 +2378,6 @@ class TypeInferrerVisitor extends ResolvedVisitor<ConcreteType> {
return inferrer.unknownConcreteType;
}
ConcreteType visitAssert(Send node) {
if (!compiler.enableUserAssertions) {
return inferrer.nullConcreteType;
} else {
return visitStaticSend(node);
}
}
ConcreteType visitStaticSend(Send node) {
if (elements.getSelector(node).name == const SourceString('JS')) {
return inferrer.getNativeCallReturnType(node);
@@ -554,6 +554,7 @@ abstract class InferrerVisitor
final Element analyzedElement;
final TypeSystem<T> types;
final E inferrer;
final Compiler compiler;
final Map<TargetElement, List<LocalsHandler<T>>> breaksFor =
new Map<TargetElement, List<LocalsHandler<T>>>();
final Map<TargetElement, List<LocalsHandler>> continuesFor =
@@ -583,10 +584,10 @@ abstract class InferrerVisitor
this.types,
Compiler compiler,
[LocalsHandler<T> handler])
: this.analyzedElement = analyzedElement,
: this.compiler = compiler,
this.analyzedElement = analyzedElement,
this.locals = handler,
super(compiler.enqueuer.resolution.getCachedElements(analyzedElement),
compiler) {
super(compiler.enqueuer.resolution.getCachedElements(analyzedElement)) {
if (handler != null) return;
Node node = analyzedElement.parseNode(compiler);
FieldInitializationScope<T> fieldScope =
@@ -614,13 +615,6 @@ abstract class InferrerVisitor
T visitFunctionExpression(FunctionExpression node);
T visitAssert(Send node) {
if (!compiler.enableUserAssertions) {
return types.nullType;
}
return visitStaticSend(node);
}
T visitNode(Node node) {
node.visitChildren(this);
}
-24
View File
@@ -1,24 +0,0 @@
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import "package:expect/expect.dart";
import "compiler_annotations.dart";
@DontInline()
foo() {
() => 42;
int a;
assert((a = 2) == 2);
return a;
}
main() {
bool isAssertEnabled = false;
assert(isAssertEnabled = true);
if (isAssertEnabled) {
Expect.equals(44, foo() + 42);
} else {
Expect.throws(() => foo() + 42, (e) => e is NoSuchMethodError);
}
}