Fix annoying parameter name override warning
Some corner cases still remain: KotlinSignature, propagation, deserialized delegates to Java interfaces #KT-1239 Obsolete #KT-1924 In Progress #KT-2081 Fixed
This commit is contained in:
@@ -5149,6 +5149,7 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/override")
|
||||
@InnerTestClasses({Override.ParameterNames.class})
|
||||
public static class Override extends AbstractJetDiagnosticsTest {
|
||||
@TestMetadata("AbstractFunImplemented.kt")
|
||||
public void testAbstractFunImplemented() throws Exception {
|
||||
@@ -5204,16 +5205,6 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
doTest("compiler/testData/diagnostics/tests/override/ConflictingFunctionSignatureFromSuperclass.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ConflictingParameterNames.kt")
|
||||
public void testConflictingParameterNames() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/override/ConflictingParameterNames.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ConflictingParameterNames-MultipleSupertypes.kt")
|
||||
public void testConflictingParameterNames_MultipleSupertypes() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/override/ConflictingParameterNames-MultipleSupertypes.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ConflictingPropertySignatureFromSuperclass.kt")
|
||||
public void testConflictingPropertySignatureFromSuperclass() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/override/ConflictingPropertySignatureFromSuperclass.kt");
|
||||
@@ -5344,6 +5335,45 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
doTest("compiler/testData/diagnostics/tests/override/ToAbstractMembersFromSuper-kt1996.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/override/parameterNames")
|
||||
public static class ParameterNames extends AbstractJetDiagnosticsTest {
|
||||
public void testAllFilesPresentInParameterNames() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("compiler/testData/diagnostics/tests/override/parameterNames"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("changeOnOverrideDiagnostic.kt")
|
||||
public void testChangeOnOverrideDiagnostic() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/override/parameterNames/changeOnOverrideDiagnostic.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("differentNamesInSupertypesDiagnostic.kt")
|
||||
public void testDifferentNamesInSupertypesDiagnostic() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/override/parameterNames/differentNamesInSupertypesDiagnostic.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("jjkHierarchy.kt")
|
||||
public void testJjkHierarchy() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/override/parameterNames/jjkHierarchy.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kotlinInheritsBothJavaAndKotlin.kt")
|
||||
public void testKotlinInheritsBothJavaAndKotlin() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/override/parameterNames/kotlinInheritsBothJavaAndKotlin.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kotlinInheritsJava.kt")
|
||||
public void testKotlinInheritsJava() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/override/parameterNames/kotlinInheritsJava.kt");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static Test innerSuite() {
|
||||
TestSuite suite = new TestSuite("Override");
|
||||
suite.addTestSuite(Override.class);
|
||||
suite.addTestSuite(ParameterNames.class);
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/recovery")
|
||||
@@ -6978,7 +7008,7 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
suite.addTestSuite(Objects.class);
|
||||
suite.addTestSuite(OperatorsOverloading.class);
|
||||
suite.addTestSuite(Overload.class);
|
||||
suite.addTestSuite(Override.class);
|
||||
suite.addTest(Override.innerSuite());
|
||||
suite.addTestSuite(Recovery.class);
|
||||
suite.addTestSuite(Redeclarations.class);
|
||||
suite.addTestSuite(Regressions.class);
|
||||
|
||||
+27
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.jet.jvm.compiler;
|
||||
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -24,12 +25,15 @@ import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.MockLibraryUtil;
|
||||
import org.jetbrains.jet.TestJdkKind;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.cli.common.messages.AnalyzerWithCompilerReport;
|
||||
import org.jetbrains.jet.cli.common.messages.MessageCollectorPlainTextToStream;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
||||
import org.jetbrains.jet.test.TestCaseWithTmpdir;
|
||||
import org.jetbrains.jet.test.util.DescriptorValidator;
|
||||
@@ -160,4 +164,27 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
|
||||
public void testMissingEnumReferencedInAnnotationArgument() throws Exception {
|
||||
doTestWithTxt(copyJarFileWithoutEntry(compileLibrary("library"), "test/E.class"));
|
||||
}
|
||||
|
||||
public void testNoWarningsOnJavaKotlinInheritance() throws Exception {
|
||||
// This test checks that there are no PARAMETER_NAME_CHANGED_ON_OVERRIDE or DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES
|
||||
// warnings when subclassing in Kotlin from Java binaries (in case when no parameter names are available for Java classes)
|
||||
|
||||
JetTestUtils.compileJavaFiles(
|
||||
Collections.singletonList(getTestDataFileWithExtension("java")),
|
||||
Arrays.asList("-d", tmpdir.getPath())
|
||||
);
|
||||
|
||||
Project project = createEnvironment(Collections.singletonList(tmpdir)).getProject();
|
||||
|
||||
AnalyzeExhaust exhaust = AnalyzerFacadeForJVM.analyzeOneFileWithJavaIntegration(
|
||||
JetTestUtils.loadJetFile(project, getTestDataFileWithExtension("kt")),
|
||||
Collections.<AnalyzerScriptParameter>emptyList()
|
||||
);
|
||||
exhaust.throwIfError();
|
||||
|
||||
BindingContext bindingContext = exhaust.getBindingContext();
|
||||
AnalyzerWithCompilerReport.reportDiagnostics(bindingContext, MessageCollectorPlainTextToStream.PLAIN_TEXT_TO_SYSTEM_ERR);
|
||||
|
||||
assertEquals("There should be no diagnostics", 0, Iterables.size(bindingContext.getDiagnostics()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user