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

Unified Diff: tests/language_strong/invocation_mirror_test.dart

Issue 2979353002: implement `Invocation.typeArguments` in DDC (Closed)
Patch Set: fix Created 3 years, 5 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/language_strong/invocation_mirror_test.dart
diff --git a/tests/language_strong/invocation_mirror_test.dart b/tests/language_strong/invocation_mirror_test.dart
index 6eca589446815e593a5a866040f6f4a37037e58e..e23127461c773116f68253e77f12bfc4f2a62030 100644
--- a/tests/language_strong/invocation_mirror_test.dart
+++ b/tests/language_strong/invocation_mirror_test.dart
@@ -58,7 +58,7 @@ class C extends N {
* and with both optionals for everything else.
*/
testInvocationMirror(Invocation im, Symbol name,
- [List positional, List named]) {
+ [List positional, List named, List typeArgs]) {
Expect.isTrue(im is Invocation, "is Invocation");
Expect.equals(name, im.memberName, "name");
if (named == null) {
@@ -94,12 +94,14 @@ testInvocationMirror(Invocation im, Symbol name,
im.namedArguments.containsKey(k), "$name:?namedArguments[$k]");
Expect.equals(v, im.namedArguments[k], "$name:namedArguments[$k]");
});
+ var imTypeArgs = (im as dynamic).typeArguments as List<Type>;
+ Expect.listEquals(typeArgs ?? [], imTypeArgs);
}
// Test different ways that noSuchMethod can be called.
testInvocationMirrors() {
- var n = new N();
- var c = new C();
+ dynamic n = new N();
+ dynamic c = new C();
// Missing property/method access.
testInvocationMirror(n.bar, const Symbol('bar'));
@@ -193,103 +195,97 @@ testInvocationMirrors() {
}
class M extends N {
- noSuchMethod(Invocation m) {
- throw "never get here";
- }
-
- testSuperCalls() {
+ testSelfCalls() {
// Missing property/method access.
- testInvocationMirror(super.bar, const Symbol('bar'));
+ dynamic self = this;
+ testInvocationMirror(self.bar, const Symbol('bar'));
testInvocationMirror(() {
- super.bar = 42;
+ self.bar = 42;
return last;
}(), const Symbol('bar='), [42]);
- testInvocationMirror(super.bar(), const Symbol('bar'), [], []);
- testInvocationMirror(super.bar(42), const Symbol('bar'), [42], []);
+ testInvocationMirror(self.bar(), const Symbol('bar'), [], []);
+ testInvocationMirror(self.bar(42), const Symbol('bar'), [42], []);
testInvocationMirror(
- super.bar(x: 42), const Symbol('bar'), [], [const Symbol("x"), 42]);
- testInvocationMirror(super.bar(37, x: 42), const Symbol('bar'), [37],
+ self.bar(x: 42), const Symbol('bar'), [], [const Symbol("x"), 42]);
+ testInvocationMirror(self.bar(37, x: 42), const Symbol('bar'), [37],
[const Symbol("x"), 42]);
// Missing operator access.
- testInvocationMirror(super + 4, const Symbol('+'), [4], []);
- testInvocationMirror(super - 4, const Symbol('-'), [4], []);
- testInvocationMirror(-super, const Symbol('unary-'), [], []);
- testInvocationMirror(super[42], const Symbol('[]'), [42], []);
+ testInvocationMirror(self + 4, const Symbol('+'), [4], []);
+ testInvocationMirror(self - 4, const Symbol('-'), [4], []);
+ testInvocationMirror(-self, const Symbol('unary-'), [], []);
+ testInvocationMirror(self[42], const Symbol('[]'), [42], []);
testInvocationMirror(() {
- super[37] = 42;
+ self[37] = 42;
return last;
}(), const Symbol('[]='), [37, 42], []);
// Wrong arguments to existing function.
- testInvocationMirror(super.flif(), const Symbol("flif"), [], []);
- testInvocationMirror(
- super.flif(37, 42), const Symbol("flif"), [37, 42], []);
+ testInvocationMirror(self.flif(), const Symbol("flif"), [], []);
+ testInvocationMirror(self.flif(37, 42), const Symbol("flif"), [37, 42], []);
testInvocationMirror(
- super.flif(x: 42), const Symbol("flif"), [], [const Symbol("x"), 42]);
- testInvocationMirror(super.flif(37, x: 42), const Symbol("flif"), [37],
+ self.flif(x: 42), const Symbol("flif"), [], [const Symbol("x"), 42]);
+ testInvocationMirror(self.flif(37, x: 42), const Symbol("flif"), [37],
[const Symbol("x"), 42]);
testInvocationMirror(() {
- super.flif = 42;
+ self.flif = 42;
return last;
}(), const Symbol("flif="), [42]);
+ testInvocationMirror(self.flaf(37, 42), const Symbol("flaf"), [37, 42], []);
testInvocationMirror(
- super.flaf(37, 42), const Symbol("flaf"), [37, 42], []);
- testInvocationMirror(
- super.flaf(x: 42), const Symbol("flaf"), [], [const Symbol("x"), 42]);
- testInvocationMirror(super.flaf(37, x: 42), const Symbol("flaf"), [37],
+ self.flaf(x: 42), const Symbol("flaf"), [], [const Symbol("x"), 42]);
+ testInvocationMirror(self.flaf(37, x: 42), const Symbol("flaf"), [37],
[const Symbol("x"), 42]);
testInvocationMirror(() {
- super.flaf = 42;
+ self.flaf = 42;
return last;
}(), const Symbol("flaf="), [42]);
+ testInvocationMirror(self.flof(37, 42), const Symbol("flof"), [37, 42], []);
testInvocationMirror(
- super.flof(37, 42), const Symbol("flof"), [37, 42], []);
- testInvocationMirror(
- super.flof(x: 42), const Symbol("flof"), [], [const Symbol("x"), 42]);
- testInvocationMirror(super.flof(37, y: 42), const Symbol("flof"), [37],
+ self.flof(x: 42), const Symbol("flof"), [], [const Symbol("x"), 42]);
+ testInvocationMirror(self.flof(37, y: 42), const Symbol("flof"), [37],
[const Symbol("y"), 42]);
testInvocationMirror(() {
- super.flof = 42;
+ self.flof = 42;
return last;
}(), const Symbol("flof="), [42]);
// Reading works.
- Expect.isTrue(super.flif is Function);
- Expect.isTrue(super.flaf is Function);
- Expect.isTrue(super.flof is Function);
+ Expect.isTrue(self.flif is Function);
+ Expect.isTrue(self.flaf is Function);
+ Expect.isTrue(self.flof is Function);
// Writing to read-only fields.
testInvocationMirror(() {
- super.wut = 42;
+ self.wut = 42;
return last;
}(), const Symbol("wut="), [42]);
testInvocationMirror(() {
- super.plif = 42;
+ self.plif = 42;
return last;
}(), const Symbol("plif="), [42]);
testInvocationMirror(() {
- super.plaf = 42;
+ self.plaf = 42;
return last;
}(), const Symbol("plaf="), [42]);
// Calling noSuchMethod itself, badly.
testInvocationMirror(
- super.noSuchMethod(), const Symbol("noSuchMethod"), [], []);
+ self.noSuchMethod(), const Symbol("noSuchMethod"), [], []);
testInvocationMirror(
- super.noSuchMethod(37, 42), const Symbol("noSuchMethod"), [37, 42], []);
- testInvocationMirror(super.noSuchMethod(37, x: 42),
+ self.noSuchMethod(37, 42), const Symbol("noSuchMethod"), [37, 42], []);
+ testInvocationMirror(self.noSuchMethod(37, x: 42),
const Symbol("noSuchMethod"), [37], [const Symbol("x"), 42]);
- testInvocationMirror(super.noSuchMethod(x: 42),
- const Symbol("noSuchMethod"), [], [const Symbol("x"), 42]);
+ testInvocationMirror(self.noSuchMethod(x: 42), const Symbol("noSuchMethod"),
+ [], [const Symbol("x"), 42]);
// Closurizing a method means that calling it badly will not hit the
// original receivers noSuchMethod, only the one inherited from Object
// by the closure object.
Expect.throws(() {
- var x = super.flif;
+ var x = self.flif;
x(37, 42);
}, (e) => e is NoSuchMethodError);
}
@@ -297,12 +293,12 @@ class M extends N {
// Test the NoSuchMethodError thrown by different incorrect calls.
testNoSuchMethodErrors() {
- test(Function block) {
+ test(block()) {
Expect.throws(block, (e) => e is NoSuchMethodError);
}
- var n = new N();
- var o = new Object();
+ dynamic n = new N();
+ dynamic o = new Object();
test(() => o.bar);
test(() => o.bar = 42);
test(() => o.bar());
@@ -322,5 +318,5 @@ testNoSuchMethodErrors() {
main() {
testInvocationMirrors();
testNoSuchMethodErrors();
- new M().testSuperCalls();
+ new M().testSelfCalls();
}

Powered by Google App Engine
This is Rietveld 408576698