LTDA: Make BuiltinsReferenceResolver compatible with Lazy TDA

This commit is contained in:
Nikolay Krasko
2014-09-03 15:02:58 +04:00
parent cb2a9168a7
commit a2ddaeca77
@@ -32,6 +32,7 @@ import com.intellij.psi.PsiManager;
import com.intellij.util.Function; import com.intellij.util.Function;
import com.intellij.util.PathUtil; import com.intellij.util.PathUtil;
import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.ContainerUtil;
import kotlin.KotlinPackage;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly; import org.jetbrains.annotations.TestOnly;
@@ -54,10 +55,7 @@ import org.jetbrains.jet.utils.UtilsPackage;
import java.io.File; import java.io.File;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.util.Collection; import java.util.*;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.unwrapFakeOverride; import static org.jetbrains.jet.lang.resolve.DescriptorUtils.unwrapFakeOverride;
@@ -67,7 +65,7 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent {
private volatile BindingContext bindingContext; private volatile BindingContext bindingContext;
private volatile Set<JetFile> builtInsSources; private volatile Set<JetFile> builtInsSources;
private volatile MutablePackageFragmentDescriptor builtinsPackageFragment; private volatile PackageFragmentDescriptor builtinsPackageFragment;
public BuiltInsReferenceResolver(Project project) { public BuiltInsReferenceResolver(Project project) {
super(project); super(project);
@@ -112,7 +110,11 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent {
TopDownAnalyzer analyzer = injector.getTopDownAnalyzer(); TopDownAnalyzer analyzer = injector.getTopDownAnalyzer();
analyzer.analyzeFiles(topDownAnalysisParameters, jetBuiltInsFiles); analyzer.analyzeFiles(topDownAnalysisParameters, jetBuiltInsFiles);
builtinsPackageFragment = analyzer.getPackageFragmentProvider().getOrCreateFragment(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME); List<PackageFragmentDescriptor> fragments =
module.getPackageFragmentProvider().getPackageFragments(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME);
builtinsPackageFragment = KotlinPackage.single(fragments);
builtInsSources = Sets.newHashSet(jetBuiltInsFiles); builtInsSources = Sets.newHashSet(jetBuiltInsFiles);
bindingContext = trace.getBindingContext(); bindingContext = trace.getBindingContext();
} }