K2: resolve remove(Int) clash in JavaOverrideChecker
In Kotlin subclasses of `MutableCollection<Int>`, the method `remove(Int)` has its argument boxed, so that it wouldn't clash with the method from `java.util.List`. So `JavaOverrideChecker` should understand that a Java method `boolean remove(java.lang.Integer)` overrides it, otherwise platform declaration clash was reported. The code is adapted from `forceSingleValueParameterBoxing` in K1's `methodSignatureMapping.kt`. The test has been moved and adapted from diagnostic to codegen box tests, to check correct backend execution + runtime. #KT-62316 Fixed
This commit is contained in:
committed by
Space Team
parent
8e023edc4f
commit
2788dcb5ff
-6
@@ -21225,12 +21225,6 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
||||
runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/removeAt.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("removeAtInt.kt")
|
||||
public void testRemoveAtInt() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/removeAtInt.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("sizeFromKotlinOverriddenInJava.kt")
|
||||
public void testSizeFromKotlinOverriddenInJava() throws Exception {
|
||||
|
||||
-6
@@ -21225,12 +21225,6 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
||||
runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/removeAt.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("removeAtInt.kt")
|
||||
public void testRemoveAtInt() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/j+k/collectionOverrides/removeAtInt.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("sizeFromKotlinOverriddenInJava.kt")
|
||||
public void testSizeFromKotlinOverriddenInJava() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user