e6e9b4e595
Closes https://github.com/dart-lang/sdk/issues/55741 Change-Id: I1e542041496d07714431ed40871031a117030736 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366940 Reviewed-by: Ömer Ağacan <omersa@google.com> Commit-Queue: Martin Kustermann <kustermann@google.com>
37 lines
1.3 KiB
Dart
37 lines
1.3 KiB
Dart
// Copyright (c) 2024, 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.
|
|
|
|
import 'package:expect/expect.dart';
|
|
|
|
final kTrue = int.parse('1') == 1;
|
|
|
|
void main() {
|
|
final base = kTrue ? Base<String>('a') : 1;
|
|
final baseNullable = kTrue ? Base<String?>('a') : 1;
|
|
final sub = kTrue ? Sub<String>('a') : 1;
|
|
final subNullable = kTrue ? Sub<String?>('a') : 1;
|
|
|
|
Expect.isTrue(base is Base<String>, 'is Base<String>');
|
|
Expect.isTrue(base is Base<String?>, 'is Base<String?>');
|
|
Expect.isTrue(baseNullable is! Base<String>, 'is! Base<String>');
|
|
Expect.isTrue(baseNullable is Base<String?>, 'is Base<String?>');
|
|
Expect.isTrue(sub is Sub<String>, 'is Sub<String>');
|
|
Expect.isTrue(sub is Sub<String?>, 'is Sub<String?>');
|
|
Expect.isTrue(subNullable is! Sub<String>, 'is! Sub<String>');
|
|
Expect.isTrue(subNullable is Sub<String?>, 'is Sub<String?>');
|
|
Expect.isTrue(sub is! Base<String>, 'is! Base<String>');
|
|
Expect.isTrue(sub is Base<String?>, 'is Base<String?>');
|
|
Expect.isTrue(subNullable is! Base<String>, 'is! Base<String>');
|
|
Expect.isTrue(subNullable is Base<String?>, 'is Base<String?>');
|
|
}
|
|
|
|
class Base<T> {
|
|
Base(this.data);
|
|
final T data;
|
|
}
|
|
|
|
class Sub<T> extends Base<T?> {
|
|
Sub(super.data);
|
|
}
|