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