blob: c5322aa646d9604c3654d6990167c3bf95f819a4 [file] [log] [blame]
// Copyright (c) 2019, 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.
/// @assertion All types reified in legacy libraries are reified as legacy types.
/// @description Check that runtime type of the object of the class imported from
/// opted to legacy library is a legacy type.
/// @author iarkh@unipro.ru
// Requirements=nnbd-weak
import "../../../Utils/expect.dart";
import "type_reification_legacy_lib.dart";
main() {
var a = A();
Expect.equals(A, a.runtimeType);
Expect.isTrue(a is A);
Expect.isTrue(a is A?);
Expect.isFalse(a is A1);
Expect.isFalse(a is A1?);
var b1 = B();
Expect.equals(typeOf<B<dynamic>>(), b1.runtimeType);
Expect.isTrue(b1 is B);
Expect.isTrue(b1 is B?);
Expect.isTrue(b1 is B<Object?>);
Expect.isFalse(b1 is B<A>);
var b2 = B<A>();
Expect.equals(typeOf<B<A>>(), b2.runtimeType);
Expect.isTrue(b2 is B<A>);
Expect.isTrue(b2 is B<A>?);
Expect.isTrue(b2 is B);
Expect.isTrue(b2 is B?);
Expect.isTrue(b2 is B<A?>);
Expect.isFalse(b2 is B<A1>);
}