[Analysis API] introduce base KtTypeScope -> KtScope converter
This commit is contained in:
@@ -58,7 +58,8 @@ public abstract class KtAnalysisSession(final override val token: KtLifetimeToke
|
||||
KtInheritorsProviderMixIn,
|
||||
KtTypeCreatorMixIn,
|
||||
KtAnalysisScopeProviderMixIn,
|
||||
KtSignatureSubsitutorMixIn {
|
||||
KtSignatureSubsitutorMixIn,
|
||||
KtScopeSubstitutionMixIn {
|
||||
|
||||
public abstract val useSiteModule: KtModule
|
||||
|
||||
@@ -147,6 +148,9 @@ public abstract class KtAnalysisSession(final override val token: KtLifetimeToke
|
||||
internal val substitutionProvider: KtSignatureSubsitutor get() = substitutionProviderImpl
|
||||
protected abstract val substitutionProviderImpl: KtSignatureSubsitutor
|
||||
|
||||
internal val scopeSubstitution: KtScopeSubstitution get() = scopeSubstitutionImpl
|
||||
protected abstract val scopeSubstitutionImpl: KtScopeSubstitution
|
||||
|
||||
@PublishedApi
|
||||
internal val typesCreator: KtTypeCreator
|
||||
get() = typesCreatorImpl
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.components
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KtScope
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KtTypeScope
|
||||
|
||||
public abstract class KtScopeSubstitution : KtAnalysisSessionComponent() {
|
||||
public abstract fun getDeclarationScope(scope: KtTypeScope): KtScope
|
||||
}
|
||||
|
||||
public interface KtScopeSubstitutionMixIn : KtAnalysisSessionMixIn {
|
||||
public fun KtTypeScope.getDeclarationScope(): KtScope =
|
||||
withValidityAssertion { analysisSession.scopeSubstitution.getDeclarationScope(this) }
|
||||
}
|
||||
Reference in New Issue
Block a user