| // Copyright (c) 2011, 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. |
| // Dart test program testing that NoSuchMethod is properly called. |
| |
| import "package:expect/expect.dart"; |
| |
| class NoSuchMethodTest { |
| foo({a: 10, b: 20}) { |
| return (10 * a) + b; |
| } |
| |
| noSuchMethod(Invocation im) { |
| Expect.equals(#moo, im.memberName); |
| Expect.equals(0, im.positionalArguments.length); |
| Expect.equals(1, im.namedArguments.length); |
| return foo(b: im.namedArguments[const Symbol("b")]); |
| } |
| } |
| |
| main() { |
| var obj = new NoSuchMethodTest() as dynamic; |
| Expect.equals(199, obj.moo(b: 99)); // obj.NoSuchMethod called here. |
| } |