Clean project code after #KT-3996 fix

No overload resolution ambiguity in smart-casts
This commit is contained in:
Denis Zharkov
2015-12-17 18:03:10 +03:00
parent 0cc09872b6
commit 73b961e885
3 changed files with 3 additions and 9 deletions
@@ -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)
} }
@@ -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