Refine double colon LHS resolution if expression is an object

This commit is contained in:
Alexander Udalov
2016-07-01 16:05:40 +03:00
parent 5a6237b357
commit 7b59864ed9
6 changed files with 131 additions and 4 deletions
@@ -0,0 +1,18 @@
// FILE: 1.kt
package a
import b.B.*
import kotlin.reflect.KClass
class Companion
val f: KClass<a.Companion> = Companion::class
// FILE: 2.kt
package b
class B {
companion object Companion
}
@@ -0,0 +1,29 @@
package
package a {
public val f: kotlin.reflect.KClass<a.Companion>
public final class Companion {
public constructor Companion()
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
}
}
package b {
public final class B {
public constructor B()
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 companion object Companion {
private constructor Companion()
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
}
}
}
@@ -0,0 +1,19 @@
// FILE: 1.kt
package a
import b.*
import kotlin.reflect.KClass
class A
object B
val f: KClass<a.A> = A::class
val g: KClass<a.B> = B::class
// FILE: 2.kt
package b
object A
object B
@@ -0,0 +1,37 @@
package
package a {
public val f: kotlin.reflect.KClass<a.A>
public val g: kotlin.reflect.KClass<a.B>
public final class A {
public constructor A()
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 object B {
private constructor B()
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
}
}
package b {
public object A {
private constructor A()
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 object B {
private constructor B()
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
}
}