KT-14680 import statement to typealias reported as unused when using only TA constructor

#KT-14680 fixed
This commit is contained in:
Simon Ogorodnik
2017-01-25 22:29:19 +03:00
committed by Simon Ogorodnik
parent 46bb636cea
commit f1c4230a68
9 changed files with 47 additions and 55 deletions
@@ -66,13 +66,14 @@ fun DeclarationDescriptor.canBeReferencedViaImport(): Boolean {
return !name.isSpecial
}
val parentClass = containingDeclaration as? ClassDescriptor ?: return false
if (!parentClass.canBeReferencedViaImport()) return false
//Both TypeAliasDescriptor and ClassDescriptor
val parentClassifier = containingDeclaration as? ClassifierDescriptorWithTypeParameters ?: return false
if (!parentClassifier.canBeReferencedViaImport()) return false
return when (this) {
is ConstructorDescriptor -> !parentClass.isInner // inner class constructors can't be referenced via import
is ClassDescriptor -> true
else -> parentClass.kind == ClassKind.OBJECT
is ConstructorDescriptor -> !parentClassifier.isInner // inner class constructors can't be referenced via import
is ClassDescriptor, is TypeAliasDescriptor -> true
else -> parentClassifier is ClassDescriptor && parentClassifier.kind == ClassKind.OBJECT
}
}