Index: tests/kernel/unsorted/nsm_dispatcher_test.dart |
diff --git a/tests/kernel/unsorted/nsm_dispatcher_test.dart b/tests/kernel/unsorted/nsm_dispatcher_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d08b2ec2100c9c2d8d03d864558992500135263f |
--- /dev/null |
+++ b/tests/kernel/unsorted/nsm_dispatcher_test.dart |
@@ -0,0 +1,32 @@ |
+// Copyright (c) 2016, 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 'expect.dart'; |
+ |
+class A { |
+ noSuchMethod(Invocation invocation) { |
+ var s = '|${invocation.memberName}|'; |
+ for (var a in invocation.positionalArguments) { |
+ s = '$s$a|'; |
+ } |
+ invocation.namedArguments.forEach((Symbol k, v) { |
+ s = '$s$k/$v|'; |
+ }); |
+ print(s); |
+ return s; |
+ } |
+} |
+ |
+main() { |
+ var o = new A(); |
+ Expect.isTrue(o.fun() == '|Symbol("fun")|'); |
+ Expect.isTrue(o.fun(1) == '|Symbol("fun")|1|'); |
+ Expect.isTrue(o.fun(1, 2) == '|Symbol("fun")|1|2|'); |
+ Expect.isTrue(o.fun(1, b: 2) == |
+ '|Symbol("fun")|1|Symbol("b")/2|'); |
+ Expect.isTrue(o.fun(1, a: 1, b: 2) == |
+ '|Symbol("fun")|1|Symbol("a")/1|Symbol("b")/2|'); |
+ Expect.isTrue(o.fun(1, b: 2, a: 1) == |
+ '|Symbol("fun")|1|Symbol("a")/1|Symbol("b")/2|'); |
+} |