| // Copyright (c) 2020, 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. | |
| /*class: A:A<T>,Object*/ | |
| class A<T> { | |
| /*member: A.test:void Function()*/ | |
| void test() { | |
| print(T); | |
| } | |
| } | |
| /*class: B:A<Object?>,B,Object*/ | |
| class B extends A<Object?> { | |
| /*member: B.test:void Function()*/ | |
| } | |
| /*class: C:A<dynamic>,C,Object*/ | |
| class C extends A<dynamic> { | |
| /*member: C.test:void Function()*/ | |
| } | |
| /*class: D1:A<Object?>,B,C,D1,Object*/ | |
| class D1 extends B implements C { | |
| /*member: D1.test:void Function()*/ | |
| } | |
| /*class: D2:A<Object?>,B,C,D2,Object*/ | |
| class D2 extends C implements B { | |
| /*member: D2.test:void Function()*/ | |
| } | |
| void main() { | |
| D1().test(); | |
| D2().test(); | |
| } |