Java to Kotlin converter: converting usages of Kotlin object members
#KT-5172 Fixed
This commit is contained in:
@@ -294,7 +294,7 @@ open class ExpressionVisitor(protected val converter: Converter,
|
|||||||
identifier = Identifier("size", isNullable)
|
identifier = Identifier("size", isNullable)
|
||||||
}
|
}
|
||||||
else if (qualifier != null) {
|
else if (qualifier != null) {
|
||||||
if (referencedName == "object$") {
|
if (referencedName == "object$" || referencedName == "instance$") {
|
||||||
val target = expression.getReference()?.resolve()
|
val target = expression.getReference()?.resolve()
|
||||||
if (target is LightField) { //TODO: should be KotlinLightField with check of origin here, see KT-5188
|
if (target is LightField) { //TODO: should be KotlinLightField with check of origin here, see KT-5188
|
||||||
result = converter.convertExpression(qualifier)
|
result = converter.convertExpression(qualifier)
|
||||||
|
|||||||
@@ -1596,6 +1596,11 @@ public class JavaToKotlinConverterTestGenerated extends AbstractJavaToKotlinConv
|
|||||||
doTest("j2k/tests/testData/ast/kotlinApiAccess/InheritedProperty.java");
|
doTest("j2k/tests/testData/ast/kotlinApiAccess/InheritedProperty.java");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ObjectMembers.java")
|
||||||
|
public void testObjectMembers() throws Exception {
|
||||||
|
doTest("j2k/tests/testData/ast/kotlinApiAccess/ObjectMembers.java");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("Property.java")
|
@TestMetadata("Property.java")
|
||||||
public void testProperty() throws Exception {
|
public void testProperty() throws Exception {
|
||||||
doTest("j2k/tests/testData/ast/kotlinApiAccess/Property.java");
|
doTest("j2k/tests/testData/ast/kotlinApiAccess/Property.java");
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ public open class KotlinClass {
|
|||||||
public fun statucFun(p: Int): Int = p
|
public fun statucFun(p: Int): Int = p
|
||||||
public var staticVar: Int = 1
|
public var staticVar: Int = 1
|
||||||
public var staticProperty: Int
|
public var staticProperty: Int
|
||||||
get() = 1
|
get() = 1
|
||||||
set(value) {}
|
set(value) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,9 +19,17 @@ public fun Int.extensionFunction(): String = toString()
|
|||||||
|
|
||||||
public var globalValue1: Int = 1
|
public var globalValue1: Int = 1
|
||||||
public var globalValue2: Int
|
public var globalValue2: Int
|
||||||
get() = 0
|
get() = 0
|
||||||
set(value) {}
|
set(value) {}
|
||||||
|
|
||||||
public var String.extensionProperty: Int
|
public var String.extensionProperty: Int
|
||||||
get() = 1
|
get() = 1
|
||||||
set(value) {}
|
set(value) {}
|
||||||
|
|
||||||
|
public object KotlinObject {
|
||||||
|
public fun foo(): Int = 1
|
||||||
|
public var property1: Int = 1
|
||||||
|
public var property2: Int
|
||||||
|
get() = 1
|
||||||
|
set(value) {}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
//file
|
||||||
|
import kotlinApi.KotlinObject;
|
||||||
|
|
||||||
|
class C {
|
||||||
|
int foo() {
|
||||||
|
KotlinObject.instance$.setProperty1(1);
|
||||||
|
KotlinObject.instance$.setProperty2(2);
|
||||||
|
return KotlinObject.instance$.foo() +
|
||||||
|
KotlinObject.instance$.getProperty1() +
|
||||||
|
KotlinObject.instance$.getProperty2();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import kotlinApi.KotlinObject
|
||||||
|
|
||||||
|
class C() {
|
||||||
|
fun foo(): Int {
|
||||||
|
KotlinObject.property1 = 1
|
||||||
|
KotlinObject.property2 = 2
|
||||||
|
return KotlinObject.foo() + KotlinObject.property1 + KotlinObject.property2
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user