Properly resolve values in 1st qualifier part (see implicitReceiverProperty test).

Look into QUALIFIER for left-most "unrolled" qualified expression
    in CallExpressionResolver#getQualifiedExpressionTypeInfo.
Drop some unused functions.
This commit is contained in:
Dmitry Petrov
2015-11-10 14:37:51 +03:00
parent 49570ba1ea
commit b532fa2bbf
13 changed files with 228 additions and 113 deletions
@@ -0,0 +1,8 @@
class A {
@Deprecated("deprecated") companion object
class B
}
val x1 = A.B()
@@ -0,0 +1,24 @@
package
public val x1: 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 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
}
@kotlin.Deprecated(message = "deprecated") 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,33 @@
// FILE: a.kt
package a
class A(val b: String) {
companion object {
val c: String = ""
}
fun mtd() = c.length
}
// FILE: b.kt
package b
// FILE: c.kt
package c
// FILE: test.kt
package test
import a.A
fun <T, R> T.with(f: T.() -> R) = f()
fun A.extFun1() = b.length
// fun A.extFun2() = c.length // TODO fix KT-9953
val x1 = A("").with { b.length }
// val x2 = A("").with { c.length } // TODO fix KT-9953
val x3 = A.with { c.length }
@@ -0,0 +1,34 @@
package
package a {
public final class A {
public constructor A(/*0*/ b: kotlin.String)
public final val b: kotlin.String
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 final fun mtd(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public companion object Companion {
private constructor Companion()
public final val c: kotlin.String = ""
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 {
}
package c {
}
package test {
public val x1: kotlin.Int
public val x3: kotlin.Int
public fun a.A.extFun1(): kotlin.Int
public fun </*0*/ T, /*1*/ R> T.with(/*0*/ f: T.() -> R): R
}