[IR generator] Deduplicate field copying logic
This commit is contained in:
committed by
Space Team
parent
5f04bc8a27
commit
7bd4de65f8
+2
-8
@@ -43,21 +43,15 @@ sealed class Field : AbstractField<Field>() {
|
|||||||
updateFieldsInCopy(it)
|
updateFieldsInCopy(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
protected fun updateFieldsInCopy(copy: Field) {
|
override fun updateFieldsInCopy(copy: Field) {
|
||||||
|
super.updateFieldsInCopy(copy)
|
||||||
if (copy !is FieldWithDefault) {
|
if (copy !is FieldWithDefault) {
|
||||||
copy.needsSeparateTransform = needsSeparateTransform
|
copy.needsSeparateTransform = needsSeparateTransform
|
||||||
copy.needTransformInOtherChildren = needTransformInOtherChildren
|
copy.needTransformInOtherChildren = needTransformInOtherChildren
|
||||||
copy.useInBaseTransformerDetection = useInBaseTransformerDetection
|
|
||||||
copy.isMutable = isMutable
|
|
||||||
copy.overriddenTypes += overriddenTypes
|
|
||||||
copy.arbitraryImportables += arbitraryImportables
|
|
||||||
copy.useNullableForReplace = useNullableForReplace
|
copy.useNullableForReplace = useNullableForReplace
|
||||||
copy.customInitializationCall = customInitializationCall
|
copy.customInitializationCall = customInitializationCall
|
||||||
copy.optInAnnotation = optInAnnotation
|
|
||||||
}
|
}
|
||||||
copy.fromParent = fromParent
|
|
||||||
copy.parentHasSeparateTransform = parentHasSeparateTransform
|
copy.parentHasSeparateTransform = parentHasSeparateTransform
|
||||||
copy.kDoc = kDoc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract fun internalCopy(): Field
|
protected abstract fun internalCopy(): Field
|
||||||
|
|||||||
+2
-9
@@ -187,19 +187,12 @@ sealed class Field(
|
|||||||
|
|
||||||
override fun copy() = internalCopy().also(::updateFieldsInCopy)
|
override fun copy() = internalCopy().also(::updateFieldsInCopy)
|
||||||
|
|
||||||
protected fun updateFieldsInCopy(copy: Field) {
|
override fun updateFieldsInCopy(copy: Field) {
|
||||||
copy.needAcceptAndTransform = needAcceptAndTransform
|
super.updateFieldsInCopy(copy)
|
||||||
copy.useInBaseTransformerDetection = useInBaseTransformerDetection
|
|
||||||
copy.isMutable = isMutable
|
|
||||||
copy.optInAnnotation = optInAnnotation
|
|
||||||
copy.baseDefaultValue = baseDefaultValue
|
copy.baseDefaultValue = baseDefaultValue
|
||||||
copy.baseGetter = baseGetter
|
copy.baseGetter = baseGetter
|
||||||
copy.customUseInIrFactoryStrategy = customUseInIrFactoryStrategy
|
copy.customUseInIrFactoryStrategy = customUseInIrFactoryStrategy
|
||||||
copy.fromParent = fromParent
|
|
||||||
copy.customSetter = customSetter
|
copy.customSetter = customSetter
|
||||||
copy.visibility = visibility
|
|
||||||
copy.deprecation = deprecation
|
|
||||||
copy.kDoc = kDoc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract fun internalCopy(): Field
|
protected abstract fun internalCopy(): Field
|
||||||
|
|||||||
+13
@@ -87,4 +87,17 @@ abstract class AbstractField<Field : AbstractField<Field>> {
|
|||||||
* Returns a copy of this field.
|
* Returns a copy of this field.
|
||||||
*/
|
*/
|
||||||
abstract fun copy(): Field
|
abstract fun copy(): Field
|
||||||
|
|
||||||
|
protected open fun updateFieldsInCopy(copy: Field) {
|
||||||
|
copy.kDoc = kDoc
|
||||||
|
copy.arbitraryImportables += arbitraryImportables
|
||||||
|
copy.optInAnnotation = optInAnnotation
|
||||||
|
copy.isMutable = isMutable
|
||||||
|
copy.deprecation = deprecation
|
||||||
|
copy.visibility = visibility
|
||||||
|
copy.fromParent = fromParent
|
||||||
|
copy.useInBaseTransformerDetection = useInBaseTransformerDetection
|
||||||
|
copy.needAcceptAndTransform = needAcceptAndTransform
|
||||||
|
copy.overriddenTypes += overriddenTypes
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user