Type alias: resolve type alias RHS during force-resolve.
This commit is contained in:
+2
-1
@@ -121,7 +121,8 @@ private object KotlinResolveDataProvider {
|
||||
KtTypeConstraint::class.java,
|
||||
KtSuperTypeList::class.java,
|
||||
KtTypeParameter::class.java,
|
||||
KtParameter::class.java
|
||||
KtParameter::class.java,
|
||||
KtTypeAlias::class.java
|
||||
)
|
||||
|
||||
fun findAnalyzableParent(element: KtElement): KtElement {
|
||||
|
||||
@@ -217,7 +217,8 @@ class ResolveElementCache(
|
||||
KtTypeParameter::class.java,
|
||||
KtTypeConstraint::class.java,
|
||||
KtPackageDirective::class.java,
|
||||
KtCodeFragment::class.java) as KtElement?
|
||||
KtCodeFragment::class.java,
|
||||
KtTypeAlias::class.java) as KtElement?
|
||||
|
||||
when (elementOfAdditionalResolve) {
|
||||
null -> {
|
||||
@@ -306,6 +307,8 @@ class ResolveElementCache(
|
||||
|
||||
is KtClass -> constructorAdditionalResolve(resolveSession, resolveElement, file)
|
||||
|
||||
is KtTypeAlias -> typealiasAdditionalResolve(resolveSession, resolveElement)
|
||||
|
||||
is KtTypeParameter -> typeParameterAdditionalResolve(resolveSession, resolveElement)
|
||||
|
||||
is KtTypeConstraint -> typeConstraintAdditionalResolve(resolveSession, resolveElement)
|
||||
@@ -503,6 +506,14 @@ class ResolveElementCache(
|
||||
return trace
|
||||
}
|
||||
|
||||
private fun typealiasAdditionalResolve(resolveSession: ResolveSession, typeAlias: KtTypeAlias): BindingTrace {
|
||||
val trace = createDelegatingTrace(typeAlias)
|
||||
val typeAliasDescriptor = resolveSession.resolveToDescriptor(typeAlias)
|
||||
ForceResolveUtil.forceResolveAllContents(typeAliasDescriptor)
|
||||
forceResolveAnnotationsInside(typeAlias)
|
||||
return trace
|
||||
}
|
||||
|
||||
private fun initializerAdditionalResolve(resolveSession: ResolveSession, anonymousInitializer: KtAnonymousInitializer, file: KtFile, statementFilter: StatementFilter): BindingTrace {
|
||||
val trace = createDelegatingTrace(anonymousInitializer)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user