FIR Java: implement "appendErasedType" thus adding predefined signatures
Related to KT-29937
This commit is contained in:
+2
@@ -0,0 +1,2 @@
|
||||
<T> public abstract interface MyIterable : R|java/lang/Iterable<T>| {
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
public interface MyIterable<T> extends Iterable<T>
|
||||
@@ -0,0 +1,6 @@
|
||||
interface UseIterable : MyIterable<String> {
|
||||
fun test() {
|
||||
val it = iterator()
|
||||
val split = spliterator()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
FILE: test.kt
|
||||
public abstract interface UseIterable : R|MyIterable<kotlin/String>| {
|
||||
public open function test(): R|kotlin/Unit| {
|
||||
val it: R|error: Not supported: FirImplicitTypeRefImpl| = R|FakeOverride<java/lang/Iterable.iterator: R|ft<kotlin/collections/MutableIterator<ft<T, T?>>, kotlin/collections/Iterator<ft<T, T?>>?>|!>|()
|
||||
val split: R|error: Not supported: FirImplicitTypeRefImpl| = R|FakeOverride<java/lang/Iterable.spliterator: R|ft<java/util/Spliterator<ft<T, T>>, java/util/Spliterator<ft<T, T>>>|>|()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -53,10 +53,12 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() {
|
||||
|
||||
fun doTest(dirPath: String) {
|
||||
setupMppProjectFromDirStructure(File(dirPath))
|
||||
val useFullJdk = "full" in dirPath
|
||||
val jdkKind = if (useFullJdk) TestJdkKind.FULL_JDK else TestJdkKind.MOCK_JDK
|
||||
for (module in project.allModules().drop(1)) {
|
||||
ConfigLibraryUtil.configureSdk(
|
||||
module,
|
||||
PluginTestCaseBase.addJdk(testRootDisposable) { PluginTestCaseBase.jdk(TestJdkKind.MOCK_JDK) }
|
||||
PluginTestCaseBase.addJdk(testRootDisposable) { PluginTestCaseBase.jdk(jdkKind) }
|
||||
)
|
||||
}
|
||||
doFirResolveTest(dirPath)
|
||||
|
||||
+5
@@ -59,6 +59,11 @@ public class FirMultiModuleResolveTestGenerated extends AbstractFirMultiModuleRe
|
||||
runTest("idea/testData/fir/multiModule/basicWithPrimitiveJava/");
|
||||
}
|
||||
|
||||
@TestMetadata("fullWithJavaPredefinedSignature")
|
||||
public void testFullWithJavaPredefinedSignature() throws Exception {
|
||||
runTest("idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/");
|
||||
}
|
||||
|
||||
@TestMetadata("javaInheritsRawKotlin")
|
||||
public void testJavaInheritsRawKotlin() throws Exception {
|
||||
runTest("idea/testData/fir/multiModule/javaInheritsRawKotlin/");
|
||||
|
||||
Reference in New Issue
Block a user