Minor, remove code duplication in WrappedDescriptors
This commit is contained in:
+14
-16
@@ -382,14 +382,8 @@ open class WrappedSimpleFunctionDescriptor(
|
|||||||
var originalDescriptor: FunctionDescriptor? = null
|
var originalDescriptor: FunctionDescriptor? = null
|
||||||
|
|
||||||
override fun getOverriddenDescriptors() = owner.overriddenSymbols.map { it.descriptor }
|
override fun getOverriddenDescriptors() = owner.overriddenSymbols.map { it.descriptor }
|
||||||
override fun getContainingDeclaration(): DeclarationDescriptor {
|
|
||||||
val parent = owner.parent
|
override fun getContainingDeclaration(): DeclarationDescriptor = getContainingDeclaration(owner)
|
||||||
return if (parent is IrClass && parent.origin == IrDeclarationOrigin.FILE_CLASS && parent.parent is IrExternalPackageFragment) {
|
|
||||||
return (parent.parent as IrExternalPackageFragment).packageFragmentDescriptor
|
|
||||||
} else {
|
|
||||||
(parent as IrSymbolOwner).symbol.descriptor
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getModality() = owner.modality
|
override fun getModality() = owner.modality
|
||||||
override fun getName() = owner.name
|
override fun getName() = owner.name
|
||||||
@@ -841,14 +835,7 @@ open class WrappedPropertyDescriptor(
|
|||||||
|
|
||||||
override fun isConst() = owner.isConst
|
override fun isConst() = owner.isConst
|
||||||
|
|
||||||
override fun getContainingDeclaration(): DeclarationDescriptor {
|
override fun getContainingDeclaration(): DeclarationDescriptor = getContainingDeclaration(owner)
|
||||||
val parent = owner.parent
|
|
||||||
return if (parent is IrClass && parent.origin == IrDeclarationOrigin.FILE_CLASS && parent.parent is IrExternalPackageFragment) {
|
|
||||||
return (parent.parent as IrExternalPackageFragment).packageFragmentDescriptor
|
|
||||||
} else {
|
|
||||||
(parent as IrSymbolOwner).symbol.descriptor
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun isLateInit() = owner.isLateinit
|
override fun isLateInit() = owner.isLateinit
|
||||||
|
|
||||||
@@ -993,3 +980,14 @@ open class WrappedFieldDescriptor(
|
|||||||
|
|
||||||
override fun <V : Any?> getUserData(key: CallableDescriptor.UserDataKey<V>?): V? = null
|
override fun <V : Any?> getUserData(key: CallableDescriptor.UserDataKey<V>?): V? = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getContainingDeclaration(declaration: IrDeclarationWithName): DeclarationDescriptor {
|
||||||
|
val parent = declaration.parent
|
||||||
|
return if (parent is IrClass && parent.origin == IrDeclarationOrigin.FILE_CLASS && parent.parent is IrExternalPackageFragment) {
|
||||||
|
// JVM IR adds facade classes for IR of functions/properties loaded from dependencies. However, these shouldn't exist
|
||||||
|
// in the descriptor hierarchy, since this is what the old backend (dealing with descriptors) expects.
|
||||||
|
return (parent.parent as IrExternalPackageFragment).packageFragmentDescriptor
|
||||||
|
} else {
|
||||||
|
(parent as IrSymbolOwner).symbol.descriptor
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user