Support package directive for types

This commit is contained in:
Stanislav Erokhin
2015-09-15 18:53:03 +03:00
parent ea991de21a
commit 1614de86d2
4 changed files with 246 additions and 3 deletions
@@ -0,0 +1,94 @@
// MODULE: m1
// FILE: a.kt
package a.b
class c {
fun ab_c() {}
}
fun ab_fun() {}
// MODULE: m2
// FILE: b.kt
package a
fun a_fun() {}
class b {
fun a_b() {}
class c {
fun a_bc() {}
}
}
// FILE: b2.kt
class x {
fun top_x() {}
}
// MODULE: m3(m1, m2)
// FILE: c.kt
package some
class a {
class b {
fun _ab() {}
class c {
fun _abc() {}
}
}
fun _a() {}
}
class x {
fun _x() {}
}
fun test(a_b: package.a.b) {
a_b.a_b()
a_b.<!UNRESOLVED_REFERENCE!>_ab<!>()
package.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a_fun<!>() // todo
val a_b2 = package.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>b<!>()
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a_b2<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a_b<!>() // todo
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a_b2<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>_ab<!>()
}
fun test2(ab_c: package.a.b.c) {
ab_c.ab_c()
val ab_c2 = package.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>b<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>c<!>()
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>ab_c2<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>ab_c<!>()
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>ab_c2<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a_bc<!>()
}
fun test3(top_x: package.x) {
top_x.top_x()
val top_x2 = package.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!>()
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>top_x2<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>top_x<!>() // todo
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>top_x2<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>_x<!>()
}
// FILE: c2.kt
package other
object a {
object b {
fun _ab() {}
}
fun _a() {}
}
fun test(<!UNUSED_PARAMETER!>a<!>: a) {
package.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a_fun<!>() // todo
package.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>_a<!>() // todo
package.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>b<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>ab_fun<!>() // todo
package.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>b<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>_ab<!>() // todo
}
@@ -0,0 +1,133 @@
// -- Module: <m1> --
package
package a {
package a.b {
public fun ab_fun(): kotlin.Unit
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
public final class x {
public constructor x()
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 fun top_x(): kotlin.Unit
}
package a {
public fun a_fun(): kotlin.Unit
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
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 final class x {
// -- Module: <m2> --
}
package a {
public fun a_fun(): kotlin.Unit
public final class b {
// -- Module: <m2> --
}
package a.b {
public fun ab_fun(): kotlin.Unit
public final class c {
// -- Module: <m1> --
}
}
}
package other {
public fun test(/*0*/ a: other.a): kotlin.Unit
public object a {
private constructor a()
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 object b {
private 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
}
}
}
package some {
public fun test(/*0*/ a_b: a.b): kotlin.Unit
public fun test2(/*0*/ ab_c: a.b.c): kotlin.Unit
public fun test3(/*0*/ top_x: x): kotlin.Unit
public final class a {
public constructor a()
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
public final class c {
public constructor c()
public final fun _abc(): 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 x {
public constructor x()
public final fun _x(): 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
}
}