[Test] Migrate AbstractExtendedFirDiagnosticsTest to new infrastructure
This commit is contained in:
committed by
TeamCityServer
parent
a276d05917
commit
298e27bdac
-431
@@ -1,431 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.fir;
|
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
|
||||||
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
|
||||||
import org.jetbrains.kotlin.test.TestMetadata;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
|
|
||||||
@SuppressWarnings("all")
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public class ExtendedFirDiagnosticsTestGenerated extends AbstractExtendedFirDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInExtendedCheckers() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("ArrayEqualityCanBeReplacedWithEquals.kt")
|
|
||||||
public void testArrayEqualityCanBeReplacedWithEquals() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/ArrayEqualityCanBeReplacedWithEquals.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("CanBeValChecker.kt")
|
|
||||||
public void testCanBeValChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/CanBeValChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantExplicitTypeChecker.kt")
|
|
||||||
public void testRedundantExplicitTypeChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantExplicitTypeChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantModalityModifierChecker.kt")
|
|
||||||
public void testRedundantModalityModifierChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantModalityModifierChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantReturnUnitTypeChecker.kt")
|
|
||||||
public void testRedundantReturnUnitTypeChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantReturnUnitTypeChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantSetterParameterTypeChecker.kt")
|
|
||||||
public void testRedundantSetterParameterTypeChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantSetterParameterTypeChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantSingleExpressionStringTemplateChecker.kt")
|
|
||||||
public void testRedundantSingleExpressionStringTemplateChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantVisibilityModifierChecker.kt")
|
|
||||||
public void testRedundantVisibilityModifierChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantVisibilityModifierChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class CanBeReplacedWithOperatorAssignment extends AbstractExtendedFirDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInCanBeReplacedWithOperatorAssignment() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("BasicTest.kt")
|
|
||||||
public void testBasicTest() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/BasicTest.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("ComplexExpression.kt")
|
|
||||||
public void testComplexExpression() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/ComplexExpression.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("flexibleTypeBug.kt")
|
|
||||||
public void testFlexibleTypeBug() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/flexibleTypeBug.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("illegalMultipleOperators.kt")
|
|
||||||
public void testIllegalMultipleOperators() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/illegalMultipleOperators.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("illegalMultipleOperatorsMiddle.kt")
|
|
||||||
public void testIllegalMultipleOperatorsMiddle() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/illegalMultipleOperatorsMiddle.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("invalidSubtraction.kt")
|
|
||||||
public void testInvalidSubtraction() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/invalidSubtraction.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("list.kt")
|
|
||||||
public void testList() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/list.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("logicOperators.kt")
|
|
||||||
public void testLogicOperators() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/logicOperators.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("multipleOperators.kt")
|
|
||||||
public void testMultipleOperators() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/multipleOperators.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("multipleOperatorsRightSideRepeat.kt")
|
|
||||||
public void testMultipleOperatorsRightSideRepeat() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/multipleOperatorsRightSideRepeat.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("mutableList.kt")
|
|
||||||
public void testMutableList() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/mutableList.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("nonCommutativeRepeat.kt")
|
|
||||||
public void testNonCommutativeRepeat() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/nonCommutativeRepeat.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("nonRepeatingAssignment.kt")
|
|
||||||
public void testNonRepeatingAssignment() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/nonRepeatingAssignment.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("OperatorAssignment.kt")
|
|
||||||
public void testOperatorAssignment() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/OperatorAssignment.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("plusAssignConflict.kt")
|
|
||||||
public void testPlusAssignConflict() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/plusAssignConflict.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("rightSideRepeat.kt")
|
|
||||||
public void testRightSideRepeat() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/rightSideRepeat.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("simpleAssign.kt")
|
|
||||||
public void testSimpleAssign() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/simpleAssign.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("validAddition.kt")
|
|
||||||
public void testValidAddition() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/validAddition.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("validSubtraction.kt")
|
|
||||||
public void testValidSubtraction() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/validSubtraction.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/emptyRangeChecker")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class EmptyRangeChecker extends AbstractExtendedFirDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInEmptyRangeChecker() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/emptyRangeChecker"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NoWarning.kt")
|
|
||||||
public void testNoWarning() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/emptyRangeChecker/NoWarning.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("Warning.kt")
|
|
||||||
public void testWarning() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/emptyRangeChecker/Warning.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class RedundantCallOfConversionMethod extends AbstractExtendedFirDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInRedundantCallOfConversionMethod() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("booleanToInt.kt")
|
|
||||||
public void testBooleanToInt() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/booleanToInt.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("byte.kt")
|
|
||||||
public void testByte() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/byte.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("char.kt")
|
|
||||||
public void testChar() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/char.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("double.kt")
|
|
||||||
public void testDouble() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/double.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("float.kt")
|
|
||||||
public void testFloat() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/float.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("int.kt")
|
|
||||||
public void testInt() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/int.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("long.kt")
|
|
||||||
public void testLong() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/long.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("nullable.kt")
|
|
||||||
public void testNullable() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/nullable.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("nullable2.kt")
|
|
||||||
public void testNullable2() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/nullable2.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("safeString.kt")
|
|
||||||
public void testSafeString() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/safeString.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("safeString2.kt")
|
|
||||||
public void testSafeString2() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/safeString2.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("short.kt")
|
|
||||||
public void testShort() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/short.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("string.kt")
|
|
||||||
public void testString() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/string.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("StringTemplate.kt")
|
|
||||||
public void testStringTemplate() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/StringTemplate.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("toOtherType.kt")
|
|
||||||
public void testToOtherType() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/toOtherType.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("uByte.kt")
|
|
||||||
public void testUByte() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/uByte.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("uInt.kt")
|
|
||||||
public void testUInt() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/uInt.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("uLong.kt")
|
|
||||||
public void testULong() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/uLong.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("uShort.kt")
|
|
||||||
public void testUShort() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/uShort.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("variable.kt")
|
|
||||||
public void testVariable() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/variable.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/unused")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class Unused extends AbstractExtendedFirDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInUnused() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/unused"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("classProperty.kt")
|
|
||||||
public void testClassProperty() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/classProperty.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("invoke.kt")
|
|
||||||
public void testInvoke() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/invoke.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("lambda.kt")
|
|
||||||
public void testLambda() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/lambda.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("localVariable.kt")
|
|
||||||
public void testLocalVariable() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/localVariable.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("manyLocalVariables.kt")
|
|
||||||
public void testManyLocalVariables() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/manyLocalVariables.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("usedInAnnotationArguments.kt")
|
|
||||||
public void testUsedInAnnotationArguments() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/usedInAnnotationArguments.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("valueIsNeverRead.kt")
|
|
||||||
public void testValueIsNeverRead() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/valueIsNeverRead.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class UselessCallOnNotNullChecker extends AbstractExtendedFirDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInUselessCallOnNotNullChecker() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("Basic.kt")
|
|
||||||
public void testBasic() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/Basic.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NotNullType.kt")
|
|
||||||
public void testNotNullType() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NotNullType.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NotNullTypeChain.kt")
|
|
||||||
public void testNotNullTypeChain() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NotNullTypeChain.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NullOrBlankSafe.kt")
|
|
||||||
public void testNullOrBlankSafe() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NullOrBlankSafe.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NullOrEmpty.kt")
|
|
||||||
public void testNullOrEmpty() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NullOrEmpty.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NullOrEmptyFake.kt")
|
|
||||||
public void testNullOrEmptyFake() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NullOrEmptyFake.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NullOrEmptySafe.kt")
|
|
||||||
public void testNullOrEmptySafe() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NullOrEmptySafe.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("OrEmptyFake.kt")
|
|
||||||
public void testOrEmptyFake() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/OrEmptyFake.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("SafeCall.kt")
|
|
||||||
public void testSafeCall() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/SafeCall.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("Sequence.kt")
|
|
||||||
public void testSequence() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/Sequence.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("String.kt")
|
|
||||||
public void testString() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/String.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-431
@@ -1,431 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.fir;
|
|
||||||
|
|
||||||
import com.intellij.testFramework.TestDataPath;
|
|
||||||
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
|
||||||
import org.jetbrains.kotlin.test.TestMetadata;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
|
|
||||||
@SuppressWarnings("all")
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public class ExtendedFirWithLightTreeDiagnosticsTestGenerated extends AbstractExtendedFirWithLightTreeDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInExtendedCheckers() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("ArrayEqualityCanBeReplacedWithEquals.kt")
|
|
||||||
public void testArrayEqualityCanBeReplacedWithEquals() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/ArrayEqualityCanBeReplacedWithEquals.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("CanBeValChecker.kt")
|
|
||||||
public void testCanBeValChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/CanBeValChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantExplicitTypeChecker.kt")
|
|
||||||
public void testRedundantExplicitTypeChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantExplicitTypeChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantModalityModifierChecker.kt")
|
|
||||||
public void testRedundantModalityModifierChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantModalityModifierChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantReturnUnitTypeChecker.kt")
|
|
||||||
public void testRedundantReturnUnitTypeChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantReturnUnitTypeChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantSetterParameterTypeChecker.kt")
|
|
||||||
public void testRedundantSetterParameterTypeChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantSetterParameterTypeChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantSingleExpressionStringTemplateChecker.kt")
|
|
||||||
public void testRedundantSingleExpressionStringTemplateChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("RedundantVisibilityModifierChecker.kt")
|
|
||||||
public void testRedundantVisibilityModifierChecker() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantVisibilityModifierChecker.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class CanBeReplacedWithOperatorAssignment extends AbstractExtendedFirWithLightTreeDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInCanBeReplacedWithOperatorAssignment() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("BasicTest.kt")
|
|
||||||
public void testBasicTest() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/BasicTest.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("ComplexExpression.kt")
|
|
||||||
public void testComplexExpression() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/ComplexExpression.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("flexibleTypeBug.kt")
|
|
||||||
public void testFlexibleTypeBug() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/flexibleTypeBug.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("illegalMultipleOperators.kt")
|
|
||||||
public void testIllegalMultipleOperators() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/illegalMultipleOperators.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("illegalMultipleOperatorsMiddle.kt")
|
|
||||||
public void testIllegalMultipleOperatorsMiddle() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/illegalMultipleOperatorsMiddle.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("invalidSubtraction.kt")
|
|
||||||
public void testInvalidSubtraction() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/invalidSubtraction.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("list.kt")
|
|
||||||
public void testList() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/list.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("logicOperators.kt")
|
|
||||||
public void testLogicOperators() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/logicOperators.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("multipleOperators.kt")
|
|
||||||
public void testMultipleOperators() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/multipleOperators.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("multipleOperatorsRightSideRepeat.kt")
|
|
||||||
public void testMultipleOperatorsRightSideRepeat() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/multipleOperatorsRightSideRepeat.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("mutableList.kt")
|
|
||||||
public void testMutableList() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/mutableList.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("nonCommutativeRepeat.kt")
|
|
||||||
public void testNonCommutativeRepeat() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/nonCommutativeRepeat.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("nonRepeatingAssignment.kt")
|
|
||||||
public void testNonRepeatingAssignment() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/nonRepeatingAssignment.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("OperatorAssignment.kt")
|
|
||||||
public void testOperatorAssignment() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/OperatorAssignment.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("plusAssignConflict.kt")
|
|
||||||
public void testPlusAssignConflict() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/plusAssignConflict.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("rightSideRepeat.kt")
|
|
||||||
public void testRightSideRepeat() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/rightSideRepeat.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("simpleAssign.kt")
|
|
||||||
public void testSimpleAssign() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/simpleAssign.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("validAddition.kt")
|
|
||||||
public void testValidAddition() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/validAddition.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("validSubtraction.kt")
|
|
||||||
public void testValidSubtraction() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/canBeReplacedWithOperatorAssignment/validSubtraction.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/emptyRangeChecker")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class EmptyRangeChecker extends AbstractExtendedFirWithLightTreeDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInEmptyRangeChecker() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/emptyRangeChecker"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NoWarning.kt")
|
|
||||||
public void testNoWarning() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/emptyRangeChecker/NoWarning.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("Warning.kt")
|
|
||||||
public void testWarning() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/emptyRangeChecker/Warning.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class RedundantCallOfConversionMethod extends AbstractExtendedFirWithLightTreeDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInRedundantCallOfConversionMethod() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("booleanToInt.kt")
|
|
||||||
public void testBooleanToInt() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/booleanToInt.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("byte.kt")
|
|
||||||
public void testByte() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/byte.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("char.kt")
|
|
||||||
public void testChar() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/char.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("double.kt")
|
|
||||||
public void testDouble() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/double.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("float.kt")
|
|
||||||
public void testFloat() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/float.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("int.kt")
|
|
||||||
public void testInt() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/int.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("long.kt")
|
|
||||||
public void testLong() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/long.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("nullable.kt")
|
|
||||||
public void testNullable() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/nullable.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("nullable2.kt")
|
|
||||||
public void testNullable2() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/nullable2.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("safeString.kt")
|
|
||||||
public void testSafeString() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/safeString.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("safeString2.kt")
|
|
||||||
public void testSafeString2() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/safeString2.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("short.kt")
|
|
||||||
public void testShort() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/short.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("string.kt")
|
|
||||||
public void testString() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/string.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("StringTemplate.kt")
|
|
||||||
public void testStringTemplate() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/StringTemplate.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("toOtherType.kt")
|
|
||||||
public void testToOtherType() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/toOtherType.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("uByte.kt")
|
|
||||||
public void testUByte() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/uByte.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("uInt.kt")
|
|
||||||
public void testUInt() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/uInt.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("uLong.kt")
|
|
||||||
public void testULong() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/uLong.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("uShort.kt")
|
|
||||||
public void testUShort() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/uShort.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("variable.kt")
|
|
||||||
public void testVariable() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/variable.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/unused")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class Unused extends AbstractExtendedFirWithLightTreeDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInUnused() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/unused"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("classProperty.kt")
|
|
||||||
public void testClassProperty() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/classProperty.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("invoke.kt")
|
|
||||||
public void testInvoke() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/invoke.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("lambda.kt")
|
|
||||||
public void testLambda() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/lambda.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("localVariable.kt")
|
|
||||||
public void testLocalVariable() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/localVariable.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("manyLocalVariables.kt")
|
|
||||||
public void testManyLocalVariables() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/manyLocalVariables.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("usedInAnnotationArguments.kt")
|
|
||||||
public void testUsedInAnnotationArguments() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/usedInAnnotationArguments.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("valueIsNeverRead.kt")
|
|
||||||
public void testValueIsNeverRead() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/unused/valueIsNeverRead.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker")
|
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
|
||||||
public static class UselessCallOnNotNullChecker extends AbstractExtendedFirWithLightTreeDiagnosticsTest {
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
|
||||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testAllFilesPresentInUselessCallOnNotNullChecker() throws Exception {
|
|
||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("Basic.kt")
|
|
||||||
public void testBasic() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/Basic.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NotNullType.kt")
|
|
||||||
public void testNotNullType() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NotNullType.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NotNullTypeChain.kt")
|
|
||||||
public void testNotNullTypeChain() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NotNullTypeChain.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NullOrBlankSafe.kt")
|
|
||||||
public void testNullOrBlankSafe() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NullOrBlankSafe.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NullOrEmpty.kt")
|
|
||||||
public void testNullOrEmpty() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NullOrEmpty.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NullOrEmptyFake.kt")
|
|
||||||
public void testNullOrEmptyFake() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NullOrEmptyFake.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("NullOrEmptySafe.kt")
|
|
||||||
public void testNullOrEmptySafe() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/NullOrEmptySafe.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("OrEmptyFake.kt")
|
|
||||||
public void testOrEmptyFake() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/OrEmptyFake.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("SafeCall.kt")
|
|
||||||
public void testSafeCall() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/SafeCall.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("Sequence.kt")
|
|
||||||
public void testSequence() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/Sequence.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("String.kt")
|
|
||||||
public void testString() throws Exception {
|
|
||||||
runTest("compiler/fir/analysis-tests/testData/extendedCheckers/UselessCallOnNotNullChecker/String.kt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+413
@@ -1685,6 +1685,419 @@ public class LazyBodyIsNotTouchedTilContractsPhaseTestGenerated extends Abstract
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/fir/analysis-tests/testData/resolve/extendedCheckers")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class ExtendedCheckers extends AbstractLazyBodyIsNotTouchedTilContractsPhaseTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInExtendedCheckers() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/resolve/extendedCheckers"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ArrayEqualityCanBeReplacedWithEquals.kt")
|
||||||
|
public void testArrayEqualityCanBeReplacedWithEquals() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/ArrayEqualityCanBeReplacedWithEquals.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("CanBeValChecker.kt")
|
||||||
|
public void testCanBeValChecker() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/CanBeValChecker.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("RedundantExplicitTypeChecker.kt")
|
||||||
|
public void testRedundantExplicitTypeChecker() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantExplicitTypeChecker.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("RedundantModalityModifierChecker.kt")
|
||||||
|
public void testRedundantModalityModifierChecker() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantModalityModifierChecker.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("RedundantReturnUnitTypeChecker.kt")
|
||||||
|
public void testRedundantReturnUnitTypeChecker() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantReturnUnitTypeChecker.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("RedundantSetterParameterTypeChecker.kt")
|
||||||
|
public void testRedundantSetterParameterTypeChecker() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSetterParameterTypeChecker.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("RedundantSingleExpressionStringTemplateChecker.kt")
|
||||||
|
public void testRedundantSingleExpressionStringTemplateChecker() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantSingleExpressionStringTemplateChecker.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("RedundantVisibilityModifierChecker.kt")
|
||||||
|
public void testRedundantVisibilityModifierChecker() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantVisibilityModifierChecker.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class CanBeReplacedWithOperatorAssignment extends AbstractLazyBodyIsNotTouchedTilContractsPhaseTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInCanBeReplacedWithOperatorAssignment() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("BasicTest.kt")
|
||||||
|
public void testBasicTest() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/BasicTest.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ComplexExpression.kt")
|
||||||
|
public void testComplexExpression() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/ComplexExpression.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("flexibleTypeBug.kt")
|
||||||
|
public void testFlexibleTypeBug() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/flexibleTypeBug.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("illegalMultipleOperators.kt")
|
||||||
|
public void testIllegalMultipleOperators() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/illegalMultipleOperators.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("illegalMultipleOperatorsMiddle.kt")
|
||||||
|
public void testIllegalMultipleOperatorsMiddle() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/illegalMultipleOperatorsMiddle.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("invalidSubtraction.kt")
|
||||||
|
public void testInvalidSubtraction() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/invalidSubtraction.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("list.kt")
|
||||||
|
public void testList() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/list.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("logicOperators.kt")
|
||||||
|
public void testLogicOperators() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/logicOperators.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("multipleOperators.kt")
|
||||||
|
public void testMultipleOperators() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/multipleOperators.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("multipleOperatorsRightSideRepeat.kt")
|
||||||
|
public void testMultipleOperatorsRightSideRepeat() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/multipleOperatorsRightSideRepeat.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("mutableList.kt")
|
||||||
|
public void testMutableList() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/mutableList.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nonCommutativeRepeat.kt")
|
||||||
|
public void testNonCommutativeRepeat() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/nonCommutativeRepeat.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nonRepeatingAssignment.kt")
|
||||||
|
public void testNonRepeatingAssignment() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/nonRepeatingAssignment.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("OperatorAssignment.kt")
|
||||||
|
public void testOperatorAssignment() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/OperatorAssignment.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("plusAssignConflict.kt")
|
||||||
|
public void testPlusAssignConflict() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/plusAssignConflict.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("rightSideRepeat.kt")
|
||||||
|
public void testRightSideRepeat() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/rightSideRepeat.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("simpleAssign.kt")
|
||||||
|
public void testSimpleAssign() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/simpleAssign.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("validAddition.kt")
|
||||||
|
public void testValidAddition() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/validAddition.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("validSubtraction.kt")
|
||||||
|
public void testValidSubtraction() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/canBeReplacedWithOperatorAssignment/validSubtraction.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/emptyRangeChecker")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class EmptyRangeChecker extends AbstractLazyBodyIsNotTouchedTilContractsPhaseTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInEmptyRangeChecker() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/emptyRangeChecker"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("NoWarning.kt")
|
||||||
|
public void testNoWarning() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/emptyRangeChecker/NoWarning.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("Warning.kt")
|
||||||
|
public void testWarning() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/emptyRangeChecker/Warning.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class RedundantCallOfConversionMethod extends AbstractLazyBodyIsNotTouchedTilContractsPhaseTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInRedundantCallOfConversionMethod() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("booleanToInt.kt")
|
||||||
|
public void testBooleanToInt() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/booleanToInt.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("byte.kt")
|
||||||
|
public void testByte() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/byte.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("char.kt")
|
||||||
|
public void testChar() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/char.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("double.kt")
|
||||||
|
public void testDouble() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/double.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("float.kt")
|
||||||
|
public void testFloat() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/float.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("int.kt")
|
||||||
|
public void testInt() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/int.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("long.kt")
|
||||||
|
public void testLong() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/long.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nullable.kt")
|
||||||
|
public void testNullable() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/nullable.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nullable2.kt")
|
||||||
|
public void testNullable2() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/nullable2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("safeString.kt")
|
||||||
|
public void testSafeString() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/safeString.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("safeString2.kt")
|
||||||
|
public void testSafeString2() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/safeString2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("short.kt")
|
||||||
|
public void testShort() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/short.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("string.kt")
|
||||||
|
public void testString() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/string.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("StringTemplate.kt")
|
||||||
|
public void testStringTemplate() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/StringTemplate.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("toOtherType.kt")
|
||||||
|
public void testToOtherType() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/toOtherType.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("uByte.kt")
|
||||||
|
public void testUByte() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/uByte.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("uInt.kt")
|
||||||
|
public void testUInt() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/uInt.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("uLong.kt")
|
||||||
|
public void testULong() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/uLong.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("uShort.kt")
|
||||||
|
public void testUShort() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/uShort.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("variable.kt")
|
||||||
|
public void testVariable() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantCallOfConversionMethod/variable.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/unused")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Unused extends AbstractLazyBodyIsNotTouchedTilContractsPhaseTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInUnused() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/unused"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("classProperty.kt")
|
||||||
|
public void testClassProperty() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/unused/classProperty.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("invoke.kt")
|
||||||
|
public void testInvoke() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/unused/invoke.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("lambda.kt")
|
||||||
|
public void testLambda() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/unused/lambda.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("localVariable.kt")
|
||||||
|
public void testLocalVariable() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/unused/localVariable.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("manyLocalVariables.kt")
|
||||||
|
public void testManyLocalVariables() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/unused/manyLocalVariables.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("usedInAnnotationArguments.kt")
|
||||||
|
public void testUsedInAnnotationArguments() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/unused/usedInAnnotationArguments.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("valueIsNeverRead.kt")
|
||||||
|
public void testValueIsNeverRead() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/unused/valueIsNeverRead.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class UselessCallOnNotNullChecker extends AbstractLazyBodyIsNotTouchedTilContractsPhaseTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInUselessCallOnNotNullChecker() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("Basic.kt")
|
||||||
|
public void testBasic() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/Basic.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("NotNullType.kt")
|
||||||
|
public void testNotNullType() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/NotNullType.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("NotNullTypeChain.kt")
|
||||||
|
public void testNotNullTypeChain() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/NotNullTypeChain.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("NullOrBlankSafe.kt")
|
||||||
|
public void testNullOrBlankSafe() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/NullOrBlankSafe.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("NullOrEmpty.kt")
|
||||||
|
public void testNullOrEmpty() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/NullOrEmpty.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("NullOrEmptyFake.kt")
|
||||||
|
public void testNullOrEmptyFake() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/NullOrEmptyFake.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("NullOrEmptySafe.kt")
|
||||||
|
public void testNullOrEmptySafe() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/NullOrEmptySafe.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("OrEmptyFake.kt")
|
||||||
|
public void testOrEmptyFake() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/OrEmptyFake.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("SafeCall.kt")
|
||||||
|
public void testSafeCall() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/SafeCall.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("Sequence.kt")
|
||||||
|
public void testSequence() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/Sequence.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("String.kt")
|
||||||
|
public void testString() throws Exception {
|
||||||
|
runTest("compiler/fir/analysis-tests/testData/resolve/extendedCheckers/UselessCallOnNotNullChecker/String.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/fir/analysis-tests/testData/resolve/fromBuilder")
|
@TestMetadata("compiler/fir/analysis-tests/testData/resolve/fromBuilder")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
Vendored
-17
@@ -1,17 +0,0 @@
|
|||||||
// WITH_RUNTIME
|
|
||||||
|
|
||||||
fun foo(p: Int) {
|
|
||||||
val a = arrayOf(1, 2, 3)
|
|
||||||
val b = arrayOf(3, 2, 1)
|
|
||||||
|
|
||||||
if (a <!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS!>==<!> b) { }
|
|
||||||
}
|
|
||||||
|
|
||||||
fun testsFromIdea() {
|
|
||||||
val a = arrayOf("a")
|
|
||||||
val b = a
|
|
||||||
val c: Any? = null
|
|
||||||
a <!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS!>==<!> b
|
|
||||||
a == c
|
|
||||||
a <!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS!>!=<!> b
|
|
||||||
}
|
|
||||||
Vendored
-5
@@ -1,5 +0,0 @@
|
|||||||
// WITH_RUNTIME
|
|
||||||
// IS_APPLICABLE: false
|
|
||||||
fun foo(s: String?) {
|
|
||||||
val <!UNUSED_VARIABLE!>t<!>: String = s.toString()
|
|
||||||
}
|
|
||||||
compiler/fir/analysis-tests/testData/extendedCheckers/RedundantCallOfConversionMethod/safeString2.kt
Vendored
-6
@@ -1,6 +0,0 @@
|
|||||||
// WITH_RUNTIME
|
|
||||||
data class Foo(val name: String)
|
|
||||||
|
|
||||||
fun test(foo: Foo?) {
|
|
||||||
val <!UNUSED_VARIABLE!>s<!>: String? = foo?.name?.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toString()<!>
|
|
||||||
}
|
|
||||||
Vendored
-4
@@ -1,4 +0,0 @@
|
|||||||
// WITH_RUNTIME
|
|
||||||
fun test(i: UByte) {
|
|
||||||
val <!UNUSED_VARIABLE!>foo<!> = i.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toUByte()<!>
|
|
||||||
}
|
|
||||||
Vendored
-4
@@ -1,4 +0,0 @@
|
|||||||
// WITH_RUNTIME
|
|
||||||
fun test(i: UInt) {
|
|
||||||
val <!UNUSED_VARIABLE!>foo<!> = i.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toUInt()<!>
|
|
||||||
}
|
|
||||||
Vendored
-4
@@ -1,4 +0,0 @@
|
|||||||
// WITH_RUNTIME
|
|
||||||
fun test(i: ULong) {
|
|
||||||
val <!UNUSED_VARIABLE!>foo<!> = i.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toULong()<!>
|
|
||||||
}
|
|
||||||
Vendored
-4
@@ -1,4 +0,0 @@
|
|||||||
// WITH_RUNTIME
|
|
||||||
fun test(i: UShort) {
|
|
||||||
val <!UNUSED_VARIABLE!>foo<!> = i.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toUShort()<!>
|
|
||||||
}
|
|
||||||
-76
@@ -1,76 +0,0 @@
|
|||||||
import kotlin.reflect.KClass
|
|
||||||
|
|
||||||
@Target(AnnotationTarget.TYPE)
|
|
||||||
annotation class A
|
|
||||||
|
|
||||||
fun annotated() {
|
|
||||||
val <!UNUSED_VARIABLE!>x<!>: @A Int /* NOT redundant */ = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
object SomeObj
|
|
||||||
fun fer() {
|
|
||||||
val <!UNUSED_VARIABLE!>x<!>: Any /* NOT redundant */ = SomeObj
|
|
||||||
}
|
|
||||||
|
|
||||||
fun f2(y: String?): String {
|
|
||||||
val <!UNUSED_VARIABLE!>f<!>: KClass<*> = (y ?: return "")::class
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
object Obj {}
|
|
||||||
|
|
||||||
interface IA
|
|
||||||
interface IB : IA
|
|
||||||
|
|
||||||
fun IA.extFun(x: IB) {}
|
|
||||||
|
|
||||||
fun testWithExpectedType() {
|
|
||||||
val <!UNUSED_VARIABLE!>extFun_AB_A<!>: IA.(IB) -> Unit = IA::extFun
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Point {
|
|
||||||
val x: Int
|
|
||||||
val y: Int
|
|
||||||
}
|
|
||||||
|
|
||||||
class PointImpl(override val x: Int, override val y: Int) : Point
|
|
||||||
|
|
||||||
fun foo() {
|
|
||||||
val <!UNUSED_VARIABLE!>s<!>: <!REDUNDANT_EXPLICIT_TYPE!>String<!> = "Hello ${10+1}"
|
|
||||||
val <!UNUSED_VARIABLE!>str<!>: String? = ""
|
|
||||||
|
|
||||||
val <!UNUSED_VARIABLE!>o<!>: <!REDUNDANT_EXPLICIT_TYPE!>Obj<!> = Obj
|
|
||||||
|
|
||||||
val <!UNUSED_VARIABLE!>p<!>: Point = PointImpl(1, 2)
|
|
||||||
val <!UNUSED_VARIABLE!>a<!>: <!REDUNDANT_EXPLICIT_TYPE!>Boolean<!> = true
|
|
||||||
val <!UNUSED_VARIABLE!>i<!>: Int = 2 * 2
|
|
||||||
val <!UNUSED_VARIABLE!>l<!>: <!REDUNDANT_EXPLICIT_TYPE!>Long<!> = 1234567890123L
|
|
||||||
val <!UNUSED_VARIABLE!>s<!>: String? = null
|
|
||||||
val <!UNUSED_VARIABLE!>sh<!>: Short = 42
|
|
||||||
|
|
||||||
val <!UNUSED_VARIABLE!>integer<!>: <!REDUNDANT_EXPLICIT_TYPE!>Int<!> = 42
|
|
||||||
val <!UNUSED_VARIABLE!>piFloat<!>: <!REDUNDANT_EXPLICIT_TYPE!>Float<!> = 3.14f
|
|
||||||
val <!UNUSED_VARIABLE!>piDouble<!>: <!REDUNDANT_EXPLICIT_TYPE!>Double<!> = 3.14
|
|
||||||
val <!UNUSED_VARIABLE!>charZ<!>: <!REDUNDANT_EXPLICIT_TYPE!>Char<!> = 'z'
|
|
||||||
<!CAN_BE_VAL!>var<!> <!UNUSED_VARIABLE!>alpha<!>: <!REDUNDANT_EXPLICIT_TYPE!>Int<!> = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
fun test(boolean: Boolean) {
|
|
||||||
val <!UNUSED_VARIABLE!>expectedLong<!>: Long = if (boolean) {
|
|
||||||
42
|
|
||||||
} else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class My {
|
|
||||||
val x: Int = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
val ZERO: Int = 0
|
|
||||||
|
|
||||||
fun main() {
|
|
||||||
val <!UNUSED_VARIABLE!>id<!>: Id = 11
|
|
||||||
}
|
|
||||||
|
|
||||||
typealias Id = Int
|
|
||||||
-85
@@ -1,85 +0,0 @@
|
|||||||
object O {
|
|
||||||
fun foo() {}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Interface
|
|
||||||
interface Interface {
|
|
||||||
// Questionable cuz compiler reports warning here in FE 1.0
|
|
||||||
<!REDUNDANT_MODALITY_MODIFIER!>open<!> val gav: Int
|
|
||||||
get() = 42
|
|
||||||
// Redundant
|
|
||||||
<!REDUNDANT_MODALITY_MODIFIER!>abstract<!> fun foo()
|
|
||||||
// error
|
|
||||||
private final fun bar() {}
|
|
||||||
|
|
||||||
<!REDUNDANT_MODALITY_MODIFIER!>open<!> fun goo() {}
|
|
||||||
<!REDUNDANT_MODALITY_MODIFIER!>abstract<!> fun tar()
|
|
||||||
|
|
||||||
// error
|
|
||||||
abstract fun too() {}
|
|
||||||
}
|
|
||||||
interface B {
|
|
||||||
<!REDUNDANT_MODALITY_MODIFIER!>abstract<!> var bar: Unit
|
|
||||||
<!REDUNDANT_MODALITY_MODIFIER!>abstract<!> fun foo()
|
|
||||||
}
|
|
||||||
interface Foo
|
|
||||||
|
|
||||||
expect abstract class AbstractClass : Foo {
|
|
||||||
abstract override fun foo()
|
|
||||||
|
|
||||||
abstract fun bar()
|
|
||||||
|
|
||||||
abstract val baz: Int
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Abstract
|
|
||||||
abstract class Base {
|
|
||||||
// Redundant final
|
|
||||||
<!REDUNDANT_MODALITY_MODIFIER!>final<!> fun foo() {}
|
|
||||||
// Abstract
|
|
||||||
abstract fun bar()
|
|
||||||
// Open
|
|
||||||
open val gav = 42
|
|
||||||
}
|
|
||||||
|
|
||||||
class FinalDerived : Base() {
|
|
||||||
// Redundant final
|
|
||||||
override <!REDUNDANT_MODALITY_MODIFIER!>final<!> fun bar() {}
|
|
||||||
// Non-final member in final class
|
|
||||||
override open val gav = 13
|
|
||||||
}
|
|
||||||
// Open
|
|
||||||
open class OpenDerived : Base() {
|
|
||||||
// Final
|
|
||||||
override final fun bar() {}
|
|
||||||
// Redundant open
|
|
||||||
override <!REDUNDANT_MODALITY_MODIFIER!>open<!> val gav = 13
|
|
||||||
}
|
|
||||||
// Redundant final
|
|
||||||
<!REDUNDANT_MODALITY_MODIFIER!>final<!> class Final
|
|
||||||
// Derived interface
|
|
||||||
interface Derived : Interface {
|
|
||||||
// Redundant
|
|
||||||
override <!REDUNDANT_MODALITY_MODIFIER!>open<!> fun foo() {}
|
|
||||||
// error
|
|
||||||
final class Nested
|
|
||||||
}
|
|
||||||
// Derived abstract class
|
|
||||||
abstract class AbstractDerived1(override final val gav: Int) : Interface {
|
|
||||||
// Redundant
|
|
||||||
override <!REDUNDANT_MODALITY_MODIFIER!>open<!> fun foo() {}
|
|
||||||
}
|
|
||||||
// Derived abstract class
|
|
||||||
abstract class AbstractDerived2 : Interface {
|
|
||||||
// Final
|
|
||||||
override final fun foo() {}
|
|
||||||
// Redundant
|
|
||||||
override <!REDUNDANT_MODALITY_MODIFIER!>open<!> val gav = 13
|
|
||||||
}
|
|
||||||
// Redundant abstract interface
|
|
||||||
abstract interface AbstractInterface
|
|
||||||
// Redundant final object
|
|
||||||
<!REDUNDANT_MODALITY_MODIFIER!>final<!> object FinalObject
|
|
||||||
// Open interface
|
|
||||||
open interface OpenInterface
|
|
||||||
Vendored
-86
@@ -1,86 +0,0 @@
|
|||||||
fun f() {
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>public<!> <!CAN_BE_VAL!>var<!> <!UNUSED_VARIABLE!>baz<!> = 0
|
|
||||||
class LocalClass {
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>internal<!> var foo = 0
|
|
||||||
}
|
|
||||||
LocalClass().foo = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
internal inline fun internal() {
|
|
||||||
f()
|
|
||||||
}
|
|
||||||
|
|
||||||
<!REDECLARATION!>class C {
|
|
||||||
internal val z = object {
|
|
||||||
fun foo() = 13
|
|
||||||
}
|
|
||||||
}<!>
|
|
||||||
|
|
||||||
class Foo2<
|
|
||||||
T1,
|
|
||||||
T2: T1,
|
|
||||||
> {
|
|
||||||
fun <T1,
|
|
||||||
T2, > foo2() {}
|
|
||||||
|
|
||||||
internal inner class B<T,T2,>
|
|
||||||
}
|
|
||||||
|
|
||||||
<!REDECLARATION!><!REDUNDANT_VISIBILITY_MODIFIER!>public<!> class C {
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>public<!> val foo: Int = 0
|
|
||||||
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>public<!> fun bar() {}
|
|
||||||
|
|
||||||
}<!>
|
|
||||||
|
|
||||||
open class D {
|
|
||||||
protected open fun willRemainProtected() {
|
|
||||||
}
|
|
||||||
|
|
||||||
protected open fun willBecomePublic() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class E : D() {
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>protected<!> override fun willRemainProtected() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public override fun willBecomePublic() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
enum class F <!REDUNDANT_VISIBILITY_MODIFIER!>private<!> constructor(val x: Int) {
|
|
||||||
FIRST(42)
|
|
||||||
}
|
|
||||||
|
|
||||||
sealed class G constructor(val y: Int) {
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>private<!> constructor(): this(42)
|
|
||||||
|
|
||||||
object H : G()
|
|
||||||
}
|
|
||||||
|
|
||||||
interface I {
|
|
||||||
fun bar()
|
|
||||||
}
|
|
||||||
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>public<!> var baz = 0
|
|
||||||
|
|
||||||
open class J {
|
|
||||||
protected val baz = 0
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>protected<!> get() = field * 2
|
|
||||||
var baf = 0
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>public<!> get() = 1
|
|
||||||
<!REDUNDANT_VISIBILITY_MODIFIER!>public<!> set(value) {
|
|
||||||
field = value
|
|
||||||
}
|
|
||||||
|
|
||||||
var buf = 0
|
|
||||||
private get() = 42
|
|
||||||
protected set(value) {
|
|
||||||
field = value
|
|
||||||
}
|
|
||||||
|
|
||||||
var bar = 0
|
|
||||||
get() = 3.1415926535
|
|
||||||
set(value) {}
|
|
||||||
}
|
|
||||||
Vendored
-5
@@ -1,5 +0,0 @@
|
|||||||
// WITH_RUNTIME
|
|
||||||
|
|
||||||
fun test(s: Sequence<Int>) {
|
|
||||||
val <!UNUSED_VARIABLE!>foo<!> = s.<!USELESS_CALL_ON_NOT_NULL!>orEmpty()<!>
|
|
||||||
}
|
|
||||||
-7
@@ -1,7 +0,0 @@
|
|||||||
fun goo() {
|
|
||||||
var a = 2
|
|
||||||
val b = 4
|
|
||||||
a <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> a + 1 + b
|
|
||||||
a <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> (a + 1)
|
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = a * b + 1
|
|
||||||
}
|
|
||||||
-5
@@ -1,5 +0,0 @@
|
|||||||
fun foo() {
|
|
||||||
var x = 0
|
|
||||||
<!CAN_BE_VAL!>var<!> y = 0
|
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>x<!> <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> x + y + 5
|
|
||||||
}
|
|
||||||
-5
@@ -1,5 +0,0 @@
|
|||||||
fun foo() {
|
|
||||||
var x = 0
|
|
||||||
<!CAN_BE_VAL!>var<!> y = 0
|
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>x<!> <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> y + x + 5
|
|
||||||
}
|
|
||||||
-8
@@ -1,8 +0,0 @@
|
|||||||
fun foo() {
|
|
||||||
var x = 0
|
|
||||||
x <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> x - 1 - 1
|
|
||||||
|
|
||||||
x <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> x / 1
|
|
||||||
x = 1 / x
|
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>x<!> <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> -1 + x
|
|
||||||
}
|
|
||||||
-4
@@ -1,4 +0,0 @@
|
|||||||
fun foo() {
|
|
||||||
var x = 0
|
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>x<!> <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> 1 + x
|
|
||||||
}
|
|
||||||
-5
@@ -1,5 +0,0 @@
|
|||||||
fun foo() {
|
|
||||||
var y = 0
|
|
||||||
val x = 0
|
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>y<!> <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> y + x
|
|
||||||
}
|
|
||||||
-4
@@ -1,4 +0,0 @@
|
|||||||
fun foo() {
|
|
||||||
var x = 0
|
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>x<!> <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> x + 1
|
|
||||||
}
|
|
||||||
-4
@@ -1,4 +0,0 @@
|
|||||||
fun foo() {
|
|
||||||
var x = 0
|
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>x<!> <!CAN_BE_REPLACED_WITH_OPERATOR_ASSIGNMENT!>=<!> x - 1
|
|
||||||
}
|
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
fun foo(p: Int) {
|
||||||
|
val a = arrayOf(1, 2, 3)
|
||||||
|
val b = arrayOf(3, 2, 1)
|
||||||
|
|
||||||
|
if (<!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS{LT}!>a <!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS{PSI}!>==<!> b<!>) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testsFromIdea() {
|
||||||
|
val a = arrayOf("a")
|
||||||
|
val b = a
|
||||||
|
val c: Any? = null
|
||||||
|
<!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS{LT}!>a <!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS{PSI}!>==<!> b<!>
|
||||||
|
a == c
|
||||||
|
<!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS{LT}!>a <!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS{PSI}!>!=<!> b<!>
|
||||||
|
}
|
||||||
+20
-20
@@ -4,8 +4,8 @@ import kotlin.reflect.KProperty
|
|||||||
import kotlin.properties.Delegates
|
import kotlin.properties.Delegates
|
||||||
|
|
||||||
fun testDelegator() {
|
fun testDelegator() {
|
||||||
var <!UNUSED_VARIABLE!>x<!>: Boolean by LocalFreezableVar(true)
|
<!UNUSED_VARIABLE{LT}!>var <!UNUSED_VARIABLE{PSI}!>x<!>: Boolean by LocalFreezableVar(true)<!>
|
||||||
var <!UNUSED_VARIABLE!>y<!> by LocalFreezableVar("")
|
<!UNUSED_VARIABLE{LT}!>var <!UNUSED_VARIABLE{PSI}!>y<!> by LocalFreezableVar("")<!>
|
||||||
}
|
}
|
||||||
|
|
||||||
class LocalFreezableVar<T>(private var value: T) {
|
class LocalFreezableVar<T>(private var value: T) {
|
||||||
@@ -23,7 +23,7 @@ operator fun C.plusAssign(a: Any) {}
|
|||||||
fun testOperatorAssignment() {
|
fun testOperatorAssignment() {
|
||||||
val c = C()
|
val c = C()
|
||||||
c += ""
|
c += ""
|
||||||
<!CAN_BE_VAL!>var<!> c1 = C()
|
<!CAN_BE_VAL{LT}!><!CAN_BE_VAL{PSI}!>var<!> c1 = C()<!>
|
||||||
<!ASSIGN_OPERATOR_AMBIGUITY!>c1 += ""<!>
|
<!ASSIGN_OPERATOR_AMBIGUITY!>c1 += ""<!>
|
||||||
|
|
||||||
var a = 1
|
var a = 1
|
||||||
@@ -33,7 +33,7 @@ fun testOperatorAssignment() {
|
|||||||
|
|
||||||
|
|
||||||
fun destructuringDeclaration() {
|
fun destructuringDeclaration() {
|
||||||
<!CAN_BE_VAL!>var<!> (v1, <!UNUSED_VARIABLE!>v2<!>) = getPair()
|
<!CAN_BE_VAL{LT}!><!CAN_BE_VAL{PSI}!>var<!> (v1, <!UNUSED_VARIABLE!>v2<!>) = getPair()<!>
|
||||||
print(v1)
|
print(v1)
|
||||||
|
|
||||||
var (v3, <!VARIABLE_NEVER_READ!>v4<!>) = getPair()
|
var (v3, <!VARIABLE_NEVER_READ!>v4<!>) = getPair()
|
||||||
@@ -49,11 +49,11 @@ fun destructuringDeclaration() {
|
|||||||
|
|
||||||
val (<!UNUSED_VARIABLE!>a<!>, <!UNUSED_VARIABLE!>b<!>, <!UNUSED_VARIABLE!>c<!>) = Triple(1, 1, 1)
|
val (<!UNUSED_VARIABLE!>a<!>, <!UNUSED_VARIABLE!>b<!>, <!UNUSED_VARIABLE!>c<!>) = Triple(1, 1, 1)
|
||||||
|
|
||||||
<!CAN_BE_VAL!>var<!> (<!UNUSED_VARIABLE!>x<!>, <!UNUSED_VARIABLE!>y<!>, <!UNUSED_VARIABLE!>z<!>) = Triple(1, 1, 1)
|
<!CAN_BE_VAL{LT}!><!CAN_BE_VAL{PSI}!>var<!> (<!UNUSED_VARIABLE!>x<!>, <!UNUSED_VARIABLE!>y<!>, <!UNUSED_VARIABLE!>z<!>) = Triple(1, 1, 1)<!>
|
||||||
}
|
}
|
||||||
|
|
||||||
fun stackOverflowBug() {
|
fun stackOverflowBug() {
|
||||||
<!CAN_BE_VAL!>var<!> <!VARIABLE_NEVER_READ!>a<!>: Int
|
<!CAN_BE_VAL{LT}, VARIABLE_NEVER_READ{LT}!><!CAN_BE_VAL{PSI}!>var<!> <!VARIABLE_NEVER_READ{PSI}!>a<!>: Int<!>
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 1
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 1
|
||||||
for (i in 1..10)
|
for (i in 1..10)
|
||||||
print(i)
|
print(i)
|
||||||
@@ -71,8 +71,8 @@ fun smth(flag: Boolean) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun withAnnotation(p: List<Any>) {
|
fun withAnnotation(p: List<Any>) {
|
||||||
@Suppress("UNCHECKED_CAST")
|
<!CAN_BE_VAL{LT}!>@Suppress("UNCHECKED_CAST")
|
||||||
<!CAN_BE_VAL!>var<!> v = p as List<String>
|
<!CAN_BE_VAL{PSI}!>var<!> v = p as List<String><!>
|
||||||
print(v)
|
print(v)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,9 +86,9 @@ fun getPair(): Pair<Int, String> = Pair(1, "1")
|
|||||||
fun listReceiver(p: List<String>) {}
|
fun listReceiver(p: List<String>) {}
|
||||||
|
|
||||||
fun withInitializer() {
|
fun withInitializer() {
|
||||||
var <!VARIABLE_NEVER_READ!>v1<!> = 1
|
<!VARIABLE_NEVER_READ{LT}!>var <!VARIABLE_NEVER_READ{PSI}!>v1<!> = 1<!>
|
||||||
var v2 = 2
|
var v2 = 2
|
||||||
<!CAN_BE_VAL!>var<!> v3 = 3
|
<!CAN_BE_VAL{LT}!><!CAN_BE_VAL{PSI}!>var<!> v3 = 3<!>
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>v1<!> = 1
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>v1<!> = 1
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>v2<!>++ // todo mark this UNUSED_CHANGED_VALUES
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>v2<!>++ // todo mark this UNUSED_CHANGED_VALUES
|
||||||
print(v3)
|
print(v3)
|
||||||
@@ -102,10 +102,10 @@ fun test() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun foo() {
|
fun foo() {
|
||||||
<!CAN_BE_VAL!>var<!> <!VARIABLE_NEVER_READ!>a<!>: Int
|
<!CAN_BE_VAL{LT}, VARIABLE_NEVER_READ{LT}!><!CAN_BE_VAL{PSI}!>var<!> <!VARIABLE_NEVER_READ{PSI}!>a<!>: Int<!>
|
||||||
val bool = true
|
val bool = true
|
||||||
if (bool) <!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 4 else <!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 42
|
if (bool) <!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 4 else <!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 42
|
||||||
val <!UNUSED_VARIABLE!>b<!>: String
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>b<!>: String<!>
|
||||||
|
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>bool<!> = false
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>bool<!> = false
|
||||||
}
|
}
|
||||||
@@ -116,7 +116,7 @@ fun cycles() {
|
|||||||
a--
|
a--
|
||||||
}
|
}
|
||||||
|
|
||||||
var <!VARIABLE_NEVER_READ!>b<!>: Int
|
<!VARIABLE_NEVER_READ{LT}!>var <!VARIABLE_NEVER_READ{PSI}!>b<!>: Int<!>
|
||||||
while (a < 10) {
|
while (a < 10) {
|
||||||
a++
|
a++
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>b<!> = a
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>b<!> = a
|
||||||
@@ -124,14 +124,14 @@ fun cycles() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun assignedTwice(p: Int) {
|
fun assignedTwice(p: Int) {
|
||||||
var <!VARIABLE_NEVER_READ!>v<!>: Int
|
<!VARIABLE_NEVER_READ{LT}!>var <!VARIABLE_NEVER_READ{PSI}!>v<!>: Int<!>
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>v<!> = 0
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>v<!> = 0
|
||||||
if (p > 0) <!ASSIGNED_VALUE_IS_NEVER_READ!>v<!> = 1
|
if (p > 0) <!ASSIGNED_VALUE_IS_NEVER_READ!>v<!> = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
fun main(args: Array<String?>) {
|
fun main(args: Array<String?>) {
|
||||||
<!CAN_BE_VAL!>var<!> a: String?
|
<!CAN_BE_VAL{LT}!><!CAN_BE_VAL{PSI}!>var<!> a: String?<!>
|
||||||
val <!UNUSED_VARIABLE!>unused<!> = 0
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>unused<!> = 0<!>
|
||||||
|
|
||||||
if (args.size == 1) {
|
if (args.size == 1) {
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = args[0]
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = args[0]
|
||||||
@@ -144,7 +144,7 @@ fun main(args: Array<String?>) {
|
|||||||
fun run(f: () -> Unit) = f()
|
fun run(f: () -> Unit) = f()
|
||||||
|
|
||||||
fun lambda() {
|
fun lambda() {
|
||||||
var <!VARIABLE_NEVER_READ!>a<!>: Int
|
<!VARIABLE_NEVER_READ{LT}!>var <!VARIABLE_NEVER_READ{PSI}!>a<!>: Int<!>
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 10
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 10
|
||||||
|
|
||||||
run {
|
run {
|
||||||
@@ -153,7 +153,7 @@ fun lambda() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun lambdaInitialization() {
|
fun lambdaInitialization() {
|
||||||
<!CAN_BE_VAL!>var<!> <!VARIABLE_NEVER_READ!>a<!>: Int
|
<!CAN_BE_VAL{LT}, VARIABLE_NEVER_READ{LT}!><!CAN_BE_VAL{PSI}!>var<!> <!VARIABLE_NEVER_READ{PSI}!>a<!>: Int<!>
|
||||||
|
|
||||||
run {
|
run {
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 20
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>a<!> = 20
|
||||||
@@ -161,7 +161,7 @@ fun lambdaInitialization() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun notAssignedWhenNotUsed(p: Int) {
|
fun notAssignedWhenNotUsed(p: Int) {
|
||||||
<!CAN_BE_VAL!>var<!> v: Int
|
<!CAN_BE_VAL{LT}!><!CAN_BE_VAL{PSI}!>var<!> v: Int<!>
|
||||||
if (p > 0) {
|
if (p > 0) {
|
||||||
v = 1
|
v = 1
|
||||||
print(v)
|
print(v)
|
||||||
@@ -180,6 +180,6 @@ class C {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun withDelegate() {
|
fun withDelegate() {
|
||||||
var <!VARIABLE_NEVER_READ!>s<!>: String by Delegates.notNull()
|
<!VARIABLE_NEVER_READ{LT}!>var <!VARIABLE_NEVER_READ{PSI}!>s<!>: String by Delegates.notNull()<!>
|
||||||
<!ASSIGNED_VALUE_IS_NEVER_READ!>s<!> = ""
|
<!ASSIGNED_VALUE_IS_NEVER_READ!>s<!> = ""
|
||||||
}
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
// IS_APPLICABLE: false
|
||||||
|
fun foo(s: String?) {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>t<!>: String = s.toString()<!>
|
||||||
|
}
|
||||||
+2
-2
@@ -3,5 +3,5 @@
|
|||||||
data class Foo(val name: String)
|
data class Foo(val name: String)
|
||||||
|
|
||||||
fun nullable2(foo: Foo?) {
|
fun nullable2(foo: Foo?) {
|
||||||
val <!UNUSED_VARIABLE!>s<!>: String = foo?.name.toString()
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>s<!>: String = foo?.name.toString()<!>
|
||||||
}
|
}
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
data class Foo(val name: String)
|
||||||
|
|
||||||
|
fun test(foo: Foo?) {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>s<!>: String? = foo?.name?.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toString()<!><!>
|
||||||
|
}
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
fun test(i: UByte) {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>foo<!> = i.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toUByte()<!><!>
|
||||||
|
}
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
fun test(i: UInt) {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>foo<!> = i.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toUInt()<!><!>
|
||||||
|
}
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
fun test(i: ULong) {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>foo<!> = i.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toULong()<!><!>
|
||||||
|
}
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
fun test(i: UShort) {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>foo<!> = i.<!REDUNDANT_CALL_OF_CONVERSION_METHOD!>toUShort()<!><!>
|
||||||
|
}
|
||||||
Vendored
+76
@@ -0,0 +1,76 @@
|
|||||||
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
|
@Target(AnnotationTarget.TYPE)
|
||||||
|
annotation class A
|
||||||
|
|
||||||
|
fun annotated() {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>x<!>: @A Int /* NOT redundant */ = 1<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
object SomeObj
|
||||||
|
fun fer() {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>x<!>: Any /* NOT redundant */ = SomeObj<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
fun f2(y: String?): String {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>f<!>: KClass<*> = (y ?: return "")::class<!>
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
object Obj {}
|
||||||
|
|
||||||
|
interface IA
|
||||||
|
interface IB : IA
|
||||||
|
|
||||||
|
fun IA.extFun(x: IB) {}
|
||||||
|
|
||||||
|
fun testWithExpectedType() {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>extFun_AB_A<!>: IA.(IB) -> Unit = IA::extFun<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Point {
|
||||||
|
val x: Int
|
||||||
|
val y: Int
|
||||||
|
}
|
||||||
|
|
||||||
|
class PointImpl(override val x: Int, override val y: Int) : Point
|
||||||
|
|
||||||
|
fun foo() {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>s<!>: <!REDUNDANT_EXPLICIT_TYPE!>String<!> = "Hello ${10+1}"<!>
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>str<!>: String? = ""<!>
|
||||||
|
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>o<!>: <!REDUNDANT_EXPLICIT_TYPE!>Obj<!> = Obj<!>
|
||||||
|
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>p<!>: Point = PointImpl(1, 2)<!>
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>a<!>: <!REDUNDANT_EXPLICIT_TYPE!>Boolean<!> = true<!>
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>i<!>: Int = 2 * 2<!>
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>l<!>: <!REDUNDANT_EXPLICIT_TYPE!>Long<!> = 1234567890123L<!>
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>s<!>: String? = null<!>
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>sh<!>: Short = 42<!>
|
||||||
|
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>integer<!>: <!REDUNDANT_EXPLICIT_TYPE!>Int<!> = 42<!>
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>piFloat<!>: <!REDUNDANT_EXPLICIT_TYPE!>Float<!> = 3.14f<!>
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>piDouble<!>: <!REDUNDANT_EXPLICIT_TYPE!>Double<!> = 3.14<!>
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>charZ<!>: <!REDUNDANT_EXPLICIT_TYPE!>Char<!> = 'z'<!>
|
||||||
|
<!CAN_BE_VAL{LT}, UNUSED_VARIABLE{LT}!><!CAN_BE_VAL{PSI}!>var<!> <!UNUSED_VARIABLE{PSI}!>alpha<!>: <!REDUNDANT_EXPLICIT_TYPE!>Int<!> = 0<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
fun test(boolean: Boolean) {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>expectedLong<!>: Long = if (boolean) {
|
||||||
|
42
|
||||||
|
} else {
|
||||||
|
return
|
||||||
|
}<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
class My {
|
||||||
|
val x: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
val ZERO: Int = 0
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>id<!>: Id = 11<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
typealias Id = Int
|
||||||
Vendored
+85
@@ -0,0 +1,85 @@
|
|||||||
|
object O {
|
||||||
|
fun foo() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface
|
||||||
|
interface Interface {
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Questionable cuz compiler reports warning here in FE 1.0
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{PSI}!>open<!> val gav: Int
|
||||||
|
get() = 42<!>
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Redundant
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{PSI}!>abstract<!> fun foo()<!>
|
||||||
|
// error
|
||||||
|
private final fun bar() {}
|
||||||
|
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!><!REDUNDANT_MODALITY_MODIFIER{PSI}!>open<!> fun goo() {}<!>
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!><!REDUNDANT_MODALITY_MODIFIER{PSI}!>abstract<!> fun tar()<!>
|
||||||
|
|
||||||
|
// error
|
||||||
|
abstract fun too() {}
|
||||||
|
}
|
||||||
|
interface B {
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!><!REDUNDANT_MODALITY_MODIFIER{PSI}!>abstract<!> var bar: Unit<!>
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!><!REDUNDANT_MODALITY_MODIFIER{PSI}!>abstract<!> fun foo()<!>
|
||||||
|
}
|
||||||
|
interface Foo
|
||||||
|
|
||||||
|
expect abstract class AbstractClass : Foo {
|
||||||
|
abstract override fun foo()
|
||||||
|
|
||||||
|
abstract fun bar()
|
||||||
|
|
||||||
|
abstract val baz: Int
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Abstract
|
||||||
|
abstract class Base {
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Redundant final
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{PSI}!>final<!> fun foo() {}<!>
|
||||||
|
// Abstract
|
||||||
|
abstract fun bar()
|
||||||
|
// Open
|
||||||
|
open val gav = 42
|
||||||
|
}
|
||||||
|
|
||||||
|
class FinalDerived : Base() {
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Redundant final
|
||||||
|
override <!REDUNDANT_MODALITY_MODIFIER{PSI}!>final<!> fun bar() {}<!>
|
||||||
|
// Non-final member in final class
|
||||||
|
override open val gav = 13
|
||||||
|
}
|
||||||
|
// Open
|
||||||
|
open class OpenDerived : Base() {
|
||||||
|
// Final
|
||||||
|
override final fun bar() {}
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Redundant open
|
||||||
|
override <!REDUNDANT_MODALITY_MODIFIER{PSI}!>open<!> val gav = 13<!>
|
||||||
|
}
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Redundant final
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{PSI}!>final<!> class Final<!>
|
||||||
|
// Derived interface
|
||||||
|
interface Derived : Interface {
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Redundant
|
||||||
|
override <!REDUNDANT_MODALITY_MODIFIER{PSI}!>open<!> fun foo() {}<!>
|
||||||
|
// error
|
||||||
|
final class Nested
|
||||||
|
}
|
||||||
|
// Derived abstract class
|
||||||
|
abstract class AbstractDerived1(override final val gav: Int) : Interface {
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Redundant
|
||||||
|
override <!REDUNDANT_MODALITY_MODIFIER{PSI}!>open<!> fun foo() {}<!>
|
||||||
|
}
|
||||||
|
// Derived abstract class
|
||||||
|
abstract class AbstractDerived2 : Interface {
|
||||||
|
// Final
|
||||||
|
override final fun foo() {}
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Redundant
|
||||||
|
override <!REDUNDANT_MODALITY_MODIFIER{PSI}!>open<!> val gav = 13<!>
|
||||||
|
}
|
||||||
|
// Redundant abstract interface
|
||||||
|
abstract interface AbstractInterface
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{LT}!>// Redundant final object
|
||||||
|
<!REDUNDANT_MODALITY_MODIFIER{PSI}!>final<!> object FinalObject<!>
|
||||||
|
// Open interface
|
||||||
|
open interface OpenInterface
|
||||||
Vendored
+86
@@ -0,0 +1,86 @@
|
|||||||
|
fun f() {
|
||||||
|
<!CAN_BE_VAL{LT}, REDUNDANT_VISIBILITY_MODIFIER{LT}, UNUSED_VARIABLE{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>public<!> <!CAN_BE_VAL{PSI}!>var<!> <!UNUSED_VARIABLE{PSI}!>baz<!> = 0<!>
|
||||||
|
class LocalClass {
|
||||||
|
<!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>internal<!> var foo = 0<!>
|
||||||
|
}
|
||||||
|
LocalClass().foo = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
internal inline fun internal() {
|
||||||
|
f()
|
||||||
|
}
|
||||||
|
|
||||||
|
<!REDECLARATION!>class C {
|
||||||
|
internal val z = object {
|
||||||
|
fun foo() = 13
|
||||||
|
}
|
||||||
|
}<!>
|
||||||
|
|
||||||
|
class Foo2<
|
||||||
|
T1,
|
||||||
|
T2: T1,
|
||||||
|
> {
|
||||||
|
fun <T1,
|
||||||
|
T2, > foo2() {}
|
||||||
|
|
||||||
|
internal inner class B<T,T2,>
|
||||||
|
}
|
||||||
|
|
||||||
|
<!REDECLARATION, REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>public<!> class C {
|
||||||
|
<!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>public<!> val foo: Int = 0<!>
|
||||||
|
|
||||||
|
<!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>public<!> fun bar() {}<!>
|
||||||
|
|
||||||
|
}<!>
|
||||||
|
|
||||||
|
open class D {
|
||||||
|
protected open fun willRemainProtected() {
|
||||||
|
}
|
||||||
|
|
||||||
|
protected open fun willBecomePublic() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class E : D() {
|
||||||
|
<!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>protected<!> override fun willRemainProtected() {
|
||||||
|
}<!>
|
||||||
|
|
||||||
|
public override fun willBecomePublic() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum class F <!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>private<!> constructor(val x: Int)<!> {
|
||||||
|
FIRST(42)
|
||||||
|
}
|
||||||
|
|
||||||
|
sealed class G constructor(val y: Int) {
|
||||||
|
<!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>private<!> constructor(): this(42)<!>
|
||||||
|
|
||||||
|
object H : G()
|
||||||
|
}
|
||||||
|
|
||||||
|
interface I {
|
||||||
|
fun bar()
|
||||||
|
}
|
||||||
|
|
||||||
|
<!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>public<!> var baz = 0<!>
|
||||||
|
|
||||||
|
open class J {
|
||||||
|
protected val baz = 0
|
||||||
|
<!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>protected<!> get() = field * 2<!>
|
||||||
|
var baf = 0
|
||||||
|
<!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>public<!> get() = 1<!>
|
||||||
|
<!REDUNDANT_VISIBILITY_MODIFIER{LT}!><!REDUNDANT_VISIBILITY_MODIFIER{PSI}!>public<!> set(value) {
|
||||||
|
field = value
|
||||||
|
}<!>
|
||||||
|
|
||||||
|
var buf = 0
|
||||||
|
private get() = 42
|
||||||
|
protected set(value) {
|
||||||
|
field = value
|
||||||
|
}
|
||||||
|
|
||||||
|
var bar = 0
|
||||||
|
get() = 3.1415926535
|
||||||
|
set(value) {}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
fun test(s: Sequence<Int>) {
|
||||||
|
<!UNUSED_VARIABLE{LT}!>val <!UNUSED_VARIABLE{PSI}!>foo<!> = s.<!USELESS_CALL_ON_NOT_NULL!>orEmpty()<!><!>
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user