mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 07:31:43 +00:00
893b4d4fe9
Also rename void-methods.dart to void_methods.dart. R=johnniwinther@google.com Review-Url: https://codereview.chromium.org/3006963002 .
34 lines
830 B
Dart
34 lines
830 B
Dart
// 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.
|
|
|
|
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());
|
|
}
|