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) {
is PsiPackage -> FqName(element.getQualifiedName())
is PsiClass -> element.getQualifiedName()?.let { FqName(it) }
// as is necessary because of unresolved ambiguity: KT-3996
is PsiMember -> (element as PsiMember).getName()?.let { name ->
is PsiMember -> element.getName()?.let { name ->
val prefix = element.getContainingClass()?.getQualifiedName()
FqName(if (prefix != null) "$prefix.$name" else name)
}
@@ -34,8 +34,7 @@ public class KotlinInheritedMembersNodeProvider: InheritedMembersNodeProvider<Tr
val element = node.getElement()
if (element !is KtClassOrObject) return listOf()
@Suppress("USELESS_CAST") // KT-3996 Workaround
val project = (element as NavigatablePsiElement).getProject()
val project = element.project
val context = element.analyze()
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
// as is necessary because of ambiguity: see KT-3996
val name = (targetElement as PsiNamedElement).getName()
return when(location) {
is UsageViewLongNameLocation ->
name
is UsageViewLongNameLocation -> targetElement.getName()
is RefactoringDescriptionLocation -> {
val kind = elementKind() ?: return null
val descriptor = targetDescriptor() ?: return null