blob: aca9c5de82b64fda9c31861c0c8ef702da7c1e06 [file] [log] [blame]
package testData
class Pair<out A, out B> (val first: A, val second: B}
open class Base_T<T>()
open class Derived_T<T>() : Base_T<T>
open class DDerived_T<T>() : Derived_T<T>
open class DDerived1_T<T>() : Derived_T<T>
open class DDerived2_T<T>() : Derived_T<T>, Base_T<T>
open class Base_inT<in T>()
open class Derived_inT<in T>() : Base_inT<T>
open class Derived1_inT<in T>() : Base_inT<T>, Derived_T<T>
open class Base_outT<out T>()
open class Derived_outT<out T>() : Base_outT<T>
open class MDerived_T<T>() : Base_outT<out T>, Base_T<T>
class Properties() { val p : Int }
class Props<T>() { val p : T }
class Functions<T>() {
fun f() : Unit {}
fun f(a : Int) : Int {}
fun f(a : T) : Any {}
fun f(a : Pair<Int, Int>) : T {}
fun <E> f(a : E) : T {}
}
class WithPredicate() {
fun isValid() : Boolean
fun isValid(x : Int) : Boolean
val p : Boolean
}
open class InvList<E>()
open class AbstractList<E> : InvList<E?>
open class ArrayList<E>() : Any, AbstractList<E?>, InvList<E?>
fun f() : Unit {}
fun f(a : Int) : Int {a}
fun f(a : Float, b : Int) : Float {a}
fun <T> f(a : Float) : T {a}
interface Parent
interface A: Parent
interface B: Parent
interface Rec<T>
class ARec : Rec<ARec>
class BRec : Rec<BRec>
interface SubRec<T>: Rec<T>
interface Star<T : Star<T>>
interface SubStar<T : SubStar<T>> : Star<T>
interface I
class AI : I
class BI : I
class CI : I