Index: test/checker/checker_test.dart |
diff --git a/test/checker/checker_test.dart b/test/checker/checker_test.dart |
index f038857b61d49941cc4617b67e3e3ea47bd7099b..6ab7a45ad78b38c02824299d9a1aae21bc8b3fd8 100644 |
--- a/test/checker/checker_test.dart |
+++ b/test/checker/checker_test.dart |
@@ -16,7 +16,13 @@ void main() { |
test('conversion and dynamic invoke', () { |
testChecker({ |
+ '/helper.dart': ''' |
+ dynamic toString = (int x) => x + 42; |
+ dynamic hashCode = "hello"; |
+ ''', |
'/main.dart': ''' |
+ import 'helper.dart' as helper; |
+ |
class A { |
String x = "hello world"; |
@@ -28,6 +34,10 @@ void main() { |
print(str); |
} |
+ class B { |
+ String toString([int arg]) => arg.toString(); |
+ } |
+ |
void bar(a) { |
foo(/*info:DynamicCast,info:DynamicInvoke*/a.x); |
} |
@@ -58,6 +68,24 @@ void main() { |
A.baz2("hello"); |
var b2 = A.baz2; |
(/*info:DynamicInvoke*/b2("hello")); |
+ |
+ dynamic a1 = new B(); |
+ (/*info:DynamicInvoke*/a1.x); |
+ a1.toString(); |
+ (/*info:DynamicInvoke*/a1.toString(42)); |
+ var toStringClosure = a1.toString; |
+ (/*info:DynamicInvoke*/a1.toStringClosure()); |
+ (/*info:DynamicInvoke*/a1.toStringClosure(42)); |
+ (/*info:DynamicInvoke*/a1.toStringClosure("hello")); |
+ a1.hashCode; |
+ |
+ dynamic toString = () => null; |
+ (/*info:DynamicInvoke*/toString()); |
+ |
+ (/*info:DynamicInvoke*/helper.toString()); |
+ var toStringClosure2 = helper.toString; |
+ (/*info:DynamicInvoke*/toStringClosure2()); |
+ int hashCode = /*info:DynamicCast*/helper.hashCode; |
''' |
}); |
}); |