[FIR] Add test for qualified access to base class member case

This commit is contained in:
Mikhail Glukhikh
2020-01-14 17:25:30 +03:00
parent c129714bf9
commit ae774a0ab9
4 changed files with 70 additions and 0 deletions
@@ -0,0 +1,25 @@
// FILE: JavaClass.java
public class JavaClass {
public static void bar() {}
}
// FILE: Test.kt
open class AA : JavaClass() {
object C
}
class BB : AA() {
object D
}
fun test() {
val bbd = BB.D
val aac = AA.C
JavaClass.bar()
val errC = BB.<!UNRESOLVED_REFERENCE!>C<!>
val errBarViaBB = BB.bar()
val errBarViaAA = AA.bar()
}
@@ -0,0 +1,35 @@
FILE: Test.kt
public open class AA : R|JavaClass| {
public constructor(): R|AA| {
super<R|JavaClass|>()
}
public final object C : R|kotlin/Any| {
private constructor(): R|AA.C| {
super<R|kotlin/Any|>()
}
}
}
public final class BB : R|AA| {
public constructor(): R|BB| {
super<R|AA|>()
}
public final object D : R|kotlin/Any| {
private constructor(): R|BB.D| {
super<R|kotlin/Any|>()
}
}
}
public final fun test(): R|kotlin/Unit| {
lval bbd: R|BB.D| = Q|BB.D|
lval aac: R|AA.C| = Q|AA.C|
Q|JavaClass|.R|/JavaClass.bar|()
lval errC: <ERROR TYPE REF: Unresolved name: C> = Q|BB|.<Unresolved name: C>#
lval errBarViaBB: R|kotlin/Unit| = Q|BB|.R|/JavaClass.bar|()
lval errBarViaAA: R|kotlin/Unit| = Q|AA|.R|/JavaClass.bar|()
}
@@ -419,6 +419,11 @@ public class FirDiagnosticsTestGenerated extends AbstractFirDiagnosticsTest {
runTest("compiler/fir/resolve/testData/resolve/expresssions/annotations.kt");
}
@TestMetadata("baseQualifier.kt")
public void testBaseQualifier() throws Exception {
runTest("compiler/fir/resolve/testData/resolve/expresssions/baseQualifier.kt");
}
@TestMetadata("checkArguments.kt")
public void testCheckArguments() throws Exception {
runTest("compiler/fir/resolve/testData/resolve/expresssions/checkArguments.kt");
@@ -419,6 +419,11 @@ public class FirDiagnosticsWithLightTreeTestGenerated extends AbstractFirDiagnos
runTest("compiler/fir/resolve/testData/resolve/expresssions/annotations.kt");
}
@TestMetadata("baseQualifier.kt")
public void testBaseQualifier() throws Exception {
runTest("compiler/fir/resolve/testData/resolve/expresssions/baseQualifier.kt");
}
@TestMetadata("checkArguments.kt")
public void testCheckArguments() throws Exception {
runTest("compiler/fir/resolve/testData/resolve/expresssions/checkArguments.kt");