FIR IDE: add failing multiModuleLazyResolve test

This commit is contained in:
Ilya Kirillov
2020-09-02 13:24:49 +03:00
parent a3a59131b5
commit 0c47d42659
9 changed files with 42 additions and 2 deletions
@@ -0,0 +1,5 @@
package a;
public interface KtDeclaration extends KtElement {
}
@@ -0,0 +1,4 @@
package a
interface KtElement : KtPureElement {
}
@@ -0,0 +1,6 @@
package a;
public interface KtPureElement {
KtFile getContainingKtFile();
}
@@ -0,0 +1,5 @@
FILE: main.kt
public final val R|a/KtElement|.fqNameWithoutCompanions: R|a/KtFile|
public get(): R|a/KtFile| {
^ this@R|/fqNameWithoutCompanions|.R|a/KtPureElement.containingKtFile|
}
@@ -0,0 +1,4 @@
import a.*
val KtDeclaration.fqNameWithoutCompanions: KtFile
get() = containingKtFile
@@ -0,0 +1,8 @@
{
"modules" : [
{ "name": "main", "dependsOn": ["dependency"] },
{ "name": "dependency" }
],
"fileToResolve": { "module": "main", "file": "main.kt" },
"fails": true
}
@@ -46,12 +46,12 @@ abstract class AbstractFirMultiModuleLazyResolveTest : AbstractMultiModuleTest()
try {
val fir = LowLevelFirApiFacade.getOrBuildFirFor(ktFileToAnalyse, resolveState, FirResolvePhase.BODY_RESOLVE)
KotlinTestUtils.assertEqualsToFile(File("$path/expected.txt"), fir.render())
} catch (e: Exception) {
} catch (e: Throwable) {
if (!fails) throw e
return
}
if (fails) {
throw AssertionError("Looks like test is passing, please remove // FAILS form the file")
throw AssertionError("Looks like test is passing, please remove `\"fails\": true` from structure.json")
}
}
}
@@ -28,6 +28,11 @@ public class FirMultiModuleLazyResolveTestGenerated extends AbstractFirMultiModu
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve"), Pattern.compile("^([^\\.]+)$"), null, false);
}
@TestMetadata("javaExtendsKotlinExtendsJava")
public void testJavaExtendsKotlinExtendsJava() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/");
}
@TestMetadata("whenWithHeiarchy")
public void testWhenWithHeiarchy() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/whenWithHeiarchy/");