[FIR] Report INVISIBLE_REFERENCE in imports

#KT-55405 Fixed
This commit is contained in:
Kirill Rakhman
2023-03-29 18:15:11 +02:00
committed by Space Team
parent 7dde3603b5
commit 38f0ac332d
22 changed files with 220 additions and 213 deletions
@@ -7,7 +7,7 @@ private class B
// FILE: b.kt
package outer.p1
import outer.a
import outer.<!INVISIBLE_REFERENCE!>a<!>
fun use() {
<!INVISIBLE_REFERENCE!>a<!>()
@@ -17,7 +17,7 @@ fun use() {
// FILE: c.kt
package outer.p1.p2
import outer.a
import outer.<!INVISIBLE_REFERENCE!>a<!>
fun use() {
<!INVISIBLE_REFERENCE!>a<!>()
@@ -29,9 +29,9 @@ private class D {
package b
import a.A
import a.B
import a.<!INVISIBLE_REFERENCE!>B<!>
import a.C
import a.D
import a.<!INVISIBLE_REFERENCE!>D<!>
fun test() {
f(A)
@@ -1,73 +0,0 @@
// FILE: j/JavaPublic.java
package j;
public class JavaPublic {
public static void javaM() {}
public static int javaP = 4;
static int javaPackageLocal = 5;
}
// FILE: j/JavaPackageLocal.java
package j;
class JavaPackageLocal {
static void javaMPackage() {}
static int javaPPackage = 4;
}
// FILE: j/JavaProtected.java
package j;
public class JavaProtected {
protected static void javaMProtected() {}
protected static int javaPProtected = 4;
}
// FILE: j/JavaPrivate.java
package j;
public class JavaPrivate {
private static void javaMPrivate() {}
private static int javaPPrivate = 4;
}
// FILE: k1.kt
package k
import j.JavaPublic
import j.JavaPublic.javaM
import j.JavaPublic.javaP
import j.JavaPublic.javaPackageLocal
import j.JavaPackageLocal
import j.JavaPackageLocal.javaMPackage
import j.JavaPackageLocal.javaPPackage
import j.JavaProtected
import j.JavaProtected.javaMProtected
import j.JavaProtected.javaPProtected
import j.JavaPrivate
import j.JavaPrivate.javaMPrivate
import j.JavaPrivate.javaPPrivate
// FILE: k2.kt
package j
import j.JavaPublic
import j.JavaPublic.javaM
import j.JavaPublic.javaP
import j.JavaPublic.javaPackageLocal
import j.JavaPackageLocal
import j.JavaPackageLocal.javaMPackage
import j.JavaPackageLocal.javaPPackage
import j.JavaProtected
import j.JavaProtected.javaMProtected
import j.JavaProtected.javaPProtected
import j.JavaPrivate
import j.JavaPrivate.javaMPrivate
import j.JavaPrivate.javaPPrivate
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
// FILE: j/JavaPublic.java
package j;
@@ -5,6 +7,7 @@ public class JavaPublic {
public static void javaM() {}
public static int javaP = 4;
static int javaPackageLocal = 5;
protected static int javaProtected = 6;
}
// FILE: j/JavaPackageLocal.java
@@ -39,6 +42,7 @@ import j.JavaPublic
import j.JavaPublic.javaM
import j.JavaPublic.javaP
import j.JavaPublic.<!INVISIBLE_REFERENCE!>javaPackageLocal<!>
import j.JavaPublic.javaProtected
import j.<!INVISIBLE_REFERENCE!>JavaPackageLocal<!>
import j.<!INVISIBLE_REFERENCE!>JavaPackageLocal<!>.<!INVISIBLE_REFERENCE!>javaMPackage<!>
@@ -70,4 +74,4 @@ import j.JavaProtected.javaPProtected
import j.JavaPrivate
import j.JavaPrivate.<!INVISIBLE_REFERENCE!>javaMPrivate<!>
import j.JavaPrivate.<!INVISIBLE_REFERENCE!>javaPPrivate<!>
import j.JavaPrivate.<!INVISIBLE_REFERENCE!>javaPPrivate<!>
@@ -44,6 +44,7 @@ package j {
// Static members
public final var javaP: kotlin.Int
public/*package*/ final var javaPackageLocal: kotlin.Int
protected/*protected static*/ final var javaProtected: kotlin.Int
public open fun javaM(): kotlin.Unit
}
}
@@ -1,28 +0,0 @@
// MODULE: m1
// FILE: k1.kt
package k
private class KPrivate
internal class KInternal
public class KPublic
class A {
protected class KProtected
}
// FILE: k2.kt
package k2
import k.KPrivate
import k.KInternal
import k.KPublic
import k.A.KProtected
// MODULE: m2(m1)
// FILE: k3.kt
package k3
import k.KPrivate
import k.KInternal
import k.KPublic
import k.A.KProtected
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// MODULE: m1
// FILE: k1.kt
package k
@@ -21,7 +21,7 @@ fun all(a: String) {}
// FILE: 2.kt
import k.zero
import k.<!INVISIBLE_REFERENCE!>zero<!>
import k.one
import k.two
import k.all
@@ -18,7 +18,7 @@ public class B {
// FILE: C.kt
import A.Nested.*
import B.JC.JC1
import B.<!INVISIBLE_REFERENCE!>JC<!>.JC1
fun test() {
<!INVISIBLE_REFERENCE!>O1<!>
@@ -3,12 +3,33 @@ package pkg
private class Klass
private class Foo {
object Bar {
fun baz() {}
}
}
class Foo2 {
private object Bar {
fun baz() {}
}
}
private class Foo3 {
private object Bar {
private fun baz() {}
}
}
// FILE: test.kt
package pack
import <!UNRESOLVED_IMPORT!>foo<!>.bar.baz
import <!UNRESOLVED_IMPORT!>Outer<!>.`<no name provided>`.getInner
import pack.<!UNRESOLVED_IMPORT!>UnresolvedName<!>
import pkg.Klass
import pkg.<!INVISIBLE_REFERENCE!>Klass<!>
import pkg.<!INVISIBLE_REFERENCE!>Foo<!>.Bar.baz
import pkg.Foo2.<!INVISIBLE_REFERENCE!>Bar<!>.baz
import pkg.<!INVISIBLE_REFERENCE!>Foo3<!>.<!INVISIBLE_REFERENCE!>Bar<!>.<!INVISIBLE_REFERENCE!>baz<!>
class MainSource
@@ -3,6 +3,24 @@ package pkg
private class Klass
private class Foo {
object Bar {
fun baz() {}
}
}
class Foo2 {
private object Bar {
fun baz() {}
}
}
private class Foo3 {
private object Bar {
private fun baz() {}
}
}
// FILE: test.kt
package pack
@@ -10,5 +28,8 @@ import <!UNRESOLVED_REFERENCE!>foo<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>.<!
import <!UNRESOLVED_REFERENCE!>Outer<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>`<no name provided>`<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>getInner<!>
import pack.<!UNRESOLVED_REFERENCE!>UnresolvedName<!>
import pkg.<!INVISIBLE_REFERENCE!>Klass<!>
import pkg.<!INVISIBLE_REFERENCE!>Foo<!>.Bar.baz
import pkg.Foo2.<!INVISIBLE_REFERENCE!>Bar<!>.baz
import pkg.<!INVISIBLE_REFERENCE!>Foo3<!>.<!INVISIBLE_REFERENCE!>Bar<!>.<!INVISIBLE_REFERENCE!>baz<!>
class MainSource
@@ -1,6 +1,6 @@
// FILE: A.kt
import B.foo
import B.<!INVISIBLE_REFERENCE!>foo<!>
fun test() {
<!INVISIBLE_REFERENCE!>foo<!>
@@ -24,7 +24,7 @@ val <!EXPOSED_PROPERTY_TYPE!>z<!> = MyJavaClass.NestedClass()
//FILE: b.kt
package b
import a.MyJavaClass
import a.<!INVISIBLE_REFERENCE!>MyJavaClass<!>
val <!EXPOSED_PROPERTY_TYPE!>mc1<!> = <!INVISIBLE_REFERENCE!>MyJavaClass<!>()
@@ -35,7 +35,7 @@ val <!EXPOSED_PROPERTY_TYPE!>z<!> = <!INVISIBLE_REFERENCE, NO_COMPANION_OBJECT!>
//FILE: c.kt
package a.c
import a.MyJavaClass
import a.<!INVISIBLE_REFERENCE!>MyJavaClass<!>
val <!EXPOSED_PROPERTY_TYPE!>mc1<!> = <!INVISIBLE_REFERENCE!>MyJavaClass<!>()
@@ -8,8 +8,8 @@ class Foo {
// FILE: foo.kt
package a
import p.Foo
import p.Foo.Nested
import p.<!INVISIBLE_REFERENCE!>Foo<!>
import p.<!INVISIBLE_REFERENCE!>Foo<!>.Nested
class Bar : <!EXPOSED_SUPER_CLASS, INVISIBLE_REFERENCE, INVISIBLE_REFERENCE!>Foo<!>() {
protected fun <!EXPOSED_FUNCTION_RETURN_TYPE!>foo<!>(): <!INVISIBLE_REFERENCE!>Nested<!>? = null
@@ -19,10 +19,10 @@ private object PO {}
//+JDK
package b
import a.A
import a.foo
import a.<!INVISIBLE_REFERENCE!>A<!>
import a.<!INVISIBLE_REFERENCE!>foo<!>
import a.makeA
import a.PO
import a.<!INVISIBLE_REFERENCE!>PO<!>
fun test() {
val y = makeA()
@@ -6,7 +6,7 @@ private class Private {
// FILE: 2.kt
import Private.Public
import <!INVISIBLE_REFERENCE!>Private<!>.Public
private fun test_1(x: <!INVISIBLE_REFERENCE!>Private.Public<!>, y: <!INVISIBLE_REFERENCE!>Public<!>) {