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

Unified Diff: tests/compiler/dart2js/resolver_test.dart

Issue 11140018: Ensure that ClassElement.lookupConstructor fails when looking up default constructor using Selector… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Removed unused paramter, inverted if-then-else condition. 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
Index: tests/compiler/dart2js/resolver_test.dart
diff --git a/tests/compiler/dart2js/resolver_test.dart b/tests/compiler/dart2js/resolver_test.dart
index fe4db71c5a6168489e11a351f36e1a5291dfda5e..d72c11902b8b6aa6fc344caa63d8db0b71fa87b5 100644
--- a/tests/compiler/dart2js/resolver_test.dart
+++ b/tests/compiler/dart2js/resolver_test.dart
@@ -563,10 +563,16 @@ resolveConstructor(String script, String statement, String className,
compiler.resolveStatement(statement);
ClassElement classElement =
compiler.mainApp.find(buildSourceString(className));
- Element element =
- classElement.lookupConstructor(
- new Selector.callConstructor(buildSourceString(constructor),
- classElement.getLibrary()));
+ Element element;
+ if (constructor !== '') {
+ element = classElement.lookupConstructor(
+ new Selector.callConstructor(buildSourceString(constructor),
+ classElement.getLibrary()));
+ } else {
+ element = classElement.lookupConstructor(
+ new Selector.callDefaultConstructor(classElement.getLibrary()));
+ }
+
FunctionExpression tree = element.parseNode(compiler);
ResolverVisitor visitor = new ResolverVisitor(compiler, element);
new InitializerResolver(visitor).resolveInitializers(element, tree);
@@ -623,27 +629,27 @@ testInitializers() {
int foo; int bar;
A() : this.foo = 1, bar = 2;
}""";
- resolveConstructor(script, "A a = new A();", "A", "A", 2);
+ resolveConstructor(script, "A a = new A();", "A", "", 2);
script = """class A {
int foo; A a;
A() : a.foo = 1;
}""";
- resolveConstructor(script, "A a = new A();", "A", "A", 0,
+ resolveConstructor(script, "A a = new A();", "A", "", 0,
[], [MessageKind.INVALID_RECEIVER_IN_INITIALIZER]);
script = """class A {
int foo;
A() : this.foo = 1, this.foo = 2;
}""";
- resolveConstructor(script, "A a = new A();", "A", "A", 2,
+ resolveConstructor(script, "A a = new A();", "A", "", 2,
[MessageKind.ALREADY_INITIALIZED],
[MessageKind.DUPLICATE_INITIALIZER]);
script = """class A {
A() : this.foo = 1;
}""";
- resolveConstructor(script, "A a = new A();", "A", "A", 0,
+ resolveConstructor(script, "A a = new A();", "A", "", 0,
[], [MessageKind.CANNOT_RESOLVE]);
script = """class A {
@@ -651,14 +657,14 @@ testInitializers() {
int bar;
A() : this.foo = bar;
}""";
- resolveConstructor(script, "A a = new A();", "A", "A", 3,
+ resolveConstructor(script, "A a = new A();", "A", "", 3,
[], [MessageKind.NO_INSTANCE_AVAILABLE]);
script = """class A {
int foo() => 42;
A() : foo();
}""";
- resolveConstructor(script, "A a = new A();", "A", "A", 0,
+ resolveConstructor(script, "A a = new A();", "A", "", 0,
[], [MessageKind.CONSTRUCTOR_CALL_EXPECTED]);
script = """class A {
@@ -684,7 +690,7 @@ testInitializers() {
class B extends A {
B() : super(0);
}""";
- resolveConstructor(script, "B a = new B();", "B", "B", 1,
+ resolveConstructor(script, "B a = new B();", "B", "", 1,
[], []);
script = """class A {
@@ -694,7 +700,7 @@ testInitializers() {
class B extends A {
B() : super(0), super(1);
}""";
- resolveConstructor(script, "B b = new B();", "B", "B", 2,
+ resolveConstructor(script, "B b = new B();", "B", "", 2,
[], [MessageKind.DUPLICATE_SUPER_INITIALIZER]);
script = "";
@@ -711,7 +717,7 @@ testInitializers() {
class Null {}
class Dynamic_ {}
class Object { Object() : super(); }''';
- resolveConstructor(script, "Object o = new Object();", "Object", "Object", 1,
+ resolveConstructor(script, "Object o = new Object();", "Object", "", 1,
[], [MessageKind.SUPER_INITIALIZER_IN_OBJECT],
corelib: CORELIB_WITH_INVALID_OBJECT);
}

Powered by Google App Engine
This is Rietveld 408576698