Package vs class conflict in qualifier resolution:

- add test for unresolved 'a.a' after 'import a.a';
- added TODO in copy-paste test for 'a.a'
This commit is contained in:
Dmitry Petrov
2015-10-30 14:57:48 +03:00
parent e1cb13bd90
commit d060687775
4 changed files with 68 additions and 5 deletions
@@ -1,7 +1,12 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// MODULE: m1
// FILE: a.kt
package a
class a {
companion object {}
}
class b {
fun a_b() {}
}
@@ -12,4 +17,17 @@ package test
class a
val x = a.<!UNRESOLVED_REFERENCE!>b<!>()
val x = a.<!UNRESOLVED_REFERENCE!>b<!>()
// MODULE: m3(m1)
// FILE: c.kt
package test
import a.a
fun foo(i: a) {
a
a()
a.<!UNRESOLVED_REFERENCE!>a<!>
a.<!UNRESOLVED_REFERENCE!>a<!>()
}
@@ -3,6 +3,20 @@ package
package a {
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 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
}
}
public final class b {
public constructor b()
public final fun a_b(): kotlin.Unit
@@ -18,6 +32,10 @@ package
package a {
public final class a {
// -- Module: <m1> --
}
public final class b {
// -- Module: <m1> --
}
@@ -35,3 +53,22 @@ package test {
}
// -- Module: <m3> --
package
package a {
public final class a {
// -- Module: <m1> --
}
public final class b {
// -- Module: <m1> --
}
}
package test {
public fun foo(/*0*/ i: a.a): kotlin.Unit
}
@@ -1,9 +1,14 @@
// ERROR: Unresolved reference: a
// ERROR: Unresolved reference: a
// ERROR: Unresolved reference: a
package to
import a.a
fun f(i: a.a) { // todo must be i: a
a
a()
fun f(i: a.a) {
// TODO References shortening doesn't work for package vs class conflicts under the new resolution rules.
// After importing 'a.a', expression 'a.a' is unresolved (since 'a' becomes a class).
// 'package' in expression syntax might be required to fix it properly.
a.a
a.a()
}
+4 -1
View File
@@ -5,7 +5,10 @@ class a {
}
}
<selection>fun f(i: a) { // todo must be i: a
<selection>fun f(i: a) {
// TODO References shortening doesn't work for package vs class conflicts under the new resolution rules.
// After importing 'a.a', expression 'a.a' is unresolved (since 'a' becomes a class).
// 'package' in expression syntax might be required to fix it properly.
a
a()
}</selection>