| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // Regression test for http://dartbug.com/23432 | 5 // Regression test for http://dartbug.com/23432. Test that the receiver of a |
| 6 // NoSuchMethodError is correct on an intercepted method. The bug (issue 23432) |
| 7 // is that the interceptor is captured instead of the receiver. |
| 6 | 8 |
| 7 import 'package:expect/expect.dart'; | 9 import 'package:expect/expect.dart'; |
| 8 | 10 |
| 9 class N { | 11 class N { |
| 10 noSuchMethod(i) { print('x'); return 42; } | 12 noSuchMethod(i) { print('x'); return 42; } |
| 11 } | 13 } |
| 12 | 14 |
| 13 get NEVER => new DateTime.now().millisecondsSinceEpoch < 42; | 15 @NoInline() @AssumeDynamic() |
| 16 get NEVER => false; |
| 14 | 17 |
| 15 main() { | 18 main() { |
| 16 var c = 12345; | 19 var c = 12345; |
| 17 if (NEVER) c = new N(); | 20 if (NEVER) c = new N(); |
| 18 var e; | 21 var e; |
| 19 try { | 22 try { |
| 20 c..toString()..add(88); | 23 c..toString()..add(88); |
| 21 } catch (ex) { | 24 } catch (ex) { |
| 22 e = ex; | 25 e = ex; |
| 23 } | 26 } |
| 24 var s = e.toString(); | 27 var s = e.toString(); |
| 25 Expect.isTrue(s.contains('$c'), 'Text "$s" should contain "$c"'); | 28 Expect.isTrue(s.contains('$c'), 'Text "$s" should contain "$c"'); |
| 26 } | 29 } |
| OLD | NEW |