No setter parameter type required

This commit is contained in:
Valentin Kipyatkov
2015-09-28 23:21:04 +03:00
parent 596635270e
commit 110d53b4a6
8 changed files with 34 additions and 26 deletions
+11 -7
View File
@@ -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
View File
@@ -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 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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) {
} }
} }
+7 -7
View File
@@ -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) {
} }
} }