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.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.codegen.CodegenTestCase
|
||||
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.IrModuleFragment
|
||||
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.Psi2IrTranslator
|
||||
import org.jetbrains.kotlin.resolve.AnalyzingUtils
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||
@@ -84,20 +81,14 @@ abstract class AbstractIrGeneratorTestCase : CodegenTestCase() {
|
||||
|
||||
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(myEnvironment != null) { "myEnvironment not initialized" }
|
||||
return doGenerateIrModule(
|
||||
Psi2IrTranslator(myEnvironment.configuration.languageVersionSettings, Psi2IrConfiguration(ignoreErrors)),
|
||||
shouldGenerate
|
||||
)
|
||||
return doGenerateIrModule(Psi2IrTranslator(myEnvironment.configuration.languageVersionSettings, Psi2IrConfiguration(ignoreErrors)))
|
||||
}
|
||||
|
||||
protected open fun doGenerateIrModule(
|
||||
psi2IrTranslator: Psi2IrTranslator,
|
||||
shouldGenerate: (KtFile) -> Boolean
|
||||
): IrModuleFragment =
|
||||
generateIrModuleWithJvmResolve(myFiles.psiFiles, myEnvironment, psi2IrTranslator, shouldGenerate)
|
||||
protected open fun doGenerateIrModule(psi2IrTranslator: Psi2IrTranslator): IrModuleFragment =
|
||||
generateIrModuleWithJvmResolve(myFiles.psiFiles, myEnvironment, psi2IrTranslator)
|
||||
|
||||
protected fun generateIrFilesAsSingleModule(testFiles: List<TestFile>, ignoreErrors: Boolean = false): Map<TestFile, IrFile> {
|
||||
val irModule = generateIrModule(ignoreErrors)
|
||||
@@ -123,10 +114,7 @@ abstract class AbstractIrGeneratorTestCase : CodegenTestCase() {
|
||||
}
|
||||
|
||||
fun generateIrModuleWithJsResolve(
|
||||
ktFilesToAnalyze: List<KtFile>,
|
||||
environment: KotlinCoreEnvironment,
|
||||
psi2ir: Psi2IrTranslator,
|
||||
shouldGenerate: (KtFile) -> Boolean
|
||||
ktFilesToAnalyze: List<KtFile>, environment: KotlinCoreEnvironment, psi2ir: Psi2IrTranslator
|
||||
): IrModuleFragment =
|
||||
generateIrModule(
|
||||
TopDownAnalyzerFacadeForJS.analyzeFiles(
|
||||
@@ -134,53 +122,22 @@ abstract class AbstractIrGeneratorTestCase : CodegenTestCase() {
|
||||
moduleDescriptors = emptyList(),
|
||||
friendModuleDescriptors = emptyList()
|
||||
),
|
||||
psi2ir, ktFilesToAnalyze, shouldGenerate
|
||||
psi2ir, ktFilesToAnalyze
|
||||
)
|
||||
|
||||
fun generateIrModuleWithJvmResolve(
|
||||
ktFilesToAnalyze: List<KtFile>,
|
||||
environment: KotlinCoreEnvironment,
|
||||
psi2ir: Psi2IrTranslator,
|
||||
shouldGenerate: (KtFile) -> Boolean
|
||||
ktFilesToAnalyze: List<KtFile>, environment: KotlinCoreEnvironment, psi2ir: Psi2IrTranslator
|
||||
): IrModuleFragment =
|
||||
generateIrModule(
|
||||
JvmResolveUtil.analyze(ktFilesToAnalyze, environment),
|
||||
psi2ir, ktFilesToAnalyze, shouldGenerate
|
||||
)
|
||||
generateIrModule(JvmResolveUtil.analyze(ktFilesToAnalyze, environment), psi2ir, ktFilesToAnalyze)
|
||||
|
||||
private fun generateIrModule(
|
||||
analysisResult: AnalysisResult,
|
||||
psi2ir: Psi2IrTranslator,
|
||||
ktFilesToAnalyze: List<KtFile>,
|
||||
shouldGenerate: (KtFile) -> Boolean
|
||||
analysisResult: AnalysisResult, psi2ir: Psi2IrTranslator, ktFilesToAnalyze: List<KtFile>
|
||||
): IrModuleFragment {
|
||||
if (!psi2ir.configuration.ignoreErrors) {
|
||||
analysisResult.throwIfError()
|
||||
AnalyzingUtils.throwExceptionOnErrors(analysisResult.bindingContext)
|
||||
}
|
||||
val fileToGenerate = ktFilesToAnalyze.filter { shouldGenerate(it) }
|
||||
return generateIrModule(fileToGenerate, analysisResult.moduleDescriptor, analysisResult.bindingContext, psi2ir)
|
||||
return psi2ir.generateModule(analysisResult.moduleDescriptor, ktFilesToAnalyze, analysisResult.bindingContext)
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||
import org.jetbrains.kotlin.psi2ir.Psi2IrTranslator
|
||||
|
||||
abstract class AbstractIrJsTextTestCase : AbstractIrTextTestCase() {
|
||||
override fun doGenerateIrModule(
|
||||
psi2IrTranslator: Psi2IrTranslator,
|
||||
shouldGenerate: (KtFile) -> Boolean
|
||||
): IrModuleFragment =
|
||||
generateIrModuleWithJsResolve(myFiles.psiFiles, myEnvironment, psi2IrTranslator, shouldGenerate)
|
||||
override fun doGenerateIrModule(psi2IrTranslator: Psi2IrTranslator): IrModuleFragment =
|
||||
generateIrModuleWithJsResolve(myFiles.psiFiles, myEnvironment, psi2IrTranslator)
|
||||
}
|
||||
|
||||
@@ -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