| // 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. |
| |
| /*@testedFeatures=inference*/ |
| library test; |
| |
| class Foo { |
| int foo(int x) => x; |
| } |
| |
| test() { |
| dynamic d = new Foo(); |
| var /*@type=int*/ get_hashCode = d. /*@target=Object.hashCode*/ hashCode; |
| var /*@ type=dynamic */ call_hashCode = |
| d. /*@target=Object.hashCode*/ hashCode(); |
| var /*@type=String*/ call_toString = |
| d. /*@target=Object.toString*/ toString(); |
| var /*@ type=dynamic */ call_toStringArg = d.toString(color: "pink"); |
| var /*@ type=dynamic */ call_foo0 = d.foo(); |
| var /*@ type=dynamic */ call_foo1 = d.foo(1); |
| var /*@ type=dynamic */ call_foo2 = d.foo(1, 2); |
| var /*@ type=dynamic */ call_nsm0 = d.noSuchMethod(); |
| var /*@ type=dynamic */ call_nsm1 = |
| d. /*@target=Object.noSuchMethod*/ noSuchMethod(throw ''); |
| var /*@ type=dynamic */ call_nsm2 = d.noSuchMethod(null, null); |
| var /*@type=bool*/ equals_self = d /*@target=Object.==*/ == d; |
| var /*@type=bool*/ equals_null = d == null; |
| var /*@type=bool*/ null_equals = null == d; |
| var /*@type=bool*/ not_equals_self = d /*@target=Object.==*/ != d; |
| var /*@type=bool*/ not_equals_null = d != null; |
| var /*@type=bool*/ null_not_equals = null != d; |
| } |
| |
| main() {} |