Combine type annotations for arguments of type aliases.

This commit is contained in:
Dmitry Petrov
2016-11-21 13:59:10 +03:00
parent 063bce23d2
commit 67fe28b8d8
7 changed files with 55 additions and 13 deletions
@@ -1,7 +1,7 @@
package
public val ca1: CA<kotlin.Int> /* = C<kotlin.Int> */
public val ca2: CA<CA<kotlin.Int> /* = C<kotlin.Int> */> /* = C<CA<kotlin.Int> /* = C<kotlin.Int> */> */
public val ca2: CA<CA<kotlin.Int> /* = C<kotlin.Int> */> /* = C<C<kotlin.Int>> */
public val ca3: CA<C<kotlin.Int>> /* = C<C<kotlin.Int>> */
public val ca4: CA<kotlin.Int?> /* = C<kotlin.Int?> */
@@ -34,7 +34,7 @@ public final class Test4 : IT<*> /* = I<*> */ {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Test5 : IT<IT<*> /* = I<*> */> /* = I<IT<*> /* = I<*> */> */ {
public final class Test5 : IT<IT<*> /* = I<*> */> /* = I<I<*>> */ {
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
@@ -0,0 +1,11 @@
@Target(AnnotationTarget.TYPE)
annotation class Ann1
@Target(AnnotationTarget.TYPE)
annotation class Ann2
class C<T>
typealias CA<T> = C<@Ann1 T>
fun test(x: CA<@Ann2 Int>) = x
@@ -0,0 +1,25 @@
package
public fun test(/*0*/ x: CA<@Ann2 kotlin.Int> /* = C<@Ann1 @Ann2 kotlin.Int> */): CA<@Ann2 kotlin.Int> /* = C<@Ann1 @Ann2 kotlin.Int> */
@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 final class C</*0*/ T> {
public constructor C</*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 typealias CA</*0*/ T> = C<@Ann1 T>