| // 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 'package:expect/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|'); |
| } |