Kapt: force resolve import references in partial analysis mode (required for import conversion in correctErrorTypes)

This commit is contained in:
Yan Zhulanow
2017-11-23 16:00:16 +09:00
parent 1a3317ae2b
commit a4a7db06d2
3 changed files with 8 additions and 1 deletions
@@ -50,12 +50,14 @@ open class PartialAnalysisHandlerExtension : AnalysisHandlerExtension {
val resolveSession = componentProvider.get<ResolveSession>()
val bodyResolver = componentProvider.get<BodyResolver>()
val declarationScopeProvider = componentProvider.get<DeclarationScopeProvider>()
val topDownAnalyzer = componentProvider.get<LazyTopDownAnalyzer>()
val topDownAnalysisContext = TopDownAnalysisContext(
TopDownAnalysisMode.TopLevelDeclarations, DataFlowInfo.EMPTY, declarationScopeProvider)
for (file in files) {
ForceResolveUtil.forceResolveAllContents(resolveSession.getFileAnnotations(file))
topDownAnalyzer.resolveImportsInFile(file)
}
doForEachDeclaration(files) { declaration ->
@@ -229,10 +229,14 @@ class LazyTopDownAnalyzer(
private fun resolveImportsInAllFiles(c: TopDownAnalysisContext) {
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>) {
for (typeAlias in typeAliases) {
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.*
import java.util.concurrent.TimeUnit.MICROSECONDS as MyMicroseconds
import kotlin.arrayOf
import a.b.ABC as MyABC
import bcd as MyBCD