Uast: getMaybeLightElement cleanup
This commit is contained in:
@@ -62,7 +62,7 @@ abstract class KotlinUAnnotationBase<T : KtCallElement>(
|
|||||||
|
|
||||||
protected abstract fun computeClassDescriptor(): ClassDescriptor?
|
protected abstract fun computeClassDescriptor(): ClassDescriptor?
|
||||||
|
|
||||||
override fun resolve(): PsiClass? = computeClassDescriptor()?.toSource()?.getMaybeLightElement(this) as? PsiClass
|
override fun resolve(): PsiClass? = computeClassDescriptor()?.toSource()?.getMaybeLightElement() as? PsiClass
|
||||||
|
|
||||||
override fun findAttributeValue(name: String?): UExpression? =
|
override fun findAttributeValue(name: String?): UExpression? =
|
||||||
findDeclaredAttributeValue(name) ?: findAttributeDefaultValue(name ?: "value")
|
findDeclaredAttributeValue(name) ?: findAttributeDefaultValue(name ?: "value")
|
||||||
|
|||||||
+1
-1
@@ -60,7 +60,7 @@ abstract class KotlinUAnnotationBase<T : KtCallElement>(
|
|||||||
|
|
||||||
protected abstract fun computeClassDescriptor(): ClassDescriptor?
|
protected abstract fun computeClassDescriptor(): ClassDescriptor?
|
||||||
|
|
||||||
override fun resolve(): PsiClass? = computeClassDescriptor()?.toSource()?.getMaybeLightElement(this) as? PsiClass
|
override fun resolve(): PsiClass? = computeClassDescriptor()?.toSource()?.getMaybeLightElement() as? PsiClass
|
||||||
|
|
||||||
override fun findAttributeValue(name: String?): UExpression? =
|
override fun findAttributeValue(name: String?): UExpression? =
|
||||||
findDeclaredAttributeValue(name) ?: findAttributeDefaultValue(name ?: "value")
|
findDeclaredAttributeValue(name) ?: findAttributeDefaultValue(name ?: "value")
|
||||||
|
|||||||
+1
-1
@@ -65,7 +65,7 @@ class KotlinUImportStatement(
|
|||||||
val reference = psi.getQualifiedElementSelector() as? KtReferenceExpression ?: return null
|
val reference = psi.getQualifiedElementSelector() as? KtReferenceExpression ?: return null
|
||||||
val bindingContext = reference.analyze()
|
val bindingContext = reference.analyze()
|
||||||
val referenceTarget = bindingContext[BindingContext.REFERENCE_TARGET, reference] ?: return null
|
val referenceTarget = bindingContext[BindingContext.REFERENCE_TARGET, reference] ?: return null
|
||||||
return referenceTarget.toSource()?.getMaybeLightElement(this)
|
return referenceTarget.toSource()?.getMaybeLightElement()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -216,7 +216,7 @@ class KotlinClassViaConstructorUSimpleReferenceExpression(
|
|||||||
private val resolved by lazy {
|
private val resolved by lazy {
|
||||||
when (val resultingDescriptor = psi.getResolvedCall(psi.analyze())?.resultingDescriptor) {
|
when (val resultingDescriptor = psi.getResolvedCall(psi.analyze())?.resultingDescriptor) {
|
||||||
is ConstructorDescriptor -> {
|
is ConstructorDescriptor -> {
|
||||||
resultingDescriptor.constructedClass.toSource()?.getMaybeLightElement(this)
|
resultingDescriptor.constructedClass.toSource()?.getMaybeLightElement()
|
||||||
?: (resultingDescriptor as? DeserializedCallableMemberDescriptor)?.let { resolveContainingDeserializedClass(psi, it) }
|
?: (resultingDescriptor as? DeserializedCallableMemberDescriptor)?.let { resolveContainingDeserializedClass(psi, it) }
|
||||||
}
|
}
|
||||||
is SamConstructorDescriptor ->
|
is SamConstructorDescriptor ->
|
||||||
|
|||||||
+1
-1
@@ -218,7 +218,7 @@ class KotlinClassViaConstructorUSimpleReferenceExpression(
|
|||||||
private val resolved by lazy {
|
private val resolved by lazy {
|
||||||
when (val resultingDescriptor = psi.getResolvedCall(psi.analyze())?.resultingDescriptor) {
|
when (val resultingDescriptor = psi.getResolvedCall(psi.analyze())?.resultingDescriptor) {
|
||||||
is ConstructorDescriptor -> {
|
is ConstructorDescriptor -> {
|
||||||
resultingDescriptor.constructedClass.toSource()?.getMaybeLightElement(this)
|
resultingDescriptor.constructedClass.toSource()?.getMaybeLightElement()
|
||||||
?: (resultingDescriptor as? DeserializedCallableMemberDescriptor)?.let { resolveContainingDeserializedClass(psi, it) }
|
?: (resultingDescriptor as? DeserializedCallableMemberDescriptor)?.let { resolveContainingDeserializedClass(psi, it) }
|
||||||
}
|
}
|
||||||
is SamConstructorDescriptor ->
|
is SamConstructorDescriptor ->
|
||||||
|
|||||||
+2
-2
@@ -252,7 +252,7 @@ internal fun KtClassOrObject.toPsiType(): PsiType {
|
|||||||
return PsiTypesUtil.getClassType(lightClass)
|
return PsiTypesUtil.getClassType(lightClass)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun PsiElement.getMaybeLightElement(context: UElement? = null /* TODO: remove */): PsiElement? {
|
internal fun PsiElement.getMaybeLightElement(): PsiElement? {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is KtDeclaration -> {
|
is KtDeclaration -> {
|
||||||
val lightElement = toLightElements().firstOrNull()
|
val lightElement = toLightElements().firstOrNull()
|
||||||
@@ -279,7 +279,7 @@ internal fun KtElement.resolveCallToDeclaration(
|
|||||||
resolvedCall.resultingDescriptor
|
resolvedCall.resultingDescriptor
|
||||||
}
|
}
|
||||||
|
|
||||||
return descriptor.toSource()?.getMaybeLightElement(context)
|
return descriptor.toSource()?.getMaybeLightElement()
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun KtExpression.unwrapBlockOrParenthesis(): KtExpression {
|
internal fun KtExpression.unwrapBlockOrParenthesis(): KtExpression {
|
||||||
|
|||||||
+1
-1
@@ -34,7 +34,7 @@ internal fun UElement.getResolveResultVariants(ktExpression: KtExpression?): Ite
|
|||||||
val referenceVariants = getReferenceVariants(ktExpression, ktExpression.name ?: ktExpression.text)
|
val referenceVariants = getReferenceVariants(ktExpression, ktExpression.name ?: ktExpression.text)
|
||||||
|
|
||||||
fun asCandidateInfo(descriptor: DeclarationDescriptor): CandidateInfo? =
|
fun asCandidateInfo(descriptor: DeclarationDescriptor): CandidateInfo? =
|
||||||
descriptor.toSource()?.getMaybeLightElement(this)?.let { CandidateInfo(it, PsiSubstitutor.EMPTY) }
|
descriptor.toSource()?.getMaybeLightElement()?.let { CandidateInfo(it, PsiSubstitutor.EMPTY) }
|
||||||
|
|
||||||
return referenceVariants.mapNotNull(::asCandidateInfo).asIterable()
|
return referenceVariants.mapNotNull(::asCandidateInfo).asIterable()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user