Use NewQualifiedExpressionResolver for resolve types

This commit is contained in:
Stanislav Erokhin
2015-09-13 02:01:03 +03:00
parent 8efbf4fc32
commit 69cb3f818d
18 changed files with 701 additions and 351 deletions
@@ -30,6 +30,12 @@ fun test(b: B) {
val b_2: B = a.B()
b_2.m1()
val b_3: B = B()
b_3.m1()
val b_4: B = a.B()
b_4.m1()
}
@@ -56,6 +62,9 @@ fun test(b: B) {
val b_: B = B()
b_.m1()
val b_2 = B()
b_2.m1()
}
// FILE: top_d.kt
@@ -66,4 +75,7 @@ fun test2(b: B) {
val b_: B = B()
b_.m1()
val b_2 = B()
b_2.m1()
}
@@ -31,6 +31,12 @@ fun test(b: B) {
val b_2: B = a.B()
b_2.m2()
val b_3 = B()
b_3.m2()
val b_4 = a.B()
b_4.m2()
}
@@ -60,4 +66,10 @@ fun test(b: B) {
val b_2 = B()
b_2.m2()
val b_3 = B()
b_3.m2()
val b_4 = <!UNRESOLVED_REFERENCE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>B<!>()
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>b_4<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>m2<!>()
}
@@ -1,67 +0,0 @@
// MODULE: m1
// FILE: a.kt
package a.b
class c {
fun ab_c() {}
}
// MODULE: m2
// FILE: b.kt
package a
class b<T> {
class c {
fun a_bc() {}
}
}
// MODULE: m3(m1, m2)
// FILE: c.kt
import a.b.c
fun test(ab_c: c) {
ab_c.ab_c()
val ab_c2: a.b.c = a.b.c()
ab_c2.ab_c()
}
fun test2(a_bc: a.b<Int>.c) {
a_bc.<!UNRESOLVED_REFERENCE!>a_bc<!>() // todo
}
//---------------------------TOP LEVEL----------
// MODULE: top_m1
// FILE: top_a.kt
package a
class b {
fun a_b() {}
}
// MODULE: top_m2
// FILE: top_b.kt
class a<T> {
class b {
fun _ab() {}
}
fun _a() {}
}
// MODULE: top_m3(top_m1, top_m2)
// FILE: top_c.kt
import a.b
fun test(a_b: b) {
a_b.a_b()
val a_b2: a.b = a.b()
a_b2.a_b()
}
fun test2(_ab: a<Int>.b) {
_ab.<!UNRESOLVED_REFERENCE!>_ab<!>() // todo
}
@@ -1,112 +0,0 @@
// -- Module: <m1> --
package
package a {
package a.b {
public final class c {
public constructor c()
public final fun ab_c(): kotlin.Unit
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
}
}
}
// -- Module: <m2> --
package
package a {
public final class b</*0*/ T> {
public constructor b</*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 final class c {
public constructor c()
public final fun a_bc(): kotlin.Unit
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
}
}
}
// -- Module: <m3> --
package
public fun test(/*0*/ ab_c: a.b.c): kotlin.Unit
public fun test2(/*0*/ a_bc: a.b.c): kotlin.Unit
package a {
public final class b</*0*/ T> {
// -- Module: <m2> --
}
package a.b {
public final class c {
// -- Module: <m1> --
}
}
}
// -- Module: <top_m1> --
package
package a {
public final class b {
public constructor b()
public final fun a_b(): kotlin.Unit
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
}
}
// -- Module: <top_m2> --
package
public final class a</*0*/ T> {
public constructor a</*0*/ T>()
public final fun _a(): kotlin.Unit
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 final fun _ab(): kotlin.Unit
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
}
}
// -- Module: <top_m3> --
package
public fun test(/*0*/ a_b: a.b): kotlin.Unit
public fun test2(/*0*/ _ab: a.b): kotlin.Unit
public final class a</*0*/ T> {
// -- Module: <top_m2> --
}
package a {
public final class b {
// -- Module: <top_m1> --
}
}
@@ -40,6 +40,9 @@ fun test(a_b: b) {
val a_bc: b.c = b.c()
a_bc.a_bc()
val a_bc2 = b.c()
a_bc2.a_bc()
a_fun()
}
@@ -49,6 +52,9 @@ fun test2(ab_c: c) {
val ab_cd: c.d = c.d()
ab_cd.ab_cd()
val ab_cd2 = c.d()
ab_cd2.ab_cd()
ab_fun()
}
@@ -64,6 +70,9 @@ fun test(a_b: b) {
val a_bc: b.c = b.c()
a_bc.a_bc()
val a_bc2 = b.c()
a_bc2.a_bc()
a_fun()
}
@@ -73,6 +82,9 @@ fun test2(ab_c: c) {
val ab_cd: c.d = c.d()
ab_cd.ab_cd()
val ab_cd2 = c.d()
ab_cd2.ab_cd()
ab_fun()
}
@@ -91,6 +103,9 @@ fun test(a_b: b) {
val a_bc: b.c = b.c()
a_bc.a_bc()
val a_bc2 = b.c()
a_bc2.a_bc()
a_fun()
}
@@ -100,6 +115,9 @@ fun test2(ab_c: c) {
val ab_cd: c.d = c.d()
ab_cd.ab_cd()
val ab_cd2 = c.d()
ab_cd2.ab_cd()
ab_fun()
}
@@ -115,6 +133,9 @@ fun test(a_b: b) {
val a_bc: b.c = b.c()
a_bc.a_bc()
val a_bc2 = b.c()
a_bc2.a_bc()
a_fun()
}
@@ -124,5 +145,8 @@ fun test2(ab_c: c) {
val ab_cd: c.d = c.d()
ab_cd.ab_cd()
val ab_cd2 = c.d()
ab_cd2.ab_cd()
ab_fun()
}
@@ -43,7 +43,10 @@ fun test2(_a: a) {
_a._a()
val _ab: a.b = a.b()
_ab.<!UNRESOLVED_REFERENCE!>_ab<!>() // todo
_ab._ab()
val _ab2 = a.b()
_ab2.<!UNRESOLVED_REFERENCE!>_ab<!>() // todo
_fun()
}
@@ -56,7 +59,10 @@ fun test3(_a: a) {
_a._a()
val _ab: a.b = a.b()
_ab.<!UNRESOLVED_REFERENCE!>_ab<!>() // todo
_ab._ab()
val _ab2 = a.b()
_ab2.<!UNRESOLVED_REFERENCE!>_ab<!>() // todo
_fun()
}