dart-sdk/tests/language/regression_55741_test.dart

37 lines
1.3 KiB
Dart
Raw Normal View History

// 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);
}