blob: 5f9a9e129317810959b03ad1592b10a8e517ea5b [file] [log] [blame]
// Copyright (c) 2018, 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';
import 'package:meta/dart2js.dart';
/*class: A:checkedInstance,checks=[],instance*/
class A<T> {}
/*class: B:checks=[],indirectInstance*/
class B<T, S> {
@noInline
method() => new A<S>();
}
/*class: C:checks=[$asB],instance*/
class C<T> extends B<T, T> {}
@noInline
test(o) => o is A<int>;
main() {
Expect.isTrue(test(new C<int>().method()));
Expect.isFalse(test(new C<String>().method()));
}