When checking overrides, compare methods structurally

Because they may come from different copies of the same class from different modules
This commit is contained in:
Andrey Breslav
2014-05-29 17:41:46 +04:00
parent 5a864dbc62
commit 204fa76691
27 changed files with 1158 additions and 5 deletions
@@ -4687,7 +4687,7 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
}
@TestMetadata("compiler/testData/diagnostics/tests/multimodule")
@InnerTestClasses({Multimodule.DuplicateClass.class})
@InnerTestClasses({Multimodule.DuplicateClass.class, Multimodule.DuplicateMethod.class, Multimodule.DuplicateSuper.class})
public static class Multimodule extends AbstractJetDiagnosticsTest {
public void testAllFilesPresentInMultimodule() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("compiler/testData/diagnostics/tests/multimodule"), Pattern.compile("^(.+)\\.kt$"), true);
@@ -4771,10 +4771,143 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
}
@TestMetadata("compiler/testData/diagnostics/tests/multimodule/duplicateMethod")
public static class DuplicateMethod extends AbstractJetDiagnosticsTest {
public void testAllFilesPresentInDuplicateMethod() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("compiler/testData/diagnostics/tests/multimodule/duplicateMethod"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("classGenericsInParams.kt")
public void testClassGenericsInParams() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/classGenericsInParams.kt");
}
@TestMetadata("classGenericsInParamsBoundMismatch.kt")
public void testClassGenericsInParamsBoundMismatch() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/classGenericsInParamsBoundMismatch.kt");
}
@TestMetadata("classGenericsInParamsIndexMismatch.kt")
public void testClassGenericsInParamsIndexMismatch() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/classGenericsInParamsIndexMismatch.kt");
}
@TestMetadata("classGenericsInParamsNameMismatch.kt")
public void testClassGenericsInParamsNameMismatch() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/classGenericsInParamsNameMismatch.kt");
}
@TestMetadata("classVsFunctionGenericsInParamsMismatch.kt")
public void testClassVsFunctionGenericsInParamsMismatch() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/classVsFunctionGenericsInParamsMismatch.kt");
}
@TestMetadata("differenceInParamNames.kt")
public void testDifferenceInParamNames() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/differenceInParamNames.kt");
}
@TestMetadata("differentGenericsInParams.kt")
public void testDifferentGenericsInParams() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/differentGenericsInParams.kt");
}
@TestMetadata("differentNumberOfParams.kt")
public void testDifferentNumberOfParams() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/differentNumberOfParams.kt");
}
@TestMetadata("differentReturnTypes.kt")
public void testDifferentReturnTypes() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/differentReturnTypes.kt");
}
@TestMetadata("extensionMatch.kt")
public void testExtensionMatch() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/extensionMatch.kt");
}
@TestMetadata("functionGenericsInParams.kt")
public void testFunctionGenericsInParams() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/functionGenericsInParams.kt");
}
@TestMetadata("functionGenericsInParamsBoundsMismatch.kt")
public void testFunctionGenericsInParamsBoundsMismatch() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/functionGenericsInParamsBoundsMismatch.kt");
}
@TestMetadata("functionGenericsInParamsEqNull.kt")
public void testFunctionGenericsInParamsEqNull() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/functionGenericsInParamsEqNull.kt");
}
@TestMetadata("functionGenericsInParamsNotIs.kt")
public void testFunctionGenericsInParamsNotIs() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/functionGenericsInParamsNotIs.kt");
}
@TestMetadata("noGenericsInParams.kt")
public void testNoGenericsInParams() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/noGenericsInParams.kt");
}
@TestMetadata("noParams.kt")
public void testNoParams() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/noParams.kt");
}
@TestMetadata("sameGenericsInParams.kt")
public void testSameGenericsInParams() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/sameGenericsInParams.kt");
}
@TestMetadata("simpleWithInheritance.kt")
public void testSimpleWithInheritance() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/simpleWithInheritance.kt");
}
@TestMetadata("substitutedGenericInParams.kt")
public void testSubstitutedGenericInParams() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateMethod/substitutedGenericInParams.kt");
}
}
@TestMetadata("compiler/testData/diagnostics/tests/multimodule/duplicateSuper")
public static class DuplicateSuper extends AbstractJetDiagnosticsTest {
public void testAllFilesPresentInDuplicateSuper() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("compiler/testData/diagnostics/tests/multimodule/duplicateSuper"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("differentSuperTraits.kt")
public void testDifferentSuperTraits() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateSuper/differentSuperTraits.kt");
}
@TestMetadata("sameSuperTrait.kt")
public void testSameSuperTrait() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateSuper/sameSuperTrait.kt");
}
@TestMetadata("sameSuperTraitDifferentBounds.kt")
public void testSameSuperTraitDifferentBounds() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateSuper/sameSuperTraitDifferentBounds.kt");
}
@TestMetadata("sameSuperTraitGenerics.kt")
public void testSameSuperTraitGenerics() throws Exception {
doTest("compiler/testData/diagnostics/tests/multimodule/duplicateSuper/sameSuperTraitGenerics.kt");
}
}
public static Test innerSuite() {
TestSuite suite = new TestSuite("Multimodule");
suite.addTestSuite(Multimodule.class);
suite.addTestSuite(DuplicateClass.class);
suite.addTestSuite(DuplicateMethod.class);
suite.addTestSuite(DuplicateSuper.class);
return suite;
}
}