Clean project code after #KT-3996 fix
No overload resolution ambiguity in smart-casts
This commit is contained in:
@@ -33,8 +33,7 @@ public fun PsiElement.getKotlinFqName(): FqName? {
|
|||||||
return when (element) {
|
return when (element) {
|
||||||
is PsiPackage -> FqName(element.getQualifiedName())
|
is PsiPackage -> FqName(element.getQualifiedName())
|
||||||
is PsiClass -> element.getQualifiedName()?.let { FqName(it) }
|
is PsiClass -> element.getQualifiedName()?.let { FqName(it) }
|
||||||
// as is necessary because of unresolved ambiguity: KT-3996
|
is PsiMember -> element.getName()?.let { name ->
|
||||||
is PsiMember -> (element as PsiMember).getName()?.let { name ->
|
|
||||||
val prefix = element.getContainingClass()?.getQualifiedName()
|
val prefix = element.getContainingClass()?.getQualifiedName()
|
||||||
FqName(if (prefix != null) "$prefix.$name" else name)
|
FqName(if (prefix != null) "$prefix.$name" else name)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -34,8 +34,7 @@ public class KotlinInheritedMembersNodeProvider: InheritedMembersNodeProvider<Tr
|
|||||||
val element = node.getElement()
|
val element = node.getElement()
|
||||||
if (element !is KtClassOrObject) return listOf()
|
if (element !is KtClassOrObject) return listOf()
|
||||||
|
|
||||||
@Suppress("USELESS_CAST") // KT-3996 Workaround
|
val project = element.project
|
||||||
val project = (element as NavigatablePsiElement).getProject()
|
|
||||||
|
|
||||||
val context = element.analyze()
|
val context = element.analyze()
|
||||||
val descriptor = context[BindingContext.DECLARATION_TO_DESCRIPTOR, element]
|
val descriptor = context[BindingContext.DECLARATION_TO_DESCRIPTOR, element]
|
||||||
|
|||||||
@@ -57,12 +57,8 @@ public class KotlinElementDescriptionProvider : ElementDescriptionProvider {
|
|||||||
|
|
||||||
if (targetElement !is PsiNamedElement || targetElement !is KtElement) return null
|
if (targetElement !is PsiNamedElement || targetElement !is KtElement) return null
|
||||||
|
|
||||||
// as is necessary because of ambiguity: see KT-3996
|
|
||||||
val name = (targetElement as PsiNamedElement).getName()
|
|
||||||
|
|
||||||
return when(location) {
|
return when(location) {
|
||||||
is UsageViewLongNameLocation ->
|
is UsageViewLongNameLocation -> targetElement.getName()
|
||||||
name
|
|
||||||
is RefactoringDescriptionLocation -> {
|
is RefactoringDescriptionLocation -> {
|
||||||
val kind = elementKind() ?: return null
|
val kind = elementKind() ?: return null
|
||||||
val descriptor = targetDescriptor() ?: return null
|
val descriptor = targetDescriptor() ?: return null
|
||||||
|
|||||||
Reference in New Issue
Block a user