[NI] Fix replacing original in PropertyDescriptor

This commit is contained in:
Dmitriy Novozhilov
2019-05-29 17:32:02 +03:00
parent 88a9349f32
commit bcbbf4aba3
7 changed files with 41 additions and 1 deletions
@@ -845,7 +845,7 @@ private fun PropertyDescriptorImpl.hackSettersAccordingToCapturedOutTypes(): Pro
TypeApproximatorConfiguration.CapturedAndIntegerLiteralsTypesApproximation
) ?: return this
val newProperty = newCopyBuilder().build() as PropertyDescriptorImpl
val newProperty = newCopyBuilder().setOriginal(original).build() as PropertyDescriptorImpl
val newSetter = with(setter) {
PropertySetterDescriptorImpl(newProperty, annotations, modality, visibility, isDefault, isExternal, isInline, kind, original, source)
@@ -0,0 +1,15 @@
// !LANGUAGE: +NewInference
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
interface A<T> {
var x: T
}
fun test(a: A<*>) {
a.x
}
fun box(): String {
return "OK"
}
@@ -12030,6 +12030,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/inference"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JVM, true);
}
@TestMetadata("capturedStarProjection.kt")
public void testCapturedStarProjection() throws Exception {
runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt");
}
@TestMetadata("integerLiteralTypeInLamdaReturnType.kt")
public void testIntegerLiteralTypeInLamdaReturnType() throws Exception {
runTest("compiler/testData/codegen/box/inference/integerLiteralTypeInLamdaReturnType.kt");
@@ -12030,6 +12030,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/inference"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JVM, true);
}
@TestMetadata("capturedStarProjection.kt")
public void testCapturedStarProjection() throws Exception {
runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt");
}
@TestMetadata("integerLiteralTypeInLamdaReturnType.kt")
public void testIntegerLiteralTypeInLamdaReturnType() throws Exception {
runTest("compiler/testData/codegen/box/inference/integerLiteralTypeInLamdaReturnType.kt");
@@ -12035,6 +12035,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/inference"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JVM_IR, true);
}
@TestMetadata("capturedStarProjection.kt")
public void testCapturedStarProjection() throws Exception {
runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt");
}
@TestMetadata("integerLiteralTypeInLamdaReturnType.kt")
public void testIntegerLiteralTypeInLamdaReturnType() throws Exception {
runTest("compiler/testData/codegen/box/inference/integerLiteralTypeInLamdaReturnType.kt");
@@ -9460,6 +9460,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/inference"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JS_IR, true);
}
@TestMetadata("capturedStarProjection.kt")
public void testCapturedStarProjection() throws Exception {
runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt");
}
@TestMetadata("integerLiteralTypeInLamdaReturnType.kt")
public void testIntegerLiteralTypeInLamdaReturnType() throws Exception {
runTest("compiler/testData/codegen/box/inference/integerLiteralTypeInLamdaReturnType.kt");
@@ -10615,6 +10615,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/inference"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JS, true);
}
@TestMetadata("capturedStarProjection.kt")
public void testCapturedStarProjection() throws Exception {
runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt");
}
@TestMetadata("integerLiteralTypeInLamdaReturnType.kt")
public void testIntegerLiteralTypeInLamdaReturnType() throws Exception {
runTest("compiler/testData/codegen/box/inference/integerLiteralTypeInLamdaReturnType.kt");