mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 15:01:30 +00:00
29 lines
613 B
Dart
29 lines
613 B
Dart
class A {}
|
|
|
|
class B {}
|
|
|
|
class AB1 extends A implements B {}
|
|
|
|
class AB2 extends A implements B {}
|
|
|
|
class BA1 extends B implements A {}
|
|
|
|
class BA2 extends B implements A {}
|
|
|
|
takeSubclassOfA(obj) {
|
|
// The analysis should at least infer that 'obj' is a subclass of A,
|
|
// When the upper bound is ambiguous, it should use the common superclass, if
|
|
// there is one besides Object.
|
|
}
|
|
|
|
takeSubclassOfB(obj) {
|
|
// Likewise, the analysis should infer that 'obj' is a subclass of B.
|
|
}
|
|
|
|
main() {
|
|
takeSubclassOfA(new AB1());
|
|
takeSubclassOfA(new AB2());
|
|
|
|
takeSubclassOfB(new BA1());
|
|
takeSubclassOfB(new BA2());
|
|
}
|