Kapt: force resolve import references in partial analysis mode (required for import conversion in correctErrorTypes)
This commit is contained in:
+2
@@ -50,12 +50,14 @@ open class PartialAnalysisHandlerExtension : AnalysisHandlerExtension {
|
|||||||
val resolveSession = componentProvider.get<ResolveSession>()
|
val resolveSession = componentProvider.get<ResolveSession>()
|
||||||
val bodyResolver = componentProvider.get<BodyResolver>()
|
val bodyResolver = componentProvider.get<BodyResolver>()
|
||||||
val declarationScopeProvider = componentProvider.get<DeclarationScopeProvider>()
|
val declarationScopeProvider = componentProvider.get<DeclarationScopeProvider>()
|
||||||
|
val topDownAnalyzer = componentProvider.get<LazyTopDownAnalyzer>()
|
||||||
|
|
||||||
val topDownAnalysisContext = TopDownAnalysisContext(
|
val topDownAnalysisContext = TopDownAnalysisContext(
|
||||||
TopDownAnalysisMode.TopLevelDeclarations, DataFlowInfo.EMPTY, declarationScopeProvider)
|
TopDownAnalysisMode.TopLevelDeclarations, DataFlowInfo.EMPTY, declarationScopeProvider)
|
||||||
|
|
||||||
for (file in files) {
|
for (file in files) {
|
||||||
ForceResolveUtil.forceResolveAllContents(resolveSession.getFileAnnotations(file))
|
ForceResolveUtil.forceResolveAllContents(resolveSession.getFileAnnotations(file))
|
||||||
|
topDownAnalyzer.resolveImportsInFile(file)
|
||||||
}
|
}
|
||||||
|
|
||||||
doForEachDeclaration(files) { declaration ->
|
doForEachDeclaration(files) { declaration ->
|
||||||
|
|||||||
@@ -229,10 +229,14 @@ class LazyTopDownAnalyzer(
|
|||||||
|
|
||||||
private fun resolveImportsInAllFiles(c: TopDownAnalysisContext) {
|
private fun resolveImportsInAllFiles(c: TopDownAnalysisContext) {
|
||||||
for (file in c.files + c.scripts.keys.map { it.containingKtFile }) {
|
for (file in c.files + c.scripts.keys.map { it.containingKtFile }) {
|
||||||
fileScopeProvider.getImportResolver(file).forceResolveAllImports()
|
resolveImportsInFile(file)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun resolveImportsInFile(file: KtFile) {
|
||||||
|
fileScopeProvider.getImportResolver(file).forceResolveAllImports()
|
||||||
|
}
|
||||||
|
|
||||||
private fun createTypeAliasDescriptors(c: TopDownAnalysisContext, topLevelFqNames: Multimap<FqName, KtElement>, typeAliases: List<KtTypeAlias>) {
|
private fun createTypeAliasDescriptors(c: TopDownAnalysisContext, topLevelFqNames: Multimap<FqName, KtElement>, typeAliases: List<KtTypeAlias>) {
|
||||||
for (typeAlias in typeAliases) {
|
for (typeAlias in typeAliases) {
|
||||||
val descriptor = lazyDeclarationResolver.resolveToDescriptor(typeAlias) as TypeAliasDescriptor
|
val descriptor = lazyDeclarationResolver.resolveToDescriptor(typeAlias) as TypeAliasDescriptor
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import java.util.Date as MyDate
|
|||||||
import java.util.concurrent.TimeUnit as MyTimeUnit
|
import java.util.concurrent.TimeUnit as MyTimeUnit
|
||||||
import java.util.concurrent.TimeUnit.*
|
import java.util.concurrent.TimeUnit.*
|
||||||
import java.util.concurrent.TimeUnit.MICROSECONDS as MyMicroseconds
|
import java.util.concurrent.TimeUnit.MICROSECONDS as MyMicroseconds
|
||||||
|
import kotlin.arrayOf
|
||||||
import a.b.ABC as MyABC
|
import a.b.ABC as MyABC
|
||||||
import bcd as MyBCD
|
import bcd as MyBCD
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user