|  | // Copyright (c) 2018, 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. | 
|  |  | 
|  | // dart2jsOptions=--strong | 
|  |  | 
|  | // Regression test checking that nsm-forwarders do not get installed for private | 
|  | // members of other libraries. See http://dartbug.com/33665 | 
|  |  | 
|  | import 'package:expect/expect.dart'; | 
|  | import 'no_such_method_strong11_lib.dart'; | 
|  |  | 
|  | abstract class J { | 
|  | int _m3(); | 
|  | int _m4(); | 
|  | } | 
|  |  | 
|  | class A implements I, J { | 
|  | int _m1() => 1; | 
|  | int _m3() => 3; | 
|  | noSuchMethod(Invocation m) => -1; | 
|  | } | 
|  |  | 
|  | main() { | 
|  | dynamic a = confuse(new A()); | 
|  | Expect.equals(1, a._m1()); | 
|  | Expect.equals(3, a._m3()); | 
|  | Expect.equals(1, (a._m1)()); | 
|  | Expect.equals(3, (a._m3)()); | 
|  |  | 
|  | Expect.equals(-1, a._m2()); | 
|  | Expect.equals(-1, a._m4()); | 
|  | Expect.isFalse(a._m2 is Function); | 
|  | Expect.equals(-1, a._m2); | 
|  | Expect.isTrue(a._m4 is Function); | 
|  | Expect.equals(-1, (a._m4)()); | 
|  | } | 
|  |  | 
|  | @pragma('dart2js:noInline') | 
|  | @pragma('dart2js:assumeDynamic') | 
|  | confuse(x) => x; |