Type alias constructors for inner classes in expressions ans supertype lists.
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
class Outer {
|
||||
inner class Inner
|
||||
}
|
||||
|
||||
typealias OI = Outer.Inner
|
||||
|
||||
fun test1(x: Outer) = x.OI()
|
||||
|
||||
|
||||
class Generic<T> {
|
||||
inner class Inner
|
||||
}
|
||||
|
||||
typealias GI<T> = Generic<T>.Inner
|
||||
typealias GIntI = Generic<Int>.Inner
|
||||
|
||||
fun test2(x: Generic<Int>) = x.GI()
|
||||
fun <T> test3(x: Generic<T>) = x.GI()
|
||||
fun <T> test4(x: Generic<List<T>>) = x.GI()
|
||||
fun <T> test5(x: Generic<T>) = <!TYPE_MISMATCH!>x<!>.GIntI()
|
||||
fun Generic<Int>.test6() = GIntI()
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package
|
||||
|
||||
public fun test1(/*0*/ x: Outer): Outer.Inner
|
||||
public fun test2(/*0*/ x: Generic<kotlin.Int>): Generic<kotlin.Int>.Inner
|
||||
public fun </*0*/ T> test3(/*0*/ x: Generic<T>): Generic<T>.Inner
|
||||
public fun </*0*/ T> test4(/*0*/ x: Generic<kotlin.collections.List<T>>): Generic<kotlin.collections.List<T>>.Inner
|
||||
public fun </*0*/ T> test5(/*0*/ x: Generic<T>): Generic<kotlin.Int>.Inner
|
||||
public fun Generic<kotlin.Int>.test6(): Generic<kotlin.Int>.Inner
|
||||
|
||||
public final class Generic</*0*/ T> {
|
||||
public constructor Generic</*0*/ T>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final inner class Inner /*captured type parameters: /*0*/ T*/ {
|
||||
public constructor Inner()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public final class Outer {
|
||||
public constructor Outer()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final inner class Inner {
|
||||
public constructor Inner()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
public typealias GI</*0*/ T> = Generic<T>.Inner
|
||||
public typealias GIntI = Generic<kotlin.Int>.Inner
|
||||
public typealias OI = Outer.Inner
|
||||
Vendored
+39
@@ -0,0 +1,39 @@
|
||||
package test
|
||||
|
||||
typealias OI = Outer.Inner
|
||||
|
||||
class Outer {
|
||||
open inner class Inner
|
||||
|
||||
inner class Test : OI()
|
||||
}
|
||||
|
||||
|
||||
typealias GI<T> = Generic<T>.Inner
|
||||
typealias GIInt = Generic<Int>.Inner
|
||||
typealias GIStar = Generic<*>.Inner
|
||||
typealias GG<T1, T2> = Generic<T1>.Generic<T2>
|
||||
typealias GIntG<T2> = Generic<Int>.Generic<T2>
|
||||
typealias GGInt<T1> = Generic<T1>.Generic<Int>
|
||||
|
||||
class Generic<T1> {
|
||||
open inner class Inner
|
||||
open inner class Generic<T2>
|
||||
|
||||
inner class Test1 : GI<T1>()
|
||||
inner class Test2 : <!UNRESOLVED_REFERENCE, DEBUG_INFO_UNRESOLVED_WITH_TARGET!>GIInt<!>()
|
||||
inner class Test3 : GIStar()
|
||||
inner class Test3a : test.Generic<*>.Inner()
|
||||
|
||||
inner class Test4<T2> : GG<T1, T2>()
|
||||
inner class Test5 : GG<T1, Int>()
|
||||
inner class Test6 : <!UNRESOLVED_REFERENCE, DEBUG_INFO_UNRESOLVED_WITH_TARGET!>GG<!><Int, T1>()
|
||||
inner class Test7 : <!UNRESOLVED_REFERENCE, DEBUG_INFO_UNRESOLVED_WITH_TARGET!>GG<!><Int, Int>()
|
||||
inner class Test8 : <!UNRESOLVED_REFERENCE, DEBUG_INFO_UNRESOLVED_WITH_TARGET!>GIntG<!><Int>()
|
||||
inner class Test9 : <!UNRESOLVED_REFERENCE, DEBUG_INFO_UNRESOLVED_WITH_TARGET!>GGInt<!><Int>()
|
||||
inner class Test10 : GGInt<T1>()
|
||||
|
||||
inner class Test11 : GG<T1, Int> {
|
||||
constructor() : super()
|
||||
}
|
||||
}
|
||||
Vendored
+137
@@ -0,0 +1,137 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
|
||||
public final class Generic</*0*/ T1> {
|
||||
public constructor Generic</*0*/ T1>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public open inner class Generic</*0*/ T2> /*captured type parameters: /*1*/ T1*/ {
|
||||
public constructor Generic</*0*/ T2>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open inner class Inner /*captured type parameters: /*0*/ T1*/ {
|
||||
public constructor Inner()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test1 /*captured type parameters: /*0*/ T1*/ : test.GI<T1> /* = test.Generic<T1>.Inner */ {
|
||||
public constructor Test1()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test10 /*captured type parameters: /*0*/ T1*/ : test.GGInt<T1> /* = test.Generic<T1>.Generic<kotlin.Int> */ {
|
||||
public constructor Test10()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test11 /*captured type parameters: /*0*/ T1*/ : test.GG<T1, kotlin.Int> /* = test.Generic<T1>.Generic<kotlin.Int> */ {
|
||||
public constructor Test11()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test2 /*captured type parameters: /*0*/ T1*/ : test.GIInt /* = test.Generic<kotlin.Int>.Inner */ {
|
||||
public constructor Test2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test3 /*captured type parameters: /*0*/ T1*/ : test.GIStar /* = test.Generic<*>.Inner */ {
|
||||
public constructor Test3()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test3a /*captured type parameters: /*0*/ T1*/ : test.Generic<*>.Inner {
|
||||
public constructor Test3a()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test4</*0*/ T2> /*captured type parameters: /*1*/ T1*/ : test.GG<T1, T2> /* = test.Generic<T1>.Generic<T2> */ {
|
||||
public constructor Test4</*0*/ T2>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test5 /*captured type parameters: /*0*/ T1*/ : test.GG<T1, kotlin.Int> /* = test.Generic<T1>.Generic<kotlin.Int> */ {
|
||||
public constructor Test5()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test6 /*captured type parameters: /*0*/ T1*/ : test.GG<kotlin.Int, T1> /* = test.Generic<kotlin.Int>.Generic<T1> */ {
|
||||
public constructor Test6()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test7 /*captured type parameters: /*0*/ T1*/ : test.GG<kotlin.Int, kotlin.Int> /* = test.Generic<kotlin.Int>.Generic<kotlin.Int> */ {
|
||||
public constructor Test7()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test8 /*captured type parameters: /*0*/ T1*/ : test.GIntG<kotlin.Int> /* = test.Generic<kotlin.Int>.Generic<kotlin.Int> */ {
|
||||
public constructor Test8()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test9 /*captured type parameters: /*0*/ T1*/ : test.GGInt<kotlin.Int> /* = test.Generic<kotlin.Int>.Generic<kotlin.Int> */ {
|
||||
public constructor Test9()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public final class Outer {
|
||||
public constructor Outer()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public open inner class Inner {
|
||||
public constructor Inner()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final inner class Test : test.OI /* = test.Outer.Inner */ {
|
||||
public constructor Test()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
public typealias GG</*0*/ T1, /*1*/ T2> = test.Generic<T1>.Generic<T2>
|
||||
public typealias GGInt</*0*/ T1> = test.Generic<T1>.Generic<kotlin.Int>
|
||||
public typealias GI</*0*/ T> = test.Generic<T>.Inner
|
||||
public typealias GIInt = test.Generic<kotlin.Int>.Inner
|
||||
public typealias GIStar = test.Generic<*>.Inner
|
||||
public typealias GIntG</*0*/ T2> = test.Generic<kotlin.Int>.Generic<T2>
|
||||
public typealias OI = test.Outer.Inner
|
||||
}
|
||||
+2
-2
@@ -29,6 +29,6 @@ typealias Test5 = Outer.Inner
|
||||
val test5 = <!UNRESOLVED_REFERENCE!>Test5<!>()
|
||||
val test5a = Outer.<!UNRESOLVED_REFERENCE!>Inner<!>()
|
||||
val test5b = Outer.<!UNRESOLVED_REFERENCE!>TestInner<!>()
|
||||
val test5c = Outer().<!UNRESOLVED_REFERENCE!>TestInner<!>() // TODO extension type alias constructors?
|
||||
val test5c = Outer().<!UNRESOLVED_REFERENCE!>TestInner<!>()
|
||||
val test5d = Outer().Inner()
|
||||
val test5e = Outer().<!UNRESOLVED_REFERENCE!>Test5<!>() // TODO extension type alias constructors?
|
||||
val test5e = Outer().Test5()
|
||||
+1
-1
@@ -13,7 +13,7 @@ public val test5a: [ERROR : Type for Outer.Inner()]
|
||||
public val test5b: [ERROR : Type for Outer.TestInner()]
|
||||
public val test5c: [ERROR : Type for Outer().TestInner()]
|
||||
public val test5d: Outer.Inner
|
||||
public val test5e: [ERROR : Type for Outer().Test5()]
|
||||
public val test5e: Outer.Inner
|
||||
|
||||
public abstract class AbstractClass {
|
||||
public constructor AbstractClass()
|
||||
|
||||
Reference in New Issue
Block a user