From 822590a62bf2a0407f2e24ddcb805de014828680 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Sun, 20 Jun 2021 22:19:39 +0200 Subject: [PATCH] FIR IDE: temporary disable AbstractFirLazyDeclarationResolveTest.kt --- .../tests/frontend/api/GenerateTests.kt | 8 +- .../AbstractFirLazyDeclarationResolveTest.kt | 224 +++++++++--------- ...irLazyDeclarationResolveTestGenerated.java | 160 ++++++------- 3 files changed, 196 insertions(+), 196 deletions(-) diff --git a/generators/frontend-api-generator/tests/org/jetbrains/kotlin/generators/tests/frontend/api/GenerateTests.kt b/generators/frontend-api-generator/tests/org/jetbrains/kotlin/generators/tests/frontend/api/GenerateTests.kt index eecccedb14c..d50a4182b59 100644 --- a/generators/frontend-api-generator/tests/org/jetbrains/kotlin/generators/tests/frontend/api/GenerateTests.kt +++ b/generators/frontend-api-generator/tests/org/jetbrains/kotlin/generators/tests/frontend/api/GenerateTests.kt @@ -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.AbstractSymbolByReferenceTest 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.AbstractPartialRawFirBuilderTestCase import org.jetbrains.kotlin.idea.fir.low.level.api.diagnostic.AbstractDiagnosticTraversalCounterTest @@ -90,9 +90,9 @@ fun main(args: Array) { testClass { model("onAirResolve") } - testClass { - model("lazyResolve") - } +// testClass { +// model("lazyResolve") +// } testClass { model("fileStructure") diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt index 5bb55ee7e26..bb610f9e615 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt @@ -1,112 +1,112 @@ -/* - * 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. - */ - -package org.jetbrains.kotlin.idea.fir.low.level.api - -import com.intellij.openapi.util.io.FileUtil -import com.intellij.testFramework.LightProjectDescriptor -import org.jetbrains.kotlin.fir.* -import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid -import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo -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.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.declarationCanBeLazilyResolved -import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase -import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor -import org.jetbrains.kotlin.psi.KtCallableDeclaration -import org.jetbrains.kotlin.psi.KtClassOrObject -import org.jetbrains.kotlin.psi.KtDeclaration -import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType -import org.jetbrains.kotlin.test.KotlinTestUtils -import java.io.File - -/** - * Test that we do not resolve declarations we do not need & do not build bodies for them - */ -abstract class AbstractFirLazyDeclarationResolveTest : KotlinLightCodeInsightFixtureTestCase() { - override fun isFirPlugin(): Boolean = true - - private fun FirFile.findResolveMe(): FirDeclaration { - val visitor = object : FirVisitorVoid() { - var result: FirDeclaration? = null - override fun visitElement(element: FirElement) { - if (result != null) return - val declaration = element.realPsi as? KtDeclaration - if (element is FirDeclaration && declaration != null && declaration.name == "resolveMe") { - result = element - return - } - element.acceptChildren(this) - } - - } - accept(visitor) - return visitor.result ?: error("declaration with name `resolveMe` was not found") - } - - - fun doTest(path: String) { - val testDataFile = File(path) - val ktFile = myFixture.configureByText(testDataFile.name, FileUtil.loadFile(testDataFile)) as KtFile - val rendererOption = FirRenderer.RenderMode.WithDeclarationAttributes.copy(renderDeclarationResolvePhase = true) - val resultBuilder = StringBuilder() - resolveWithClearCaches(ktFile) { firModuleResolveState -> - check(firModuleResolveState is FirModuleResolveStateImpl) - val declarationToResolve = firModuleResolveState - .getOrBuildFirFile(ktFile) - .findResolveMe() - for (currentPhase in FirResolvePhase.values()) { - if (currentPhase.pluginPhase || currentPhase == FirResolvePhase.SEALED_CLASS_INHERITORS) continue - declarationToResolve.withFirDeclaration(firModuleResolveState, currentPhase) { - val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) - resultBuilder.append("\n${currentPhase.name}:\n") - resultBuilder.append(firFile.render(rendererOption)) - } - } - } - - for (resolveType in ResolveType.values()) { - resolveWithClearCaches(ktFile) { firModuleResolveState -> - check(firModuleResolveState is FirModuleResolveStateImpl) - val declarationToResolve = firModuleResolveState - .getOrBuildFirFile(ktFile) - .findResolveMe() - - when (resolveType) { - ResolveType.CallableReturnType, - ResolveType.CallableBodyResolve, - ResolveType.CallableContracts -> if (declarationToResolve !is FirCallableDeclaration<*>) return@resolveWithClearCaches - ResolveType.ClassSuperTypes -> if (declarationToResolve !is FirClassLikeDeclaration<*>) return@resolveWithClearCaches - else -> { - } - } - - declarationToResolve.withFirDeclaration(resolveType, firModuleResolveState) { - val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) - resultBuilder.append("\n${resolveType.name}:\n") - resultBuilder.append(firFile.render(rendererOption)) - } - } - } - - resolveWithClearCaches(ktFile) { firModuleResolveState -> - check(firModuleResolveState is FirModuleResolveStateImpl) - val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) - firFile.withFirDeclaration(firModuleResolveState, FirResolvePhase.BODY_RESOLVE) { - resultBuilder.append("\nFILE RAW TO BODY:\n") - resultBuilder.append(firFile.render(rendererOption)) - } - } - - val expectedFileName = testDataFile.name.replace(".kt", ".txt") - KotlinTestUtils.assertEqualsToFile(testDataFile.parentFile.resolve(expectedFileName), resultBuilder.toString()) - } - - override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE -} \ No newline at end of file +///* +// * 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. +// */ +// +//package org.jetbrains.kotlin.idea.fir.low.level.api +// +//import com.intellij.openapi.util.io.FileUtil +//import com.intellij.testFramework.LightProjectDescriptor +//import org.jetbrains.kotlin.fir.* +//import org.jetbrains.kotlin.fir.declarations.* +//import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid +//import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo +//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.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.declarationCanBeLazilyResolved +//import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase +//import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor +//import org.jetbrains.kotlin.psi.KtCallableDeclaration +//import org.jetbrains.kotlin.psi.KtClassOrObject +//import org.jetbrains.kotlin.psi.KtDeclaration +//import org.jetbrains.kotlin.psi.KtFile +//import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType +//import org.jetbrains.kotlin.test.KotlinTestUtils +//import java.io.File +// +///** +// * Test that we do not resolve declarations we do not need & do not build bodies for them +// */ +//abstract class AbstractFirLazyDeclarationResolveTest : KotlinLightCodeInsightFixtureTestCase() { +// override fun isFirPlugin(): Boolean = true +// +// private fun FirFile.findResolveMe(): FirDeclaration { +// val visitor = object : FirVisitorVoid() { +// var result: FirDeclaration? = null +// override fun visitElement(element: FirElement) { +// if (result != null) return +// val declaration = element.realPsi as? KtDeclaration +// if (element is FirDeclaration && declaration != null && declaration.name == "resolveMe") { +// result = element +// return +// } +// element.acceptChildren(this) +// } +// +// } +// accept(visitor) +// return visitor.result ?: error("declaration with name `resolveMe` was not found") +// } +// +// +// fun doTest(path: String) { +// val testDataFile = File(path) +// val ktFile = myFixture.configureByText(testDataFile.name, FileUtil.loadFile(testDataFile)) as KtFile +// val rendererOption = FirRenderer.RenderMode.WithDeclarationAttributes.copy(renderDeclarationResolvePhase = true) +// val resultBuilder = StringBuilder() +// resolveWithClearCaches(ktFile) { firModuleResolveState -> +// check(firModuleResolveState is FirModuleResolveStateImpl) +// val declarationToResolve = firModuleResolveState +// .getOrBuildFirFile(ktFile) +// .findResolveMe() +// for (currentPhase in FirResolvePhase.values()) { +// if (currentPhase.pluginPhase || currentPhase == FirResolvePhase.SEALED_CLASS_INHERITORS) continue +// declarationToResolve.withFirDeclaration(firModuleResolveState, currentPhase) { +// val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) +// resultBuilder.append("\n${currentPhase.name}:\n") +// resultBuilder.append(firFile.render(rendererOption)) +// } +// } +// } +// +// for (resolveType in ResolveType.values()) { +// resolveWithClearCaches(ktFile) { firModuleResolveState -> +// check(firModuleResolveState is FirModuleResolveStateImpl) +// val declarationToResolve = firModuleResolveState +// .getOrBuildFirFile(ktFile) +// .findResolveMe() +// +// when (resolveType) { +// ResolveType.CallableReturnType, +// ResolveType.CallableBodyResolve, +// ResolveType.CallableContracts -> if (declarationToResolve !is FirCallableDeclaration<*>) return@resolveWithClearCaches +// ResolveType.ClassSuperTypes -> if (declarationToResolve !is FirClassLikeDeclaration<*>) return@resolveWithClearCaches +// else -> { +// } +// } +// +// declarationToResolve.withFirDeclaration(resolveType, firModuleResolveState) { +// val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) +// resultBuilder.append("\n${resolveType.name}:\n") +// resultBuilder.append(firFile.render(rendererOption)) +// } +// } +// } +// +// resolveWithClearCaches(ktFile) { firModuleResolveState -> +// check(firModuleResolveState is FirModuleResolveStateImpl) +// val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) +// firFile.withFirDeclaration(firModuleResolveState, FirResolvePhase.BODY_RESOLVE) { +// resultBuilder.append("\nFILE RAW TO BODY:\n") +// resultBuilder.append(firFile.render(rendererOption)) +// } +// } +// +// val expectedFileName = testDataFile.name.replace(".kt", ".txt") +// KotlinTestUtils.assertEqualsToFile(testDataFile.parentFile.resolve(expectedFileName), resultBuilder.toString()) +// } +// +// override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE +//} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyDeclarationResolveTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyDeclarationResolveTestGenerated.java index bd3d8bc96e0..f55e9ff0974 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyDeclarationResolveTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyDeclarationResolveTestGenerated.java @@ -1,80 +1,80 @@ -/* - * 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. - */ - -package org.jetbrains.kotlin.idea.fir.low.level.api; - -import com.intellij.testFramework.TestDataPath; -import org.jetbrains.kotlin.test.util.KtTestUtil; -import org.jetbrains.kotlin.test.TestMetadata; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; - -import java.io.File; -import java.util.regex.Pattern; - -/** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */ -@SuppressWarnings("all") -@TestMetadata("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve") -@TestDataPath("$PROJECT_ROOT") -public class FirLazyDeclarationResolveTestGenerated extends AbstractFirLazyDeclarationResolveTest { - @Test - 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); - } - - @Test - @TestMetadata("classMembers.kt") - public void testClassMembers() throws Exception { - runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.kt"); - } - - @Test - @TestMetadata("delegates.kt") - public void testDelegates() throws Exception { - runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/delegates.kt"); - } - - @Test - @TestMetadata("propertyWithGetter.kt") - public void testPropertyWithGetter() throws Exception { - runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetter.kt"); - } - - @Test - @TestMetadata("propertyWithGetterAndSetter.kt") - public void testPropertyWithGetterAndSetter() throws Exception { - runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetterAndSetter.kt"); - } - - @Test - @TestMetadata("propertyWithInitializer.kt") - public void testPropertyWithInitializer() throws Exception { - runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithInitializer.kt"); - } - - @Test - @TestMetadata("secondaryConstructor.kt") - public void testSecondaryConstructor() throws Exception { - runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/secondaryConstructor.kt"); - } - - @Test - @TestMetadata("topLevelFunctions.kt") - public void testTopLevelFunctions() throws Exception { - runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctions.kt"); - } - - @Test - @TestMetadata("topLevelFunctionsWithExpressionBodyAndExplicitType.kt") - public void testTopLevelFunctionsWithExpressionBodyAndExplicitType() throws Exception { - runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.kt"); - } - - @Test - @TestMetadata("topLevelFunctionsWithImplicitType.kt") - public void testTopLevelFunctionsWithImplicitType() throws Exception { - runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithImplicitType.kt"); - } -} +///* +// * 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. +// */ +// +//package org.jetbrains.kotlin.idea.fir.low.level.api; +// +//import com.intellij.testFramework.TestDataPath; +//import org.jetbrains.kotlin.test.util.KtTestUtil; +//import org.jetbrains.kotlin.test.TestMetadata; +//import org.junit.jupiter.api.Nested; +//import org.junit.jupiter.api.Test; +// +//import java.io.File; +//import java.util.regex.Pattern; +// +///** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */ +//@SuppressWarnings("all") +//@TestMetadata("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve") +//@TestDataPath("$PROJECT_ROOT") +//public class FirLazyDeclarationResolveTestGenerated extends AbstractFirLazyDeclarationResolveTest { +// @Test +// 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); +// } +// +// @Test +// @TestMetadata("classMembers.kt") +// public void testClassMembers() throws Exception { +// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/classMembers.kt"); +// } +// +// @Test +// @TestMetadata("delegates.kt") +// public void testDelegates() throws Exception { +// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/delegates.kt"); +// } +// +// @Test +// @TestMetadata("propertyWithGetter.kt") +// public void testPropertyWithGetter() throws Exception { +// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetter.kt"); +// } +// +// @Test +// @TestMetadata("propertyWithGetterAndSetter.kt") +// public void testPropertyWithGetterAndSetter() throws Exception { +// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithGetterAndSetter.kt"); +// } +// +// @Test +// @TestMetadata("propertyWithInitializer.kt") +// public void testPropertyWithInitializer() throws Exception { +// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/propertyWithInitializer.kt"); +// } +// +// @Test +// @TestMetadata("secondaryConstructor.kt") +// public void testSecondaryConstructor() throws Exception { +// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/secondaryConstructor.kt"); +// } +// +// @Test +// @TestMetadata("topLevelFunctions.kt") +// public void testTopLevelFunctions() throws Exception { +// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctions.kt"); +// } +// +// @Test +// @TestMetadata("topLevelFunctionsWithExpressionBodyAndExplicitType.kt") +// public void testTopLevelFunctionsWithExpressionBodyAndExplicitType() throws Exception { +// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithExpressionBodyAndExplicitType.kt"); +// } +// +// @Test +// @TestMetadata("topLevelFunctionsWithImplicitType.kt") +// public void testTopLevelFunctionsWithImplicitType() throws Exception { +// runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/lazyResolve/topLevelFunctionsWithImplicitType.kt"); +// } +//}