Fix name clash in JS implementation of multiplatform extension property

See KT-18756
This commit is contained in:
Alexey Andreev
2017-09-14 18:10:07 +03:00
parent 1c7d66c803
commit a66cd8b309
5 changed files with 20 additions and 2 deletions
+2
View File
@@ -0,0 +1,2 @@
header class ClassWithImplByExtension
header val ClassWithImplByExtension.extensionVal: Int
+3
View File
@@ -0,0 +1,3 @@
impl class ClassWithImplByExtension
impl val ClassWithImplByExtension.extensionVal: Int
get() = 0
@@ -0,0 +1,7 @@
-- Common --
Exit code: OK
Output:
-- JS --
Exit code: OK
Output:
@@ -96,6 +96,12 @@ public class MultiPlatformIntegrationTestGenerated extends AbstractMultiPlatform
doTest(fileName);
}
@TestMetadata("jsNameClash")
public void testJsNameClash() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/multiplatform/jsNameClash/");
doTest(fileName);
}
@TestMetadata("missingOverload")
public void testMissingOverload() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/multiplatform/missingOverload/");
@@ -110,10 +110,10 @@ class JsNameClashChecker : SimpleDeclarationChecker {
}
private val DeclarationDescriptor.isActual: Boolean
get() = this is MemberDescriptor && this.isActual
get() = this is MemberDescriptor && this.isActual || this is PropertyAccessorDescriptor && this.correspondingProperty.isActual
private val DeclarationDescriptor.isExpect: Boolean
get() = this is MemberDescriptor && this.isExpect
get() = this is MemberDescriptor && this.isExpect || this is PropertyAccessorDescriptor && this.correspondingProperty.isExpect
private fun isFakeOverridingNative(descriptor: CallableMemberDescriptor): Boolean {
return descriptor.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE &&