Chromium Code Reviews| Index: tests/language/vm/no_such_method_error_message_callable_vm_test.dart |
| diff --git a/tests/language/vm/no_such_method_error_message_callable_vm_test.dart b/tests/language/vm/no_such_method_error_message_callable_vm_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e24479f45c07b1f0db1c5ecd3b9d2ddd619f64b9 |
| --- /dev/null |
| +++ b/tests/language/vm/no_such_method_error_message_callable_vm_test.dart |
| @@ -0,0 +1,39 @@ |
| +// Copyright (c) 2017, 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. |
| +// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation |
| + |
| +import "package:expect/expect.dart"; |
| + |
| +// Test error message with noSuchMethodError: non-existent names |
| +// should result in a message that reports the missing method. |
| + |
| +class Callable { |
| + call() {} |
| +} |
| + |
| +call_bar(x) => x.bar(); |
| +call_with_bar(x) => x("bar"); |
| + |
| +testMessageProp() { |
| + try { |
| + call_bar(new Callable()); |
| + } catch (e) { |
| + Expect.isTrue(e.toString().indexOf("has no instance method 'bar'") != -1); |
|
rmacnak
2017/03/31 16:36:39
"
|
| + } |
| +} |
| + |
| +testMessageCall() { |
| + try { |
| + call_with_bar(new Callable()); |
| + } catch (e) { |
| + final noMatchingArgs = |
| + "has no instance method 'call' with matching arguments"; |
| + Expect.isTrue(e.toString().indexOf(noMatchingArgs) != -1); |
|
rmacnak
2017/03/31 16:36:39
"
|
| + } |
| +} |
| + |
| +main() { |
| + for (var i = 0; i < 20; i++) testMessageProp(); |
| + for (var i = 0; i < 20; i++) testMessageCall(); |
| +} |