Remove unreachable code in psi2ir tests, delete unused tests
This commit is contained in:
+10
-53
@@ -21,9 +21,7 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.codegen.CodegenTestCase
|
import org.jetbrains.kotlin.codegen.CodegenTestCase
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
|
||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||||
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS
|
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS
|
||||||
@@ -31,7 +29,6 @@ import org.jetbrains.kotlin.psi.KtFile
|
|||||||
import org.jetbrains.kotlin.psi2ir.Psi2IrConfiguration
|
import org.jetbrains.kotlin.psi2ir.Psi2IrConfiguration
|
||||||
import org.jetbrains.kotlin.psi2ir.Psi2IrTranslator
|
import org.jetbrains.kotlin.psi2ir.Psi2IrTranslator
|
||||||
import org.jetbrains.kotlin.resolve.AnalyzingUtils
|
import org.jetbrains.kotlin.resolve.AnalyzingUtils
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||||
@@ -84,20 +81,14 @@ abstract class AbstractIrGeneratorTestCase : CodegenTestCase() {
|
|||||||
|
|
||||||
protected abstract fun doTest(wholeFile: File, testFiles: List<TestFile>)
|
protected abstract fun doTest(wholeFile: File, testFiles: List<TestFile>)
|
||||||
|
|
||||||
protected fun generateIrModule(ignoreErrors: Boolean = false, shouldGenerate: (KtFile) -> Boolean = { true }): IrModuleFragment {
|
protected fun generateIrModule(ignoreErrors: Boolean = false): IrModuleFragment {
|
||||||
assert(myFiles != null) { "myFiles not initialized" }
|
assert(myFiles != null) { "myFiles not initialized" }
|
||||||
assert(myEnvironment != null) { "myEnvironment not initialized" }
|
assert(myEnvironment != null) { "myEnvironment not initialized" }
|
||||||
return doGenerateIrModule(
|
return doGenerateIrModule(Psi2IrTranslator(myEnvironment.configuration.languageVersionSettings, Psi2IrConfiguration(ignoreErrors)))
|
||||||
Psi2IrTranslator(myEnvironment.configuration.languageVersionSettings, Psi2IrConfiguration(ignoreErrors)),
|
|
||||||
shouldGenerate
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun doGenerateIrModule(
|
protected open fun doGenerateIrModule(psi2IrTranslator: Psi2IrTranslator): IrModuleFragment =
|
||||||
psi2IrTranslator: Psi2IrTranslator,
|
generateIrModuleWithJvmResolve(myFiles.psiFiles, myEnvironment, psi2IrTranslator)
|
||||||
shouldGenerate: (KtFile) -> Boolean
|
|
||||||
): IrModuleFragment =
|
|
||||||
generateIrModuleWithJvmResolve(myFiles.psiFiles, myEnvironment, psi2IrTranslator, shouldGenerate)
|
|
||||||
|
|
||||||
protected fun generateIrFilesAsSingleModule(testFiles: List<TestFile>, ignoreErrors: Boolean = false): Map<TestFile, IrFile> {
|
protected fun generateIrFilesAsSingleModule(testFiles: List<TestFile>, ignoreErrors: Boolean = false): Map<TestFile, IrFile> {
|
||||||
val irModule = generateIrModule(ignoreErrors)
|
val irModule = generateIrModule(ignoreErrors)
|
||||||
@@ -123,10 +114,7 @@ abstract class AbstractIrGeneratorTestCase : CodegenTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun generateIrModuleWithJsResolve(
|
fun generateIrModuleWithJsResolve(
|
||||||
ktFilesToAnalyze: List<KtFile>,
|
ktFilesToAnalyze: List<KtFile>, environment: KotlinCoreEnvironment, psi2ir: Psi2IrTranslator
|
||||||
environment: KotlinCoreEnvironment,
|
|
||||||
psi2ir: Psi2IrTranslator,
|
|
||||||
shouldGenerate: (KtFile) -> Boolean
|
|
||||||
): IrModuleFragment =
|
): IrModuleFragment =
|
||||||
generateIrModule(
|
generateIrModule(
|
||||||
TopDownAnalyzerFacadeForJS.analyzeFiles(
|
TopDownAnalyzerFacadeForJS.analyzeFiles(
|
||||||
@@ -134,53 +122,22 @@ abstract class AbstractIrGeneratorTestCase : CodegenTestCase() {
|
|||||||
moduleDescriptors = emptyList(),
|
moduleDescriptors = emptyList(),
|
||||||
friendModuleDescriptors = emptyList()
|
friendModuleDescriptors = emptyList()
|
||||||
),
|
),
|
||||||
psi2ir, ktFilesToAnalyze, shouldGenerate
|
psi2ir, ktFilesToAnalyze
|
||||||
)
|
)
|
||||||
|
|
||||||
fun generateIrModuleWithJvmResolve(
|
fun generateIrModuleWithJvmResolve(
|
||||||
ktFilesToAnalyze: List<KtFile>,
|
ktFilesToAnalyze: List<KtFile>, environment: KotlinCoreEnvironment, psi2ir: Psi2IrTranslator
|
||||||
environment: KotlinCoreEnvironment,
|
|
||||||
psi2ir: Psi2IrTranslator,
|
|
||||||
shouldGenerate: (KtFile) -> Boolean
|
|
||||||
): IrModuleFragment =
|
): IrModuleFragment =
|
||||||
generateIrModule(
|
generateIrModule(JvmResolveUtil.analyze(ktFilesToAnalyze, environment), psi2ir, ktFilesToAnalyze)
|
||||||
JvmResolveUtil.analyze(ktFilesToAnalyze, environment),
|
|
||||||
psi2ir, ktFilesToAnalyze, shouldGenerate
|
|
||||||
)
|
|
||||||
|
|
||||||
private fun generateIrModule(
|
private fun generateIrModule(
|
||||||
analysisResult: AnalysisResult,
|
analysisResult: AnalysisResult, psi2ir: Psi2IrTranslator, ktFilesToAnalyze: List<KtFile>
|
||||||
psi2ir: Psi2IrTranslator,
|
|
||||||
ktFilesToAnalyze: List<KtFile>,
|
|
||||||
shouldGenerate: (KtFile) -> Boolean
|
|
||||||
): IrModuleFragment {
|
): IrModuleFragment {
|
||||||
if (!psi2ir.configuration.ignoreErrors) {
|
if (!psi2ir.configuration.ignoreErrors) {
|
||||||
analysisResult.throwIfError()
|
analysisResult.throwIfError()
|
||||||
AnalyzingUtils.throwExceptionOnErrors(analysisResult.bindingContext)
|
AnalyzingUtils.throwExceptionOnErrors(analysisResult.bindingContext)
|
||||||
}
|
}
|
||||||
val fileToGenerate = ktFilesToAnalyze.filter { shouldGenerate(it) }
|
return psi2ir.generateModule(analysisResult.moduleDescriptor, ktFilesToAnalyze, analysisResult.bindingContext)
|
||||||
return generateIrModule(fileToGenerate, analysisResult.moduleDescriptor, analysisResult.bindingContext, psi2ir)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun generateIrModule(
|
|
||||||
ktFiles: List<KtFile>,
|
|
||||||
moduleDescriptor: ModuleDescriptor,
|
|
||||||
bindingContext: BindingContext,
|
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
|
||||||
ignoreErrors: Boolean = false
|
|
||||||
) =
|
|
||||||
generateIrModule(
|
|
||||||
ktFiles, moduleDescriptor, bindingContext, Psi2IrTranslator(languageVersionSettings, Psi2IrConfiguration(ignoreErrors))
|
|
||||||
)
|
|
||||||
|
|
||||||
fun generateIrModule(
|
|
||||||
ktFiles: List<KtFile>,
|
|
||||||
moduleDescriptor: ModuleDescriptor,
|
|
||||||
bindingContext: BindingContext,
|
|
||||||
psi2ir: Psi2IrTranslator
|
|
||||||
) =
|
|
||||||
psi2ir.generateModule(moduleDescriptor, ktFiles, bindingContext)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,14 +5,10 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.ir
|
package org.jetbrains.kotlin.ir
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
|
||||||
import org.jetbrains.kotlin.psi2ir.Psi2IrTranslator
|
import org.jetbrains.kotlin.psi2ir.Psi2IrTranslator
|
||||||
|
|
||||||
abstract class AbstractIrJsTextTestCase : AbstractIrTextTestCase() {
|
abstract class AbstractIrJsTextTestCase : AbstractIrTextTestCase() {
|
||||||
override fun doGenerateIrModule(
|
override fun doGenerateIrModule(psi2IrTranslator: Psi2IrTranslator): IrModuleFragment =
|
||||||
psi2IrTranslator: Psi2IrTranslator,
|
generateIrModuleWithJsResolve(myFiles.psiFiles, myEnvironment, psi2IrTranslator)
|
||||||
shouldGenerate: (KtFile) -> Boolean
|
|
||||||
): IrModuleFragment =
|
|
||||||
generateIrModuleWithJsResolve(myFiles.psiFiles, myEnvironment, psi2IrTranslator, shouldGenerate)
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2017 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.ir
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.util.dump
|
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
|
||||||
import java.io.File
|
|
||||||
|
|
||||||
abstract class AbstractPsi2IrBoxTestCase : AbstractIrGeneratorTestCase() {
|
|
||||||
override fun doTest(wholeFile: File, testFiles: List<TestFile>) {
|
|
||||||
val irModule = generateIrModule(false)
|
|
||||||
val irModuleDump = irModule.dump()
|
|
||||||
val expectedPath = wholeFile.canonicalPath
|
|
||||||
// .replace("/codegen/box/", "/ir/irTextBox/")
|
|
||||||
.replace(".kt", ".txt")
|
|
||||||
val expectedFile = File(expectedPath)
|
|
||||||
KotlinTestUtils.assertEqualsToFile(expectedFile, irModuleDump)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2017 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.ir
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
|
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
|
||||||
import org.jetbrains.kotlin.ir.util.dump
|
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
|
||||||
import java.io.File
|
|
||||||
|
|
||||||
abstract class AbstractPsi2IrDiagnosticsTest : AbstractDiagnosticsTest() {
|
|
||||||
override fun performAdditionalChecksAfterDiagnostics(
|
|
||||||
testDataFile: File,
|
|
||||||
testFiles: List<TestFile>,
|
|
||||||
moduleFiles: Map<TestModule?, List<TestFile>>,
|
|
||||||
moduleDescriptors: Map<TestModule?, ModuleDescriptorImpl>,
|
|
||||||
moduleBindings: Map<TestModule?, BindingContext>,
|
|
||||||
languageVersionSettingsByModule: Map<TestModule?, LanguageVersionSettings>
|
|
||||||
) {
|
|
||||||
val actualIrDump = StringBuilder()
|
|
||||||
for (module in moduleFiles.keys) {
|
|
||||||
val ktFiles = moduleFiles[module]?.mapNotNull { it.ktFile } ?: continue
|
|
||||||
val moduleDescriptor = moduleDescriptors[module] ?: continue
|
|
||||||
val moduleBindingContext = moduleBindings[module] ?: continue
|
|
||||||
val languageVersionSettings = languageVersionSettingsByModule[module] ?: continue
|
|
||||||
val irModule = AbstractIrGeneratorTestCase.generateIrModule(
|
|
||||||
ktFiles, moduleDescriptor, moduleBindingContext, languageVersionSettings, true
|
|
||||||
)
|
|
||||||
actualIrDump.append(irModule.dump())
|
|
||||||
}
|
|
||||||
|
|
||||||
val expectedIrFile = File(testDataFile.canonicalPath.replace(".kt", ".ir.txt"))
|
|
||||||
KotlinTestUtils.assertEqualsToFile(expectedIrFile, actualIrDump.toString())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user