Skip to content

Commit 679b091

Browse files
committed
Fix enums implementing interface that overrides a property and makes it mutable.
1 parent 158e96b commit 679b091

File tree

3 files changed

+9
-11
lines changed

3 files changed

+9
-11
lines changed

SKIE/acceptance-tests

SKIE/compiler/kotlin-plugin/src/kgp_common/kotlin/co/touchlab/skie/swiftmodel/callable/property/regular/ActualKotlinRegularPropertySwiftModel.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,14 @@ class ActualKotlinRegularPropertySwiftModel(
7777
get() = listOf(type, receiver).flatMap { it.allReferencedTypes() }
7878
.none { it is SkieErrorSirType }
7979

80-
override val getter: KotlinRegularPropertyGetterSwiftModel by core::getter
80+
override val getter: KotlinRegularPropertyGetterSwiftModel = DefaultKotlinRegularPropertyGetterSwiftModel(
81+
descriptor.getter ?: error("$descriptor does not have a getter."),
82+
core.namer,
83+
)
8184

82-
override val setter: KotlinRegularPropertySetterSwiftModel? by core::setter
85+
override val setter: KotlinRegularPropertySetterSwiftModel? = descriptor.setter?.let {
86+
DefaultKotlinRegularPropertySetterSwiftModel(it, core.namer)
87+
}
8388

8489
override fun toString(): String = descriptor.toString()
8590

SKIE/compiler/kotlin-plugin/src/kgp_common/kotlin/co/touchlab/skie/swiftmodel/callable/property/regular/KotlinRegularPropertySwiftModelCore.kt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,14 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
99

1010
class KotlinRegularPropertySwiftModelCore(
1111
val descriptor: PropertyDescriptor,
12-
namer: ObjCExportNamer,
12+
val namer: ObjCExportNamer,
1313
private val objCTypeProvider: ObjCTypeProvider,
1414
) {
1515

1616
var identifier: String = namer.getPropertyName(descriptor.original).swiftName
1717

1818
var visibility: SwiftModelVisibility = SwiftModelVisibility.Visible
1919

20-
val getter: KotlinRegularPropertyGetterSwiftModel = DefaultKotlinRegularPropertyGetterSwiftModel(
21-
descriptor.getter ?: error("$descriptor does not have a getter."),
22-
namer,
23-
)
24-
25-
val setter: KotlinRegularPropertySetterSwiftModel? = descriptor.setter?.let { DefaultKotlinRegularPropertySetterSwiftModel(it, namer) }
26-
2720
val objCName: String = namer.getPropertyName(descriptor.original).objCName
2821

2922
fun getObjCType(propertyDescriptor: PropertyDescriptor, flowMappingStrategy: FlowMappingStrategy): ObjCType =

0 commit comments

Comments
 (0)