No setter parameter type required
This commit is contained in:
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.j2k.usageProcessing.UsageProcessing
|
|||||||
import org.jetbrains.kotlin.j2k.usageProcessing.UsageProcessingExpressionConverter
|
import org.jetbrains.kotlin.j2k.usageProcessing.UsageProcessingExpressionConverter
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.types.expressions.OperatorConventions.*
|
import org.jetbrains.kotlin.types.expressions.OperatorConventions.*
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.check
|
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.singletonOrEmptyList
|
import org.jetbrains.kotlin.utils.addToStdlib.singletonOrEmptyList
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -363,12 +362,17 @@ class Converter private constructor(
|
|||||||
val accessorModifiers = Modifiers(propertyInfo.specialSetterAccess.singletonOrEmptyList()).assignNoPrototype()
|
val accessorModifiers = Modifiers(propertyInfo.specialSetterAccess.singletonOrEmptyList()).assignNoPrototype()
|
||||||
if (setMethod != null) {
|
if (setMethod != null) {
|
||||||
val method = setMethod.let { convertMethod(it, null, null, null, classKind)!! }
|
val method = setMethod.let { convertMethod(it, null, null, null, classKind)!! }
|
||||||
setter = PropertyAccessor(
|
val convertedParameter = method.parameterList!!.parameters.single() as FunctionParameter
|
||||||
AccessorKind.SETTER,
|
val parameterAnnotations = convertedParameter.annotations
|
||||||
method.annotations,
|
val parameterList = if (method.body != null || !parameterAnnotations.isEmpty) {
|
||||||
accessorModifiers,
|
val parameter = FunctionParameter(convertedParameter.identifier, null, FunctionParameter.VarValModifier.None, parameterAnnotations, Modifiers.Empty)
|
||||||
method.parameterList?.check { method.body != null },
|
.assignPrototypesFrom(convertedParameter, CommentsAndSpacesInheritance.NO_SPACES)
|
||||||
method.body)
|
ParameterList(listOf(parameter)).assignNoPrototype()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
setter = PropertyAccessor(AccessorKind.SETTER, method.annotations, accessorModifiers, parameterList, method.body)
|
||||||
setter.assignPrototype(setMethod, CommentsAndSpacesInheritance.NO_SPACES)
|
setter.assignPrototype(setMethod, CommentsAndSpacesInheritance.NO_SPACES)
|
||||||
}
|
}
|
||||||
else if (propertyInfo.modifiers.contains(Modifier.OVERRIDE)) {
|
else if (propertyInfo.modifiers.contains(Modifier.OVERRIDE)) {
|
||||||
|
|||||||
@@ -16,12 +16,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.ast
|
package org.jetbrains.kotlin.j2k.ast
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.j2k.CodeBuilder
|
||||||
|
|
||||||
abstract class Parameter(val identifier: Identifier, val type: Type?) : Element()
|
abstract class Parameter(val identifier: Identifier, val type: Type?) : Element()
|
||||||
|
|
||||||
class FunctionParameter(identifier: Identifier,
|
class FunctionParameter(identifier: Identifier,
|
||||||
type: Type,
|
type: Type?,
|
||||||
val varVal: FunctionParameter.VarValModifier,
|
val varVal: FunctionParameter.VarValModifier,
|
||||||
val annotations: Annotations,
|
val annotations: Annotations,
|
||||||
val modifiers: Modifiers,
|
val modifiers: Modifiers,
|
||||||
@@ -45,7 +45,11 @@ class FunctionParameter(identifier: Identifier,
|
|||||||
VarValModifier.Val -> builder.append("val ")
|
VarValModifier.Val -> builder.append("val ")
|
||||||
}
|
}
|
||||||
|
|
||||||
builder append identifier append ":" append type!!
|
builder.append(identifier)
|
||||||
|
|
||||||
|
if (type != null) {
|
||||||
|
builder append ":" append type
|
||||||
|
}
|
||||||
|
|
||||||
if (defaultValue != null) {
|
if (defaultValue != null) {
|
||||||
builder append " = " append defaultValue
|
builder append " = " append defaultValue
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ internal class A(// comment for field2 getter
|
|||||||
// comment for setProperty
|
// comment for setProperty
|
||||||
var property: Int
|
var property: Int
|
||||||
get() = 1
|
get() = 1
|
||||||
set(value: Int) {
|
set(value) {
|
||||||
} // end of getProperty
|
} // end of getProperty
|
||||||
// end of setProperty
|
// end of setProperty
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
class AAA {
|
class AAA {
|
||||||
var x = 42
|
var x = 42
|
||||||
set(x: Int) {
|
set(x) {
|
||||||
this.x += x
|
this.x += x
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ object AAA {
|
|||||||
var x = 42
|
var x = 42
|
||||||
var y = 0
|
var y = 0
|
||||||
var z = 0
|
var z = 0
|
||||||
set(z: Int) {
|
set(z) {
|
||||||
Other.z = z
|
Other.z = z
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -18,7 +18,7 @@ internal interface I {
|
|||||||
internal abstract class C : I {
|
internal abstract class C : I {
|
||||||
override var isSomething1: Boolean
|
override var isSomething1: Boolean
|
||||||
get() = true
|
get() = true
|
||||||
set(b: Boolean) {
|
set(b) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override var isSomething4: Boolean
|
override var isSomething4: Boolean
|
||||||
@@ -29,11 +29,11 @@ internal abstract class C : I {
|
|||||||
|
|
||||||
override var isSomething5: Boolean
|
override var isSomething5: Boolean
|
||||||
get() = super.isSomething5
|
get() = super.isSomething5
|
||||||
set(value: Boolean) {
|
set(value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override var something6: Boolean
|
override var something6: Boolean
|
||||||
get() = super.something6
|
get() = super.something6
|
||||||
set(value: Boolean) {
|
set(value) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -26,17 +26,17 @@ internal open class B {
|
|||||||
|
|
||||||
open var fromB2: String
|
open var fromB2: String
|
||||||
get() = ""
|
get() = ""
|
||||||
set(value: String) {
|
set(value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
open var fromB3: String
|
open var fromB3: String
|
||||||
get() = ""
|
get() = ""
|
||||||
set(value: String) {
|
set(value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
open var fromB4: String
|
open var fromB4: String
|
||||||
get() = ""
|
get() = ""
|
||||||
set(value: String) {
|
set(value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun setFromB5(value: String) {
|
open fun setFromB5(value: String) {
|
||||||
@@ -51,7 +51,7 @@ internal abstract class C(override val something1: Int) : B(), I {
|
|||||||
|
|
||||||
override var something3: Int
|
override var something3: Int
|
||||||
get() = 0
|
get() = 0
|
||||||
set(value: Int) {
|
set(value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override var something4: Int
|
override var something4: Int
|
||||||
@@ -62,7 +62,7 @@ internal abstract class C(override val something1: Int) : B(), I {
|
|||||||
|
|
||||||
override var something5: Int
|
override var something5: Int
|
||||||
get() = super.something5
|
get() = super.something5
|
||||||
set(value: Int) {
|
set(value) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ internal abstract class C(override val something1: Int) : B(), I {
|
|||||||
|
|
||||||
override var fromB2: String
|
override var fromB2: String
|
||||||
get() = super.fromB2
|
get() = super.fromB2
|
||||||
set(value: String) {
|
set(value) {
|
||||||
super.fromB2 = value
|
super.fromB2 = value
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ internal abstract class C(override val something1: Int) : B(), I {
|
|||||||
|
|
||||||
override var fromB4: String
|
override var fromB4: String
|
||||||
get() = super.fromB4
|
get() = super.fromB4
|
||||||
set(value: String) {
|
set(value) {
|
||||||
super.fromB4 = value
|
super.fromB4 = value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import javaApi.JavaClassDerivedFromKotlinClassWithProperties
|
|||||||
internal open class A : KotlinClassWithProperties() {
|
internal open class A : KotlinClassWithProperties() {
|
||||||
override var someVar1: String
|
override var someVar1: String
|
||||||
get() = super.someVar1
|
get() = super.someVar1
|
||||||
set(s: String) {
|
set(s) {
|
||||||
super.someVar1 = s
|
super.someVar1 = s
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ internal open class A : KotlinClassWithProperties() {
|
|||||||
|
|
||||||
override var someVar3: String
|
override var someVar3: String
|
||||||
get() = super.someVar3
|
get() = super.someVar3
|
||||||
set(s: String) {
|
set(s) {
|
||||||
super.someVar3 = s
|
super.someVar3 = s
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ internal class D : JavaClassDerivedFromKotlinClassWithProperties() {
|
|||||||
|
|
||||||
override var someVar2: String
|
override var someVar2: String
|
||||||
get() = super.someVar2
|
get() = super.someVar2
|
||||||
set(value: String) {
|
set(value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user