Generate type-safe barrier in method body

In cases when signature of special bridge is the same as current method,
but type is not 'Any?'.

Also there is tiny optimization:
only null check needed if value parameter type is mapped to Object,
but it's not nullable.

 #KT-9973 Fixed
This commit is contained in:
Denis Zharkov
2015-11-16 13:02:45 +03:00
parent 1f704e0c4d
commit fa99ea1e98
14 changed files with 226 additions and 29 deletions
@@ -435,6 +435,18 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest {
doTest(fileName);
}
@TestMetadata("notNullAnyMC.kt")
public void testNotNullAnyMC() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/builtinFunctions/genericParameterBridge/notNullAnyMC.kt");
doTest(fileName);
}
@TestMetadata("notNullParamMC.kt")
public void testNotNullParamMC() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/builtinFunctions/genericParameterBridge/notNullParamMC.kt");
doTest(fileName);
}
@TestMetadata("nullableAnyMC.kt")
public void testNullableAnyMC() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/builtinFunctions/genericParameterBridge/nullableAnyMC.kt");