KT-16250 Handle type alias as imported name qualifier
#KT-16250 Fixed
This commit is contained in:
committed by
Stanislav Erokhin
parent
5f843f6759
commit
20dc1a047d
@@ -214,11 +214,13 @@ class QualifiedExpressionResolver {
|
||||
return null
|
||||
}
|
||||
|
||||
val packageOrClassDescriptor = resolveToPackageOrClass(
|
||||
val resolvedDescriptor = resolveToPackageOrClass(
|
||||
path.subList(0, path.size - 1), moduleDescriptor, trace,
|
||||
packageFragmentForVisibilityCheck, scopeForFirstPart = null, position = QualifierPosition.IMPORT
|
||||
) ?: return null
|
||||
|
||||
val packageOrClassDescriptor = (resolvedDescriptor as? TypeAliasDescriptor)?.let { it.classDescriptor ?: return null } ?: resolvedDescriptor
|
||||
|
||||
return LazyExplicitImportScope(packageOrClassDescriptor, packageFragmentForVisibilityCheck, lastPart.name, aliasName) {
|
||||
candidates ->
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
// FILE: 1.kt
|
||||
package bar
|
||||
|
||||
typealias HostAlias = Host
|
||||
|
||||
object Host {
|
||||
fun foo() {}
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
import bar.HostAlias.foo
|
||||
|
||||
fun test() {
|
||||
foo()
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package
|
||||
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
package bar {
|
||||
|
||||
public object Host {
|
||||
private constructor Host()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
public typealias HostAlias = bar.Host
|
||||
}
|
||||
@@ -21913,6 +21913,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("importFromTypeAliasObject.kt")
|
||||
public void testImportFromTypeAliasObject() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/importFromTypeAliasObject.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("inGenerics.kt")
|
||||
public void testInGenerics() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/inGenerics.kt");
|
||||
|
||||
Reference in New Issue
Block a user