[ULC] Add JvmDeclarationOriginKind.DELEGATION to DeclarationOriginKindForOrigin of delegated methods
This commit is contained in:
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.resolve.annotations.JVM_STATIC_ANNOTATION_FQ_NAME
|
|||||||
import org.jetbrains.kotlin.resolve.annotations.argumentValue
|
import org.jetbrains.kotlin.resolve.annotations.argumentValue
|
||||||
import org.jetbrains.kotlin.resolve.constants.EnumValue
|
import org.jetbrains.kotlin.resolve.constants.EnumValue
|
||||||
import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_OVERLOADS_FQ_NAME
|
import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_OVERLOADS_FQ_NAME
|
||||||
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKind
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.typeUtil.isAnyOrNullableAny
|
import org.jetbrains.kotlin.types.typeUtil.isAnyOrNullableAny
|
||||||
|
|
||||||
@@ -341,7 +342,7 @@ open class KtUltraLightClass(classOrObject: KtClassOrObject, internal val suppor
|
|||||||
|
|
||||||
object : DataClassMethodGenerator(classOrObject, bindingContext) {
|
object : DataClassMethodGenerator(classOrObject, bindingContext) {
|
||||||
private fun addFunction(descriptor: FunctionDescriptor, declarationForOrigin: KtDeclaration? = null) {
|
private fun addFunction(descriptor: FunctionDescriptor, declarationForOrigin: KtDeclaration? = null) {
|
||||||
result.add(createGeneratedMethodFromDescriptor(descriptor, declarationForOrigin))
|
result.add(createGeneratedMethodFromDescriptor(descriptor, JvmDeclarationOriginKind.OTHER, declarationForOrigin))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun generateComponentFunction(function: FunctionDescriptor, parameter: ValueParameterDescriptor) {
|
override fun generateComponentFunction(function: FunctionDescriptor, parameter: ValueParameterDescriptor) {
|
||||||
@@ -387,9 +388,17 @@ open class KtUltraLightClass(classOrObject: KtClassOrObject, internal val suppor
|
|||||||
when (delegate) {
|
when (delegate) {
|
||||||
|
|
||||||
is PropertyDescriptor -> delegate.accessors.mapTo(result) {
|
is PropertyDescriptor -> delegate.accessors.mapTo(result) {
|
||||||
createGeneratedMethodFromDescriptor(it)
|
createGeneratedMethodFromDescriptor(
|
||||||
|
descriptor = it,
|
||||||
|
declarationOriginKindForOrigin = JvmDeclarationOriginKind.DELEGATION
|
||||||
|
)
|
||||||
}
|
}
|
||||||
is FunctionDescriptor -> result.add(createGeneratedMethodFromDescriptor(delegate))
|
is FunctionDescriptor -> result.add(
|
||||||
|
createGeneratedMethodFromDescriptor(
|
||||||
|
descriptor = delegate,
|
||||||
|
declarationOriginKindForOrigin = JvmDeclarationOriginKind.DELEGATION
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,7 +236,8 @@ fun KotlinType.cleanFromAnonymousTypes(): KotlinType? {
|
|||||||
|
|
||||||
fun KtUltraLightClass.createGeneratedMethodFromDescriptor(
|
fun KtUltraLightClass.createGeneratedMethodFromDescriptor(
|
||||||
descriptor: FunctionDescriptor,
|
descriptor: FunctionDescriptor,
|
||||||
declarationForOrigin: KtDeclaration? = null,
|
declarationOriginKindForOrigin: JvmDeclarationOriginKind = JvmDeclarationOriginKind.OTHER,
|
||||||
|
declarationForOrigin: KtDeclaration? = null
|
||||||
): KtLightMethod {
|
): KtLightMethod {
|
||||||
|
|
||||||
val kotlinOrigin =
|
val kotlinOrigin =
|
||||||
@@ -244,7 +245,7 @@ fun KtUltraLightClass.createGeneratedMethodFromDescriptor(
|
|||||||
?: DescriptorToSourceUtils.descriptorToDeclaration(descriptor) as? KtDeclaration
|
?: DescriptorToSourceUtils.descriptorToDeclaration(descriptor) as? KtDeclaration
|
||||||
?: kotlinOrigin
|
?: kotlinOrigin
|
||||||
|
|
||||||
val lightMemberOrigin = LightMemberOriginForDeclaration(kotlinOrigin, JvmDeclarationOriginKind.OTHER)
|
val lightMemberOrigin = LightMemberOriginForDeclaration(kotlinOrigin, declarationOriginKindForOrigin)
|
||||||
|
|
||||||
return KtUltraLightMethodForDescriptor(descriptor, lightMethod(descriptor), lightMemberOrigin, support, this)
|
return KtUltraLightMethodForDescriptor(descriptor, lightMethod(descriptor), lightMemberOrigin, support, this)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user