// 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. // @dart = 2.7 // Reduced version of generic_methods_dynamic_05a_strong. import "package:expect/expect.dart"; /*spec.class: A:deps=[C.bar],direct,explicit=[A.T*,A*,A*],needsArgs*/ /*prod.class: A:deps=[C.bar],explicit=[A*],needsArgs*/ class A { final T field; A(this.field); } /*spec.class: B:explicit=[A*],implicit=[B]*/ /*prod.class: B:explicit=[A*]*/ class B {} class C { /*spec.member: C.bar:explicit=[A*],implicit=[bar.T],indirect,needsArgs,selectors=[Selector(call, bar, arity=1, types=1)]*/ /*prod.member: C.bar:needsArgs,selectors=[Selector(call, bar, arity=1, types=1)]*/ A bar(A t) => new A(t.field); } main() { C c = new C(); dynamic x = c.bar(new A(new B())); Expect.isTrue(x is A); }