Fix signature clash problems caused by special built-ins
Do not treat members with already changed signature as a reason to create a hidden copy See tests for clarification: - There are `charAt` method in B that has different name in Kotlin - `get`, i.e. relevant descriptor has initialSignatureDescriptor != null - When collecting methods from supertypes, `charAt` from A is also get transformed to `get` - So it has effectively the same signature as B.get (already declared) - If by an accident B.get had been declared with Kotlin signature we would have add A.charAt (after transformation) with special flag: HiddenToOvercomeSignatureClash (hides it from resolution) - But here B.charAt was artificially changed to `get`, so no signature clash actually happened #KT-13730 Fixed
This commit is contained in:
+15
@@ -98,6 +98,21 @@ public class DiagnosticsWithJava8TestGenerated extends AbstractDiagnosticsWithFu
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/testsWithJava8/specialBuiltIns")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class SpecialBuiltIns extends AbstractDiagnosticsWithFullJdkTest {
|
||||
public void testAllFilesPresentInSpecialBuiltIns() throws Exception {
|
||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/testsWithJava8/specialBuiltIns"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("hashtableInheritance.kt")
|
||||
public void testHashtableInheritance() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJava8/specialBuiltIns/hashtableInheritance.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/testsWithJava8/statics")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
Reference in New Issue
Block a user