Files
sdk/pkg/_fe_analyzer_shared/test/inheritance/data/issue40541.dart
T
Konstantin Shcheglov 5e4f28b900 Use ClassHierarchy for computing implemented interfaces.
Change-Id: Ie7acf61f9a29d59cc1416dea85a6adb7c534b8c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/140703
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-03-23 22:00:37 +00:00

38 lines
829 B
Dart

// 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.
/*library: nnbd=true*/
/*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();
}