Change 'jvmTarget' backing property visibility to internal.
Allows to check if this property was updated by the user or not. ^KT-45611 In Progress ^KT-43095 In Progress
This commit is contained in:
+13
-1
@@ -22,8 +22,10 @@ import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.utils.Printer
|
||||
import java.io.File
|
||||
import java.io.PrintStream
|
||||
import java.util.*
|
||||
import kotlin.reflect.KAnnotatedElement
|
||||
import kotlin.reflect.KProperty1
|
||||
import kotlin.reflect.KVisibility
|
||||
import kotlin.reflect.full.declaredMemberProperties
|
||||
import kotlin.reflect.full.withNullability
|
||||
|
||||
@@ -203,7 +205,8 @@ private fun Printer.generateImpl(
|
||||
generatePropertyDeclaration(property, modifiers = "override", value = "null")
|
||||
} else {
|
||||
val backingField = property.backingField()
|
||||
println("private var $backingField: $propertyType? = null")
|
||||
val visibilityModified = property.gradleBackingFieldVisibility.name.lowercase(Locale.US)
|
||||
println("$visibilityModified var $backingField: $propertyType? = null")
|
||||
generatePropertyDeclaration(property, modifiers = "override")
|
||||
withIndent {
|
||||
println("get() = $backingField ?: ${property.gradleDefaultValue}")
|
||||
@@ -314,6 +317,15 @@ private val KProperty1<*, *>.gradleValues: DefaultValues
|
||||
private val KProperty1<*, *>.gradleDefaultValue: String
|
||||
get() = gradleValues.defaultValue
|
||||
|
||||
private val KProperty1<*, *>.gradleBackingFieldVisibility: KVisibility
|
||||
get() {
|
||||
val fieldVisibility = findAnnotation<GradleOption>()!!.backingFieldVisibility
|
||||
require(fieldVisibility != KVisibility.PUBLIC) {
|
||||
"Backing field should not have public visibility!"
|
||||
}
|
||||
return fieldVisibility
|
||||
}
|
||||
|
||||
private val KProperty1<*, *>.gradleReturnType: String
|
||||
get() {
|
||||
// Set nullability based on Gradle default value
|
||||
|
||||
Reference in New Issue
Block a user