typealias expansion fixes

- Exception on dynamic type in typealias argument expansion
 #KT-18858 Fixed Target versions 1.1.5
- Wrong report location for repeated annotations in typealias arguments
 #KT-18940 Fixed Target versions 1.1.5
- Don't drop type annotations for dynamic type
 #KT-18944 Fixed Target versions 1.1.5
This commit is contained in:
Dmitry Petrov
2017-07-10 13:07:55 +03:00
parent a0f11f773b
commit 83ec8aa918
11 changed files with 155 additions and 39 deletions
@@ -0,0 +1,16 @@
@Target(AnnotationTarget.TYPE)
annotation class Ann1
@Target(AnnotationTarget.TYPE)
annotation class Ann2
typealias AnnGenList<T> = List<@Ann1 T>
typealias TestAnnGen1 = AnnGenList<dynamic>
typealias TestAnnGen2 = AnnGenList<@Ann2 dynamic>
typealias TestAnnGen3 = AnnGenList<<!REPEATED_ANNOTATION!>@Ann1<!> dynamic>
fun useAnnGen1(x: TestAnnGen1) = x
fun useAnnGen2(x: TestAnnGen2) = x
fun testUseAnnGen1(x: List<dynamic>) = useAnnGen1(x)
fun testUseAnnGen2(x: List<dynamic>) = useAnnGen2(x)
@@ -0,0 +1,24 @@
package
public fun testUseAnnGen1(/*0*/ x: kotlin.collections.List<dynamic>): TestAnnGen1 /* = kotlin.collections.List<dynamic> */
public fun testUseAnnGen2(/*0*/ x: kotlin.collections.List<dynamic>): TestAnnGen2 /* = kotlin.collections.List<dynamic> */
public fun useAnnGen1(/*0*/ x: TestAnnGen1 /* = kotlin.collections.List<dynamic> */): TestAnnGen1 /* = kotlin.collections.List<dynamic> */
public fun useAnnGen2(/*0*/ x: TestAnnGen2 /* = kotlin.collections.List<dynamic> */): TestAnnGen2 /* = kotlin.collections.List<dynamic> */
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann1 : kotlin.Annotation {
public constructor Ann1()
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
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public final annotation class Ann2 : kotlin.Annotation {
public constructor Ann2()
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 AnnGenList</*0*/ T> = kotlin.collections.List<@Ann1 T>
public typealias TestAnnGen1 = AnnGenList<dynamic>
public typealias TestAnnGen2 = AnnGenList<dynamic>
public typealias TestAnnGen3 = AnnGenList<dynamic>
@@ -0,0 +1,13 @@
typealias Test1 = List<dynamic>
typealias Test2 = (dynamic) -> dynamic
typealias GenList<T> = List<T>
typealias TestGen1 = GenList<dynamic>
typealias TestGen2 = GenList<GenList<dynamic>>
fun useGen1(x: TestGen1) = x
fun useGen2(x: TestGen2) = x
fun testUseGen1(x: List<dynamic>) = useGen1(x)
fun testUseGen2(x: List<List<dynamic>>) = useGen2(x)
@@ -0,0 +1,11 @@
package
public fun testUseGen1(/*0*/ x: kotlin.collections.List<dynamic>): TestGen1 /* = kotlin.collections.List<dynamic> */
public fun testUseGen2(/*0*/ x: kotlin.collections.List<kotlin.collections.List<dynamic>>): TestGen2 /* = kotlin.collections.List<kotlin.collections.List<dynamic>> */
public fun useGen1(/*0*/ x: TestGen1 /* = kotlin.collections.List<dynamic> */): TestGen1 /* = kotlin.collections.List<dynamic> */
public fun useGen2(/*0*/ x: TestGen2 /* = kotlin.collections.List<kotlin.collections.List<dynamic>> */): TestGen2 /* = kotlin.collections.List<kotlin.collections.List<dynamic>> */
public typealias GenList</*0*/ T> = kotlin.collections.List<T>
public typealias Test1 = kotlin.collections.List<dynamic>
public typealias Test2 = (dynamic) -> dynamic
public typealias TestGen1 = GenList<dynamic>
public typealias TestGen2 = GenList<GenList<dynamic>>