Transform anonymous types even for public symbols

This became necessary when we removed the requirement to specify types for
public members, because otherwise everything fails not being able to locate the
anonymous class from another module

 #KT-9072 Fixed
 EA-72801
This commit is contained in:
Alexander Udalov
2015-09-11 16:43:31 +03:00
parent 6cecc66d10
commit 085fc3bf87
30 changed files with 85 additions and 65 deletions
@@ -16,13 +16,13 @@ class Foo {
privateProperty.f2()
}
protected val protectedProperty = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>protected val protectedProperty<!> = object : MyClass(), MyTrait {}
val internalProperty = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>val internalProperty<!> = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>internal val internal2Property<!> = object : MyClass(), MyTrait {}
public val publicProperty = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>public val publicProperty<!> = object : MyClass(), MyTrait {}
private fun privateFunction() = object : MyClass(), MyTrait {}
@@ -32,13 +32,13 @@ class Foo {
privateFunction().f2()
}
protected fun protectedFunction() = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>protected fun protectedFunction()<!> = object : MyClass(), MyTrait {}
fun internalFunction() = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>fun internalFunction()<!> = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>internal fun internal2Function()<!> = object : MyClass(), MyTrait {}
public fun publicFunction() = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>public fun publicFunction()<!> = object : MyClass(), MyTrait {}
@@ -50,13 +50,13 @@ class Foo {
privatePropertyInner.f2()
}
protected val protectedProperty = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>protected val protectedProperty<!> = object : MyClass(), MyTrait {}
val internalProperty = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>val internalProperty<!> = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>internal val internal2Property<!> = object : MyClass(), MyTrait {}
public val publicProperty = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>public val publicProperty<!> = object : MyClass(), MyTrait {}
private fun privateFunctionInner() = object : MyClass(), MyTrait {}
@@ -66,13 +66,13 @@ class Foo {
privateFunctionInner().f2()
}
protected fun protectedFunction() = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>protected fun protectedFunction()<!> = object : MyClass(), MyTrait {}
fun internalFunction() = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>fun internalFunction()<!> = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>internal fun internal2Function()<!> = object : MyClass(), MyTrait {}
public fun publicFunction() = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>public fun publicFunction()<!> = object : MyClass(), MyTrait {}
}
@@ -90,21 +90,21 @@ class Foo {
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>private val packagePrivateProperty<!> = object : MyClass(), MyTrait {}
<!WRONG_MODIFIER_TARGET!>protected<!> val packageProtectedProperty = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!><!WRONG_MODIFIER_TARGET!>protected<!> val packageProtectedProperty<!> = object : MyClass(), MyTrait {}
val packageInternalProperty = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>val packageInternalProperty<!> = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>internal val packageInternal2Property<!> = object : MyClass(), MyTrait {}
public val packagePublicProperty = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>public val packagePublicProperty<!> = object : MyClass(), MyTrait {}
<!WRONG_MODIFIER_TARGET!>protected<!> fun packageProtectedFunction() = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!><!WRONG_MODIFIER_TARGET!>protected<!> fun packageProtectedFunction()<!> = object : MyClass(), MyTrait {}
fun packageInternalFunction() = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>fun packageInternalFunction()<!> = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>internal fun packageInternal2Function()<!> = object : MyClass(), MyTrait {}
public fun packagePublicFunction() = object : MyClass(), MyTrait {}
<!AMBIGUOUS_ANONYMOUS_TYPE_INFERRED!>public fun packagePublicFunction()<!> = object : MyClass(), MyTrait {}
fun fooPackage() {
val packageLocalVar = object : MyClass(), MyTrait {}
@@ -2,15 +2,15 @@ package
internal val packageInternalProperty: MyClass
private val packagePrivateProperty: MyClass
protected val packageProtectedProperty: packageProtectedProperty.<no name provided>
protected val packageProtectedProperty: MyClass
public val packagePublic2Property: MyClass
public val packagePublicProperty: packagePublicProperty.<no name provided>
public val packagePublicProperty: MyClass
public fun fooPackage(): kotlin.Unit
internal fun internalFunction(): MyClass
private fun privateFunction(): MyClass
protected fun protectedFunction(): protectedFunction.<no name provided>
protected fun protectedFunction(): MyClass
public fun public2Function(): MyClass
public fun publicFunction(): publicFunction.<no name provided>
public fun publicFunction(): MyClass
public fun testFunctions(): kotlin.Unit
public fun testProperties(): kotlin.Unit
@@ -19,18 +19,18 @@ public final class Foo {
internal final val internalProperty: MyClass
private final val privateProperty: Foo.privateProperty.<no name provided>
protected final val protected2Property: MyClass
protected final val protectedProperty: Foo.protectedProperty.<no name provided>
protected final val protectedProperty: MyClass
public final val public2Property: MyClass
public final val publicProperty: Foo.publicProperty.<no name provided>
public final val publicProperty: MyClass
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
internal final fun internalFunction(): MyClass
private final fun privateFunction(): Foo.privateFunction.<no name provided>
protected final fun protected2Function(): MyClass
protected final fun protectedFunction(): Foo.protectedFunction.<no name provided>
protected final fun protectedFunction(): MyClass
public final fun public2Function(): MyClass
public final fun publicFunction(): Foo.publicFunction.<no name provided>
public final fun publicFunction(): MyClass
public final fun testFunctions(): kotlin.Unit
public final fun testProperties(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -40,17 +40,17 @@ public final class Foo {
internal final val internalProperty: MyClass
private final val privateProperty: Foo.FooInner.privateProperty.<no name provided>
protected final val protected2Property: MyClass
protected final val protectedProperty: Foo.FooInner.protectedProperty.<no name provided>
protected final val protectedProperty: MyClass
public final val public2Property: MyClass
public final val publicProperty: Foo.FooInner.publicProperty.<no name provided>
public final val publicProperty: MyClass
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
internal final fun internalFunction(): MyClass
private final fun privateFunction(): Foo.FooInner.privateFunction.<no name provided>
protected final fun protected2Function(): MyClass
protected final fun protectedFunction(): Foo.FooInner.protectedFunction.<no name provided>
protected final fun protectedFunction(): MyClass
public final fun public2Function(): MyClass
public final fun publicFunction(): Foo.FooInner.publicFunction.<no name provided>
public final fun publicFunction(): MyClass
public final fun testFunctions(): kotlin.Unit
public final fun testProperties(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String