[FIR] Add checker for MISSING_DEPENDENCY_CLASS

#KT-59371 Fixed
This commit is contained in:
Brian Norman
2023-08-21 06:59:13 -05:00
committed by Space Team
parent ecb6b5dc58
commit 833072e1fb
30 changed files with 145 additions and 277 deletions
@@ -24,4 +24,4 @@ package c
import a.*
import b.*
fun test(): <!OVERLOAD_RESOLUTION_AMBIGUITY!>x<!> = d().x()
fun test(): <!OVERLOAD_RESOLUTION_AMBIGUITY!>x<!> = d().<!MISSING_DEPENDENCY_CLASS!>x<!>()
@@ -1,38 +0,0 @@
// SKIP_JAVAC
// FILE: a/B.java
package a;
public class B {}
// FILE: a/D.java
package a;
public class D {
public static class B {}
}
// FILE: b/A1.java
package b;
import a.B;
import a.D.B;
public class A1 {
public B getB() { return null; }
}
// FILE: b/A2.java
package b;
import a.*;
import a.D.*;
public class A2 {
public B getB() { return null; }
}
// FILE: a.kt
package b
fun test() = A1().getB()
fun test2() = A2().getB()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// SKIP_JAVAC
// FILE: a/B.java
package a;
@@ -35,4 +36,4 @@ public class A2 {
package b
fun test() = A1().getB()
fun test2() = A2().<!MISSING_DEPENDENCY_CLASS!>getB<!>()
fun test2() = A2().<!MISSING_DEPENDENCY_CLASS!>getB<!>()
@@ -1,40 +0,0 @@
// SKIP_JAVAC
// FILE: a/A.java
package a;
public class A {
public static class B {}
}
// FILE: a/D.java
package a;
public class D {
public static class B {}
}
// FILE: b/A1.java
package b;
import a.A.B;
import a.D.B;
public class A1 {
public B getB() { return null; }
}
// FILE: b/A2.java
package b;
import a.A.*;
import a.D.*;
public class A2 {
public B getB() { return null; }
}
// FILE: a.kt
package b
fun test() = A1().getB()
fun test2() = A2().getB()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// SKIP_JAVAC
// FILE: a/A.java
package a;
@@ -1,27 +0,0 @@
// FILE: a/x.java
package a;
public class x {
public class Z {}
}
// FILE: a/i.java
package a;
public interface i {
public class Z {}
}
// FILE: a/y.java
package a;
public class y extends x implements i {
public Z getZ() { return null; }
}
// FILE: test.kt
package a
fun test() = y().getZ()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: a/x.java
package a;
@@ -24,4 +25,4 @@ public class y extends x implements i {
// FILE: test.kt
package a
fun test() = y().<!MISSING_DEPENDENCY_CLASS!>getZ<!>()
fun test() = y().<!MISSING_DEPENDENCY_CLASS!>getZ<!>()
@@ -1,30 +0,0 @@
// FILE: a/x.java
package a;
public class x {
public class Z {}
}
// FILE: a/i.java
package a;
public interface i {
public class Z {}
}
// FILE: a/i2.java
package a;
public interface i2 extends i {}
// FILE: a/y.java
package a;
public class y extends x implements i2 {
public Z getZ() { return null; }
}
// FILE: test.kt
package a
fun test() = y().getZ()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: a/x.java
package a;
@@ -27,4 +28,4 @@ public class y extends x implements i2 {
// FILE: test.kt
package a
fun test() = y().<!MISSING_DEPENDENCY_CLASS!>getZ<!>()
fun test() = y().<!MISSING_DEPENDENCY_CLASS!>getZ<!>()
@@ -1,25 +0,0 @@
// FILE: a/i.java
package a;
public interface i {
public class Z {}
}
// FILE: a/i2.java
package a;
public interface i2 {
public class Z {}
}
// FILE: a/x.java
package a;
public class x implements i, i2 {
public Z getZ() { return null; }
}
// FILE: test.kt
package a
fun test() = x().getZ()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: a/i.java
package a;
@@ -22,4 +23,4 @@ public class x implements i, i2 {
// FILE: test.kt
package a
fun test() = x().<!MISSING_DEPENDENCY_CLASS!>getZ<!>()
fun test() = x().<!MISSING_DEPENDENCY_CLASS!>getZ<!>()
@@ -1,47 +0,0 @@
// FILE: a/x.java
package a;
public class x {
class O {}
}
// FILE: a/x1.java
package a;
public class x1 extends x {}
// FILE: a/x2.java
package a;
public class x2 extends x1 {}
// FILE: a/i.java
package a;
public interface i {
public class O {}
}
// FILE: a/i2.java
package a;
public interface i2 extends i {
public class O {}
}
// FILE: a/i3.java
package a;
public interface i3 extends i2 {}
// FILE: a/test.java
package a;
public class test extends x2 implements i3 {
public O getO() { return null; }
}
// FILE: test.kt
package a
fun test1() = test().getO()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: a/x.java
package a;
@@ -1,33 +0,0 @@
// FILE: a/x.java
package a;
public class x {
public class O {}
}
// FILE: a/i.java
package a;
public interface i {
public class O {}
}
// FILE: a/i2.java
package a;
public interface i2 extends i {
public O getO();
}
// FILE: a/Test.java
package a;
public class Test extends x implements i2 {
@Override
public O getO() { return null; }
}
// FILE: test.kt
package a
fun test() = Test().getO()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: a/x.java
package a;
@@ -30,4 +31,4 @@ public class Test extends x implements i2 {
// FILE: test.kt
package a
fun test() = Test().<!MISSING_DEPENDENCY_CLASS!>getO<!>()
fun test() = Test().<!MISSING_DEPENDENCY_CLASS!>getO<!>()