FIR IDE: temporary disable AbstractFirLazyDeclarationResolveTest.kt

This commit is contained in:
Ilya Kirillov
2021-06-20 22:19:39 +02:00
parent 90f6d458b5
commit 822590a62b
3 changed files with 196 additions and 196 deletions
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByFqName
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByPsiTest import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByPsiTest
import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByReferenceTest import org.jetbrains.kotlin.idea.fir.frontend.api.symbols.AbstractSymbolByReferenceTest
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirLazyBodiesCalculatorTest import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirLazyBodiesCalculatorTest
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirLazyDeclarationResolveTest //import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirLazyDeclarationResolveTest
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirOnAirResolveTest import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractFirOnAirResolveTest
import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractPartialRawFirBuilderTestCase import org.jetbrains.kotlin.idea.fir.low.level.api.AbstractPartialRawFirBuilderTestCase
import org.jetbrains.kotlin.idea.fir.low.level.api.diagnostic.AbstractDiagnosticTraversalCounterTest import org.jetbrains.kotlin.idea.fir.low.level.api.diagnostic.AbstractDiagnosticTraversalCounterTest
@@ -90,9 +90,9 @@ fun main(args: Array<String>) {
testClass<AbstractFirOnAirResolveTest> { testClass<AbstractFirOnAirResolveTest> {
model("onAirResolve") model("onAirResolve")
} }
testClass<AbstractFirLazyDeclarationResolveTest> { // testClass<AbstractFirLazyDeclarationResolveTest> {
model("lazyResolve") // model("lazyResolve")
} // }
testClass<AbstractFileStructureTest> { testClass<AbstractFileStructureTest> {
model("fileStructure") model("fileStructure")
@@ -1,112 +1,112 @@
/* ///*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. // * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. // * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ // */
//
package org.jetbrains.kotlin.idea.fir.low.level.api //package org.jetbrains.kotlin.idea.fir.low.level.api
//
import com.intellij.openapi.util.io.FileUtil //import com.intellij.openapi.util.io.FileUtil
import com.intellij.testFramework.LightProjectDescriptor //import com.intellij.testFramework.LightProjectDescriptor
import org.jetbrains.kotlin.fir.* //import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.* //import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid //import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo //import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
import org.jetbrains.kotlin.idea.caches.project.getModuleInfo //import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
import org.jetbrains.kotlin.idea.fir.low.level.api.api.withFirDeclaration //import org.jetbrains.kotlin.idea.fir.low.level.api.api.withFirDeclaration
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver //import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.ResolveType //import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.ResolveType
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.declarationCanBeLazilyResolved //import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.declarationCanBeLazilyResolved
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase //import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor //import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
import org.jetbrains.kotlin.psi.KtCallableDeclaration //import org.jetbrains.kotlin.psi.KtCallableDeclaration
import org.jetbrains.kotlin.psi.KtClassOrObject //import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtDeclaration //import org.jetbrains.kotlin.psi.KtDeclaration
import org.jetbrains.kotlin.psi.KtFile //import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType //import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
import org.jetbrains.kotlin.test.KotlinTestUtils //import org.jetbrains.kotlin.test.KotlinTestUtils
import java.io.File //import java.io.File
//
/** ///**
* Test that we do not resolve declarations we do not need & do not build bodies for them // * Test that we do not resolve declarations we do not need & do not build bodies for them
*/ // */
abstract class AbstractFirLazyDeclarationResolveTest : KotlinLightCodeInsightFixtureTestCase() { //abstract class AbstractFirLazyDeclarationResolveTest : KotlinLightCodeInsightFixtureTestCase() {
override fun isFirPlugin(): Boolean = true // override fun isFirPlugin(): Boolean = true
//
private fun FirFile.findResolveMe(): FirDeclaration { // private fun FirFile.findResolveMe(): FirDeclaration {
val visitor = object : FirVisitorVoid() { // val visitor = object : FirVisitorVoid() {
var result: FirDeclaration? = null // var result: FirDeclaration? = null
override fun visitElement(element: FirElement) { // override fun visitElement(element: FirElement) {
if (result != null) return // if (result != null) return
val declaration = element.realPsi as? KtDeclaration // val declaration = element.realPsi as? KtDeclaration
if (element is FirDeclaration && declaration != null && declaration.name == "resolveMe") { // if (element is FirDeclaration && declaration != null && declaration.name == "resolveMe") {
result = element // result = element
return // return
} // }
element.acceptChildren(this) // element.acceptChildren(this)
} // }
//
} // }
accept(visitor) // accept(visitor)
return visitor.result ?: error("declaration with name `resolveMe` was not found") // return visitor.result ?: error("declaration with name `resolveMe` was not found")
} // }
//
//
fun doTest(path: String) { // fun doTest(path: String) {
val testDataFile = File(path) // val testDataFile = File(path)
val ktFile = myFixture.configureByText(testDataFile.name, FileUtil.loadFile(testDataFile)) as KtFile // val ktFile = myFixture.configureByText(testDataFile.name, FileUtil.loadFile(testDataFile)) as KtFile
val rendererOption = FirRenderer.RenderMode.WithDeclarationAttributes.copy(renderDeclarationResolvePhase = true) // val rendererOption = FirRenderer.RenderMode.WithDeclarationAttributes.copy(renderDeclarationResolvePhase = true)
val resultBuilder = StringBuilder() // val resultBuilder = StringBuilder()
resolveWithClearCaches(ktFile) { firModuleResolveState -> // resolveWithClearCaches(ktFile) { firModuleResolveState ->
check(firModuleResolveState is FirModuleResolveStateImpl) // check(firModuleResolveState is FirModuleResolveStateImpl)
val declarationToResolve = firModuleResolveState // val declarationToResolve = firModuleResolveState
.getOrBuildFirFile(ktFile) // .getOrBuildFirFile(ktFile)
.findResolveMe() // .findResolveMe()
for (currentPhase in FirResolvePhase.values()) { // for (currentPhase in FirResolvePhase.values()) {
if (currentPhase.pluginPhase || currentPhase == FirResolvePhase.SEALED_CLASS_INHERITORS) continue // if (currentPhase.pluginPhase || currentPhase == FirResolvePhase.SEALED_CLASS_INHERITORS) continue
declarationToResolve.withFirDeclaration(firModuleResolveState, currentPhase) { // declarationToResolve.withFirDeclaration(firModuleResolveState, currentPhase) {
val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) // val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
resultBuilder.append("\n${currentPhase.name}:\n") // resultBuilder.append("\n${currentPhase.name}:\n")
resultBuilder.append(firFile.render(rendererOption)) // resultBuilder.append(firFile.render(rendererOption))
} // }
} // }
} // }
//
for (resolveType in ResolveType.values()) { // for (resolveType in ResolveType.values()) {
resolveWithClearCaches(ktFile) { firModuleResolveState -> // resolveWithClearCaches(ktFile) { firModuleResolveState ->
check(firModuleResolveState is FirModuleResolveStateImpl) // check(firModuleResolveState is FirModuleResolveStateImpl)
val declarationToResolve = firModuleResolveState // val declarationToResolve = firModuleResolveState
.getOrBuildFirFile(ktFile) // .getOrBuildFirFile(ktFile)
.findResolveMe() // .findResolveMe()
//
when (resolveType) { // when (resolveType) {
ResolveType.CallableReturnType, // ResolveType.CallableReturnType,
ResolveType.CallableBodyResolve, // ResolveType.CallableBodyResolve,
ResolveType.CallableContracts -> if (declarationToResolve !is FirCallableDeclaration<*>) return@resolveWithClearCaches // ResolveType.CallableContracts -> if (declarationToResolve !is FirCallableDeclaration<*>) return@resolveWithClearCaches
ResolveType.ClassSuperTypes -> if (declarationToResolve !is FirClassLikeDeclaration<*>) return@resolveWithClearCaches // ResolveType.ClassSuperTypes -> if (declarationToResolve !is FirClassLikeDeclaration<*>) return@resolveWithClearCaches
else -> { // else -> {
} // }
} // }
//
declarationToResolve.withFirDeclaration(resolveType, firModuleResolveState) { // declarationToResolve.withFirDeclaration(resolveType, firModuleResolveState) {
val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) // val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
resultBuilder.append("\n${resolveType.name}:\n") // resultBuilder.append("\n${resolveType.name}:\n")
resultBuilder.append(firFile.render(rendererOption)) // resultBuilder.append(firFile.render(rendererOption))
} // }
} // }
} // }
//
resolveWithClearCaches(ktFile) { firModuleResolveState -> // resolveWithClearCaches(ktFile) { firModuleResolveState ->
check(firModuleResolveState is FirModuleResolveStateImpl) // check(firModuleResolveState is FirModuleResolveStateImpl)
val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) // val firFile = firModuleResolveState.getOrBuildFirFile(ktFile)
firFile.withFirDeclaration(firModuleResolveState, FirResolvePhase.BODY_RESOLVE) { // firFile.withFirDeclaration(firModuleResolveState, FirResolvePhase.BODY_RESOLVE) {
resultBuilder.append("\nFILE RAW TO BODY:\n") // resultBuilder.append("\nFILE RAW TO BODY:\n")
resultBuilder.append(firFile.render(rendererOption)) // resultBuilder.append(firFile.render(rendererOption))
} // }
} // }
//
val expectedFileName = testDataFile.name.replace(".kt", ".txt") // val expectedFileName = testDataFile.name.replace(".kt", ".txt")
KotlinTestUtils.assertEqualsToFile(testDataFile.parentFile.resolve(expectedFileName), resultBuilder.toString()) // KotlinTestUtils.assertEqualsToFile(testDataFile.parentFile.resolve(expectedFileName), resultBuilder.toString())
} // }
//
override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE // override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE
} //}
@@ -1,80 +1,80 @@
/* ///*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. // * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. // * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ // */
//
package org.jetbrains.kotlin.idea.fir.low.level.api; //package org.jetbrains.kotlin.idea.fir.low.level.api;
//
import com.intellij.testFramework.TestDataPath; //import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil; //import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TestMetadata; //import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested; //import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; //import org.junit.jupiter.api.Test;
//
import java.io.File; //import java.io.File;
import java.util.regex.Pattern; //import java.util.regex.Pattern;
//
/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */ ///** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all") //@SuppressWarnings("all")
@TestMetadata("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve") //@TestMetadata("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve")
@TestDataPath("$PROJECT_ROOT") //@TestDataPath("$PROJECT_ROOT")
public class FirLazyDeclarationResolveTestGenerated extends AbstractFirLazyDeclarationResolveTest { //public class FirLazyDeclarationResolveTestGenerated extends AbstractFirLazyDeclarationResolveTest {
@Test // @Test
public void testAllFilesPresentInLazyResolve() throws Exception { // public void testAllFilesPresentInLazyResolve() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve"), Pattern.compile("^(.+)\\.kt$"), null, true); // KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve"), Pattern.compile("^(.+)\\.kt$"), null, true);
} // }
//
@Test // @Test
@TestMetadata("classMembers.kt") // @TestMetadata("classMembers.kt")
public void testClassMembers() throws Exception { // public void testClassMembers() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.kt"); // runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.kt");
} // }
//
@Test // @Test
@TestMetadata("delegates.kt") // @TestMetadata("delegates.kt")
public void testDelegates() throws Exception { // public void testDelegates() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/delegates.kt"); // runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/delegates.kt");
} // }
//
@Test // @Test
@TestMetadata("propertyWithGetter.kt") // @TestMetadata("propertyWithGetter.kt")
public void testPropertyWithGetter() throws Exception { // public void testPropertyWithGetter() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetter.kt"); // runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetter.kt");
} // }
//
@Test // @Test
@TestMetadata("propertyWithGetterAndSetter.kt") // @TestMetadata("propertyWithGetterAndSetter.kt")
public void testPropertyWithGetterAndSetter() throws Exception { // public void testPropertyWithGetterAndSetter() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetterAndSetter.kt"); // runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetterAndSetter.kt");
} // }
//
@Test // @Test
@TestMetadata("propertyWithInitializer.kt") // @TestMetadata("propertyWithInitializer.kt")
public void testPropertyWithInitializer() throws Exception { // public void testPropertyWithInitializer() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithInitializer.kt"); // runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithInitializer.kt");
} // }
//
@Test // @Test
@TestMetadata("secondaryConstructor.kt") // @TestMetadata("secondaryConstructor.kt")
public void testSecondaryConstructor() throws Exception { // public void testSecondaryConstructor() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/secondaryConstructor.kt"); // runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/secondaryConstructor.kt");
} // }
//
@Test // @Test
@TestMetadata("topLevelFunctions.kt") // @TestMetadata("topLevelFunctions.kt")
public void testTopLevelFunctions() throws Exception { // public void testTopLevelFunctions() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctions.kt"); // runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctions.kt");
} // }
//
@Test // @Test
@TestMetadata("topLevelFunctionsWithExpressionBodyAndExplicitType.kt") // @TestMetadata("topLevelFunctionsWithExpressionBodyAndExplicitType.kt")
public void testTopLevelFunctionsWithExpressionBodyAndExplicitType() throws Exception { // public void testTopLevelFunctionsWithExpressionBodyAndExplicitType() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.kt"); // runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.kt");
} // }
//
@Test // @Test
@TestMetadata("topLevelFunctionsWithImplicitType.kt") // @TestMetadata("topLevelFunctionsWithImplicitType.kt")
public void testTopLevelFunctionsWithImplicitType() throws Exception { // public void testTopLevelFunctionsWithImplicitType() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithImplicitType.kt"); // runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithImplicitType.kt");
} // }
} //}