FIR: prioritize visible imported classes during type resolution

and produce an error on ambiguity.
This commit is contained in:
pyos
2021-02-10 16:45:35 +01:00
committed by Mikhail Glukhikh
parent 291ed4a38a
commit 2dc0404751
25 changed files with 160 additions and 198 deletions
@@ -1,17 +0,0 @@
// FILE: a.kt
package a
class X
// FILE: b.kt
package b
class X
// FILE: c.kt
package c
import a.*
import b.*
class Y : X
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: a.kt
package a
@@ -14,4 +14,4 @@ package c
import a.X
import b.X
class Y : X
class Y : <!UNRESOLVED_REFERENCE!>X<!>
@@ -1,12 +0,0 @@
// FILE: File.kt
package pack
public open class InetAddressImpl
// FILE: Main.kt
package a
import java.net.* // should not import java.net.InetAddressImpl because it's package local
import pack.*
class X : <!UNRESOLVED_REFERENCE!>InetAddressImpl<!>() // should resolve to our pack.InetAddressImpl
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: File.kt
package pack
@@ -17,8 +17,8 @@ class D {
import a.A.B
import a.D.B
fun test(b: B) {
B()
fun test(b: <!UNRESOLVED_REFERENCE!>B<!>) {
<!UNRESOLVED_REFERENCE!>B<!>()
}
// FILE: d.kt
@@ -26,6 +26,6 @@ import a.A.*
import a.D.*
// todo ambiguvity here
fun test2(b: B) {
B()
fun test2(b: <!UNRESOLVED_REFERENCE!>B<!>) {
<!UNRESOLVED_REFERENCE!>B<!>()
}
@@ -1,17 +0,0 @@
// FILE: File1.kt
package pack1
private class SomeClass
// FILE: File2.kt
package pack2
public open class SomeClass
// FILE: Main.kt
package a
import pack1.*
import pack2.*
class X : <!EXPOSED_SUPER_CLASS, HIDDEN!>SomeClass<!>()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: File1.kt
package pack1
@@ -1,21 +0,0 @@
// FILE: File1.kt
package pack1
public class SomeClass {
private class N
public open class PublicNested
}
// FILE: File2.kt
package pack2
public open class N
// FILE: Main.kt
package a
import pack1.SomeClass.*
import pack2.*
class X : <!EXPOSED_SUPER_CLASS, HIDDEN!>N<!>()
class Y : PublicNested()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: File1.kt
package pack1