Fix incremental compilation problems related to type alias constructors

1. Determine source element for descriptors with NO_SOURCE recursively.

2. Always provide type abbreviation for type alias constructor
return type.

 #KT-15495 Fixed
This commit is contained in:
Dmitry Petrov
2017-05-17 13:02:18 +03:00
parent 2500a182e5
commit a2db4dc0d5
21 changed files with 97 additions and 30 deletions
@@ -1,6 +1,6 @@
package
public val test2: Base
public val test2: Obsolete /* = Base */
public val test3: Base.Companion
public fun test1(/*0*/ x: Obsolete /* = Base */): Obsolete /* = Base */
public fun test1a(/*0*/ x: kotlin.collections.List<Obsolete /* = Base */>): kotlin.collections.List<Obsolete /* = Base */>
@@ -1,7 +1,7 @@
package
public val test1: [ERROR : Type for C1_Alias()]
public val test2: C2
public val test2: C2_Alias /* = C2 */
@kotlin.SinceKotlin(version = "1.1") public open class C1 {
public constructor C1()
@@ -1,6 +1,6 @@
package
public fun test1(/*0*/ x: Outer): Outer.Inner
public fun test1(/*0*/ x: Outer): OI /* = Outer.Inner */
public fun test2(/*0*/ x: Generic<kotlin.Int>): GI<kotlin.Int> /* = Generic<kotlin.Int>.Inner */
public fun </*0*/ T> test3(/*0*/ x: Generic<T>): GI<T> /* = Generic<T>.Inner */
public fun </*0*/ T> test4(/*0*/ x: Generic<kotlin.collections.List<T>>): GI<kotlin.collections.List<T>> /* = Generic<kotlin.collections.List<T>>.Inner */
@@ -1,19 +1,19 @@
package
public val test1: AbstractClass
public val test1: Test1 /* = AbstractClass */
public val test1a: AbstractClass
public val test2: AnnotationClass
public val test2: Test2 /* = AnnotationClass */
public val test2a: AnnotationClass
public val test3: EnumClass
public val test3: Test3 /* = EnumClass */
public val test3a: EnumClass
public val test4: SealedClass
public val test4: Test4 /* = SealedClass */
public val test4a: SealedClass
public val test5: [ERROR : Type for Test5()]
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: Outer.Inner
public val test5e: Test5 /* = Outer.Inner */
public abstract class AbstractClass {
public constructor AbstractClass()
@@ -4,7 +4,7 @@ public val test1: [ERROR : Type for MyAlias(1)]
public val test1a: [ERROR : Type for MyClass(1)]
public val test2: [ERROR : Type for MyAlias("")]
public val test2a: [ERROR : Type for MyClass("")]
public val test3: MyClass
public val test3: MyAlias /* = MyClass */
public val test3a: MyClass
public open class MyClass {
@@ -21,9 +21,9 @@ public final class MyDerived : MyClass {
public constructor MyDerived()
public final val test4: [ERROR : Type for MyAlias(1)]
public final val test4a: [ERROR : Type for MyClass(1)]
public final val test5: MyClass
public final val test5: MyAlias /* = MyClass */
public final val test5a: MyClass
public final val test6: MyClass
public final val test6: MyAlias /* = MyClass */
public final val test6a: MyClass
public final override /*1*/ /*fake_override*/ val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -2,9 +2,9 @@ package
public val test1: ObjectWithInvoke
public val test2: ObjectWithInvoke
public val test3: ClassWithCompanionObjectWithInvoke
public val test3: CWI /* = ClassWithCompanionObjectWithInvoke */
public val test4: kotlin.Any
public val test5: ClassWithCompanionObjectWithInvoke
public val test5: CWI /* = ClassWithCompanionObjectWithInvoke */
public val test5a: ClassWithCompanionObjectWithInvoke
public final class ClassWithCompanionObjectWithInvoke {