| // 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. |
| // @dart=2.9 |
| /*@testedFeatures=inference*/ |
| library test; |
| |
| class C<T> { |
| C.optional(void func([T x])) {} |
| C.named(void func({T x})) {} |
| } |
| |
| void optional_toplevel([x = /*@ typeArgs=int* */ const [0]]) {} |
| |
| void named_toplevel({x: /*@ typeArgs=int* */ const [0]}) {} |
| |
| main() { |
| void optional_local([/*@ type=dynamic */ x = /*@ typeArgs=int* */ const [0]]) {} |
| void named_local({/*@ type=dynamic */ x: /*@ typeArgs=int* */ const [0]}) {} |
| var /*@ type=C<dynamic>* */ c_optional_toplevel = |
| new /*@ typeArgs=dynamic */ C.optional(optional_toplevel); |
| var /*@ type=C<dynamic>* */ c_named_toplevel = |
| new /*@ typeArgs=dynamic */ C.named(named_toplevel); |
| var /*@ type=C<dynamic>* */ c_optional_local = |
| new /*@ typeArgs=dynamic */ C.optional(optional_local); |
| var /*@ type=C<dynamic>* */ c_named_local = |
| new /*@ typeArgs=dynamic */ C.named(named_local); |
| var /*@ type=C<dynamic>* */ c_optional_closure = |
| new /*@ typeArgs=dynamic */ C.optional(/*@ returnType=Null */ ( |
| [/*@ type=dynamic */ x = /*@ typeArgs=int* */ const [0]]) {}); |
| var /*@ type=C<dynamic>* */ c_named_closure = new /*@ typeArgs=dynamic */ C.named( |
| /*@ returnType=Null */ ( |
| {/*@ type=dynamic */ x: /*@ typeArgs=int* */ const [0]}) {}); |
| } |