Fix compiler warnings in compiler code

This commit is contained in:
Alexander Udalov
2020-08-14 12:55:43 +02:00
parent 9b94e073af
commit a21f273570
84 changed files with 149 additions and 141 deletions
@@ -31,14 +31,14 @@ abstract class AbstractCompilerLightClassTest : KotlinMultiFileTestWithJava<Kotl
override fun isKotlinSourceRootNeeded(): Boolean = true
override fun doMultiFileTest(file: File, files: List<TestFile>) {
val environment = createEnvironment(file, files)
val expectedFile = KotlinTestUtils.replaceExtension(file, "java")
val allowFrontendExceptions = InTextDirectivesUtils.isDirectiveDefined(file.readText(), "// ALLOW_FRONTEND_EXCEPTION")
override fun doMultiFileTest(wholeFile: File, files: List<TestFile>) {
val environment = createEnvironment(wholeFile, files)
val expectedFile = KotlinTestUtils.replaceExtension(wholeFile, "java")
val allowFrontendExceptions = InTextDirectivesUtils.isDirectiveDefined(wholeFile.readText(), "// ALLOW_FRONTEND_EXCEPTION")
LightClassTestCommon.testLightClass(
expectedFile,
file,
wholeFile,
{ fqname -> findLightClass(allowFrontendExceptions, environment, fqname) },
LightClassTestCommon::removeEmptyDefaultImpls
)
@@ -27,7 +27,7 @@ abstract class AbstractDiagnosticsTestWithStdLibUsingJavac : AbstractDiagnostics
override fun shouldSkipTest(wholeFile: File, files: List<TestFile>): Boolean {
return isJavacSkipTest(wholeFile, files)
return isJavacSkipTest(wholeFile)
}
override fun setupEnvironment(environment: KotlinCoreEnvironment, testDataFile: File, files: List<TestFile>) {
@@ -19,13 +19,12 @@ package org.jetbrains.kotlin.checkers.javac
import org.jetbrains.kotlin.checkers.AbstractForeignJava8AnnotationsTest
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.InTextDirectivesUtils
import java.io.File
abstract class AbstractJavacForeignJava8AnnotationsTest : AbstractForeignJava8AnnotationsTest() {
override fun shouldSkipTest(wholeFile: File, files: List<TestFile>): Boolean {
return isSkipJavacTest(wholeFile, files)
return isSkipJavacTest(wholeFile)
}
override fun setupEnvironment(environment: KotlinCoreEnvironment, testDataFile: File, files: List<TestFile>) {
@@ -660,7 +660,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
val dependencies = ArrayList<ModuleDescriptorImpl>()
dependencies.add(module)
for (dependency in testModule.dependencies) {
dependencies.add(modules[dependency]!!)
dependencies.add(modules[dependency as TestModule?]!!)
}
dependencies.add(module.builtIns.builtInsModule)
@@ -490,7 +490,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
)
}
fun isJavacSkipTest(wholeFile: File, files: List<TestFile>): Boolean {
fun isJavacSkipTest(wholeFile: File): Boolean {
val testDataFileText = wholeFile.readText()
if (isDirectiveDefined(testDataFileText, "// JAVAC_SKIP")) {
return true
@@ -499,7 +499,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
}
//TODO: merge with isJavacSkipTest
fun isSkipJavacTest(wholeFile: File, files: List<TestFile>): Boolean {
fun isSkipJavacTest(wholeFile: File): Boolean {
val testDataFileText = wholeFile.readText()
if (isDirectiveDefined(testDataFileText, "// SKIP_JAVAC")) {
return true
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.Companion.createForTests
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
import org.jetbrains.kotlin.resolve.DescriptorUtils
@@ -131,7 +130,7 @@ abstract class KotlinMultiFileTestWithJava<M : KotlinBaseTest.TestModule, F : Ko
directives: Directives
): F? {
if (fileName.endsWith(".java")) {
writeSourceFile(fileName, text, javaFilesDir!!)
writeSourceFile(fileName, text, javaFilesDir)
}
if ((fileName.endsWith(".kt") || fileName.endsWith(".kts")) && kotlinSourceRoot != null) {
writeSourceFile(fileName, text, kotlinSourceRoot!!)
@@ -147,9 +146,9 @@ abstract class KotlinMultiFileTestWithJava<M : KotlinBaseTest.TestModule, F : Ko
}
private fun writeSourceFile(fileName: String, content: String, targetDir: File) {
val file = File(targetDir, fileName)
KotlinTestUtils.mkdirs(file.parentFile)
file.writeText(content, Charsets.UTF_8)
val tmpFile = File(targetDir, fileName)
KotlinTestUtils.mkdirs(tmpFile.parentFile)
tmpFile.writeText(content, Charsets.UTF_8)
}
}, coroutinesPackage)
}
@@ -26,7 +26,7 @@ import java.io.File
abstract class AbstractDiagnosticsUsingJavacTest : AbstractDiagnosticsTest() {
override fun shouldSkipTest(wholeFile: File, files: List<TestFile>): Boolean {
return isJavacSkipTest(wholeFile, files)
return isJavacSkipTest(wholeFile)
}
override fun setupEnvironment(environment: KotlinCoreEnvironment, testDataFile: File, files: List<TestFile>) {
@@ -57,11 +57,12 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase {
}
@Override
@SuppressWarnings("unchecked")
protected void doMultiFileTest(
@NotNull File wholeFile,
@NotNull List<? extends TestFile> files
) throws Exception {
doMultiFileTest(wholeFile, (List<TestFile>)files, false);
doMultiFileTest(wholeFile, (List<TestFile>) files, false);
}
private void doBytecodeListingTest(@NotNull File wholeFile) throws Exception {
@@ -434,7 +434,7 @@ abstract class AbstractCheckLocalVariablesTableTest : CodegenTestCase() {
// conflicting types are represented with a CONFLICT type
// which will never match a read instruction or a type in
// a locals table.
if (!areCompatible(index, it, type)) {
if (!areCompatible(it, type)) {
currentLocals[index] = "CONFLICT"
}
}
@@ -450,11 +450,11 @@ abstract class AbstractCheckLocalVariablesTableTest : CodegenTestCase() {
// We only check that there is no confusion between object types and basic types.
// Therefore, we map all arrays types to type Object when comparing.
private fun checkCompatible(index: Int, type0: String, type1: String) {
if (areCompatible(index, type0, type1)) return
if (areCompatible(type0, type1)) return
throw Exception("Incompatible types for local $index: $type0 and $type1")
}
private fun areCompatible(index: Int, type0: String, type1: String): Boolean {
private fun areCompatible(type0: String, type1: String): Boolean {
val t0 = if (type0.startsWith("[")) "Ljava/lang/Object;" else type0
val t1 = if (type1.startsWith("[")) "Ljava/lang/Object;" else type1
if (t0.equals(t1)) return true
@@ -28,7 +28,6 @@ abstract class AbstractCompileKotlinAgainstInlineKotlinTest : AbstractCompileKot
)
try {
val allGeneratedFiles = factory1.asList() + factory2.asList()
val sourceFiles = factory1.inputFiles + factory2.inputFiles
InlineTestUtil.checkNoCallsToInline(allGeneratedFiles.filterClassFiles(), files)
SMAPTestUtil.checkSMAP(files, allGeneratedFiles.filterClassFiles(), true)
} catch (e: Throwable) {
@@ -49,6 +49,7 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest
}
@Override
@SuppressWarnings("unchecked")
protected void doMultiFileTest(@NotNull File wholeFile, @NotNull List<? extends TestFile> files) {
boolean isIgnored = InTextDirectivesUtils.isIgnoredTarget(getBackend(), wholeFile);
doTwoFileTest((List<TestFile>) files, !isIgnored);
@@ -594,13 +594,14 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test
boolean parseDirectivesPerFiles,
@NotNull TargetBackend backend
) {
List testFiles = TestFiles.createTestFiles(file.getName(), expectedText, new TestFiles.TestFileFactoryNoModules<TestFile>() {
@NotNull
@Override
public TestFile create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) {
return new TestFile(fileName, text, directives);
}
}, false, coroutinesPackage, parseDirectivesPerFiles);
List<TestFile> testFiles =
TestFiles.createTestFiles(file.getName(), expectedText, new TestFiles.TestFileFactoryNoModules<TestFile>() {
@NotNull
@Override
public TestFile create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) {
return new TestFile(fileName, text, directives);
}
}, false, coroutinesPackage, parseDirectivesPerFiles);
if (InTextDirectivesUtils.isDirectiveDefined(expectedText, "WITH_HELPERS")) {
testFiles.add(new TestFile("CodegenTestHelpers.kt", TestHelperGeneratorKt.createTextForCodegenTestHelpers(backend)));
}
@@ -56,7 +56,9 @@ public abstract class AbstractWriteFlagsTest extends CodegenTestCase {
@Override
protected void doMultiFileTest(@NotNull File wholeFile, @NotNull List<? extends TestFile> files) throws Exception {
compile((List<TestFile>)files);
@SuppressWarnings("unchecked")
List<TestFile> testFiles = (List<TestFile>) files;
compile(testFiles);
String fileText = FileUtil.loadFile(wholeFile, true);
@@ -157,7 +157,7 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
val dependencies = ArrayList<ModuleInfo>()
dependencies.add(module)
for (dependency in testModule.dependencies) {
dependencies.add(modules[dependency]!!)
dependencies.add(modules[dependency as TestModule?]!!)
}
@@ -337,9 +337,6 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() {
for (previousNode in node.previousNodes) {
if (previousNode.owner != graph) continue
if (!node.incomingEdges.getValue(previousNode).isBack) {
if (previousNode !in visited) {
val x = 1
}
assertTrue(previousNode in visited)
}
}
@@ -103,7 +103,7 @@ abstract class AbstractFirDiagnosticsWithLightTreeTest : AbstractFirDiagnosticsT
return groupBy { it }.mapValues { (_, value) -> value.size }
}
private class MissingDiagnostic(val startOffset: Int, val name: String, diff: Int, ktFile: KtFile) {
private class MissingDiagnostic(val startOffset: Int, val name: String, diff: Int, @Suppress("UNUSED_PARAMETER") ktFile: KtFile) {
val kind: Kind = if (diff > 0) Kind.WasExpected else Kind.IsActual
val count: Int = abs(diff)
@@ -221,7 +221,7 @@ class FirResolveBench(val withProgress: Boolean) {
) {
fileCount += firFiles.size
try {
for ((stage, processor) in processors.withIndex()) {
for ((_, processor) in processors.withIndex()) {
//println("Starting stage #$stage. $transformer")
val firFileSequence = if (withProgress) firFiles.progress(" ~ ") else firFiles.asSequence()
runStage(processor, firFileSequence)
@@ -140,6 +140,7 @@ inline class TableTimeUnitConversion(val value: Double) {
infix fun Long.from(from: TableTimeUnit) = TableTimeUnitConversion(this / from.nsMultiplier)
@Suppress("NOTHING_TO_INLINE")
inline fun RTableContext.RTableRowContext.timeCell(
time: Long,
outputUnit: TableTimeUnit = TableTimeUnit.MS,
@@ -185,6 +185,7 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
}
assert(configurationKeyField != null) { "Expected [+|-][namespace.]configurationKey, got: $flag" }
try {
@Suppress("UNCHECKED_CAST")
val configurationKey = configurationKeyField!![null] as CompilerConfigurationKey<Boolean>
configuration.put(configurationKey, flagEnabled)
} catch (e: java.lang.Exception) {
@@ -716,8 +716,7 @@ public class KotlinTestUtils {
runTestImpl(testWithCustomIgnoreDirective(test, TargetBackend.ANY, IGNORE_BACKEND_DIRECTIVE_PREFIX), testCase, testDataFile);
}
public static void runTest(@NotNull TestCase testCase, @NotNull Function0 test) {
//noinspection unchecked
public static void runTest(@NotNull TestCase testCase, @NotNull Function0<Unit> test) {
MuteWithDatabaseKt.runTest(testCase, test);
}
@@ -564,10 +564,10 @@ public abstract class KtUsefulTestCase extends TestCase {
assertOrderedEquals("", actual, expected);
}
@SuppressWarnings("unchecked")
public static <T> void assertOrderedEquals(@NotNull String errorMsg,
@NotNull Iterable<? extends T> actual,
@NotNull Iterable<? extends T> expected) {
//noinspection unchecked
assertOrderedEquals(errorMsg, actual, expected, Equality.CANONICAL);
}
@@ -1008,8 +1008,8 @@ public abstract class KtUsefulTestCase extends TestCase {
* @param exceptionCase Block annotated with some exception type
* @param expectedErrorMsg expected error message
*/
@SuppressWarnings("unchecked")
protected void assertException(@NotNull AbstractExceptionCase exceptionCase, @Nullable String expectedErrorMsg) {
//noinspection unchecked
assertExceptionOccurred(true, exceptionCase, expectedErrorMsg);
}
@@ -441,10 +441,10 @@ public abstract class KtUsefulTestCase extends TestCase {
assertOrderedEquals("", actual, expected);
}
@SuppressWarnings("unchecked")
public static <T> void assertOrderedEquals(@NotNull String errorMsg,
@NotNull Iterable<? extends T> actual,
@NotNull Iterable<? extends T> expected) {
//noinspection unchecked
assertOrderedEquals(errorMsg, actual, expected, Equality.CANONICAL);
}
@@ -851,8 +851,8 @@ public abstract class KtUsefulTestCase extends TestCase {
* @param exceptionCase Block annotated with some exception type
* @param expectedErrorMsg expected error message
*/
@SuppressWarnings("unchecked")
protected void assertException(@NotNull AbstractExceptionCase exceptionCase, @Nullable String expectedErrorMsg) {
//noinspection unchecked
assertExceptionOccurred(true, exceptionCase, expectedErrorMsg);
}
@@ -567,10 +567,10 @@ public abstract class KtUsefulTestCase extends TestCase {
assertOrderedEquals("", actual, expected);
}
@SuppressWarnings("unchecked")
public static <T> void assertOrderedEquals(@NotNull String errorMsg,
@NotNull Iterable<? extends T> actual,
@NotNull Iterable<? extends T> expected) {
//noinspection unchecked
assertOrderedEquals(errorMsg, actual, expected, Equality.CANONICAL);
}
@@ -1011,8 +1011,8 @@ public abstract class KtUsefulTestCase extends TestCase {
* @param exceptionCase Block annotated with some exception type
* @param expectedErrorMsg expected error message
*/
@SuppressWarnings("unchecked")
protected void assertException(@NotNull AbstractExceptionCase exceptionCase, @Nullable String expectedErrorMsg) {
//noinspection unchecked
assertExceptionOccurred(true, exceptionCase, expectedErrorMsg);
}
@@ -556,10 +556,10 @@ public abstract class KtUsefulTestCase extends TestCase {
assertOrderedEquals("", actual, expected);
}
@SuppressWarnings("unchecked")
public static <T> void assertOrderedEquals(@NotNull String errorMsg,
@NotNull Iterable<? extends T> actual,
@NotNull Iterable<? extends T> expected) {
//noinspection unchecked
assertOrderedEquals(errorMsg, actual, expected, Equality.CANONICAL);
}
@@ -1000,8 +1000,8 @@ public abstract class KtUsefulTestCase extends TestCase {
* @param exceptionCase Block annotated with some exception type
* @param expectedErrorMsg expected error message
*/
@SuppressWarnings("unchecked")
protected void assertException(@NotNull AbstractExceptionCase exceptionCase, @Nullable String expectedErrorMsg) {
//noinspection unchecked
assertExceptionOccurred(true, exceptionCase, expectedErrorMsg);
}