blob: 0393e476ae6482e9d6a36a350b650551fb0b267a [file] [log] [blame]
/*
* Copyright (c) 2011, 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 An interface has a set of direct superinterfaces.
* An interface J is a superinterface of an interface I iff either J is a
* direct superinterface of I or J is a superinterface of a direct
* superinterface of I.
* @description Checks that an interface can declare generic and non-generic
* direct superinterfaces or not declare any.
* @author vasya
*/
abstract class J {}
abstract class I implements J {}
abstract class J1 {}
abstract class J2 implements J1 {}
abstract class J3 implements J2 {}
abstract class I1 implements J1, J2, J3 {}
abstract class I2 implements J3, J2, J1 {}
abstract class K<S> {}
abstract class L<S> implements K<S> {}
abstract class A<S, T> {}
abstract class B<S, T> implements A<T, S> {}
abstract class C<Q, R, S> implements A<Q, S> {}
abstract class D<Q> implements A<int, Q>, J, I {}
main() {
I? i = null;
I1? i1 = null;
I2? i2 = null;
B<String, int>? b = null;
C<List, String, num>? c = null;
D<String>? d = null;
}