J2K: LazyTopDownAnalyzer - converter fixes

This commit is contained in:
Nikolay Krasko
2015-05-14 20:46:06 +03:00
parent 6caa1e644d
commit ea789845aa
@@ -21,40 +21,31 @@ import com.google.common.collect.Multimap
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.diagnostics.Errors.CONSTRUCTOR_IN_TRAIT
import org.jetbrains.kotlin.diagnostics.Errors.MANY_COMPANION_OBJECTS
import org.jetbrains.kotlin.diagnostics.Errors.SECONDARY_CONSTRUCTOR_IN_OBJECT
import org.jetbrains.kotlin.diagnostics.Errors.UNSUPPORTED
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo
import org.jetbrains.kotlin.resolve.lazy.* import org.jetbrains.kotlin.resolve.lazy.*
import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassDescriptor import org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassDescriptor
import org.jetbrains.kotlin.resolve.resolveUtil.* import org.jetbrains.kotlin.resolve.resolveUtil.checkTraitRequirements
import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker
import javax.inject.Inject
import java.util.ArrayList import java.util.ArrayList
import javax.inject.Inject
import org.jetbrains.kotlin.diagnostics.Errors.*
public class LazyTopDownAnalyzer { public class LazyTopDownAnalyzer {
private var trace: BindingTrace? = null private var trace: BindingTrace? = null
private var declarationResolver: DeclarationResolver? = null private var declarationResolver: DeclarationResolver? = null
private var overrideResolver: OverrideResolver? = null private var overrideResolver: OverrideResolver? = null
private var overloadResolver: OverloadResolver? = null private var overloadResolver: OverloadResolver? = null
private var varianceChecker: VarianceChecker? = null private var varianceChecker: VarianceChecker? = null
private var moduleDescriptor: ModuleDescriptor? = null private var moduleDescriptor: ModuleDescriptor? = null
private var lazyDeclarationResolver: LazyDeclarationResolver? = null private var lazyDeclarationResolver: LazyDeclarationResolver? = null
private var bodyResolver: BodyResolver? = null private var bodyResolver: BodyResolver? = null
private var topLevelDescriptorProvider: TopLevelDescriptorProvider? = null private var topLevelDescriptorProvider: TopLevelDescriptorProvider? = null
private var fileScopeProvider: FileScopeProvider? = null private var fileScopeProvider: FileScopeProvider? = null
private var declarationScopeProvider: DeclarationScopeProvider? = null private var declarationScopeProvider: DeclarationScopeProvider? = null
Inject Inject
@@ -135,10 +126,9 @@ public class LazyTopDownAnalyzer {
override fun visitJetFile(file: JetFile) { override fun visitJetFile(file: JetFile) {
if (file.isScript()) { if (file.isScript()) {
val script = file.getScript() val script = file.getScript() ?: throw AssertionError("getScript() is null for file: $file")
assert(script != null)
DescriptorResolver.registerFileInPackage(trace, file) DescriptorResolver.registerFileInPackage(trace!!, file)
c.getScripts().put(script, topLevelDescriptorProvider!!.getScriptDescriptor(script)) c.getScripts().put(script, topLevelDescriptorProvider!!.getScriptDescriptor(script))
} }
else { else {
@@ -148,7 +138,7 @@ public class LazyTopDownAnalyzer {
c.addFile(file) c.addFile(file)
packageDirective!!.accept(this) packageDirective!!.accept(this)
DescriptorResolver.registerFileInPackage(trace, file) DescriptorResolver.registerFileInPackage(trace!!, file)
registerDeclarations(file.getDeclarations()) registerDeclarations(file.getDeclarations())
@@ -157,7 +147,7 @@ public class LazyTopDownAnalyzer {
} }
override fun visitPackageDirective(directive: JetPackageDirective) { override fun visitPackageDirective(directive: JetPackageDirective) {
DescriptorResolver.resolvePackageHeader(directive, moduleDescriptor, trace) DescriptorResolver.resolvePackageHeader(directive, moduleDescriptor!!, trace!!)
} }
override fun visitImportDirective(importDirective: JetImportDirective) { override fun visitImportDirective(importDirective: JetImportDirective) {
@@ -255,16 +245,16 @@ public class LazyTopDownAnalyzer {
resolveAllHeadersInClasses(c) resolveAllHeadersInClasses(c)
declarationResolver!!.checkRedeclarationsInPackages(topLevelDescriptorProvider, topLevelFqNames) declarationResolver!!.checkRedeclarationsInPackages(topLevelDescriptorProvider!!, topLevelFqNames)
declarationResolver!!.checkRedeclarations(c) declarationResolver!!.checkRedeclarations(c)
checkTraitRequirements(c.getDeclaredClasses(), trace) checkTraitRequirements(c.getDeclaredClasses(), trace!!)
overrideResolver!!.check(c) overrideResolver!!.check(c)
varianceChecker!!.check(c) varianceChecker!!.check(c)
declarationResolver!!.resolveAnnotationsOnFiles(c, fileScopeProvider) declarationResolver!!.resolveAnnotationsOnFiles(c, fileScopeProvider!!)
overloadResolver!!.process(c) overloadResolver!!.process(c)