Big refactoring. Migrating to package views and fragments.

This commit is contained in:
Evgeny Gerashchenko
2013-10-11 21:43:40 +04:00
parent 369824cd2e
commit 7abe6a5b4a
141 changed files with 1728 additions and 1465 deletions
@@ -133,17 +133,14 @@ public class CliLightClassGenerationSupport extends LightClassGenerationSupport
@NotNull
@Override
public Collection<JetFile> findFilesForPackage(@NotNull FqName fqName, @NotNull final GlobalSearchScope searchScope) {
NamespaceDescriptor namespaceDescriptor = getTrace().get(BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR, fqName);
if (namespaceDescriptor != null) {
Collection<JetFile> files = getTrace().get(BindingContext.NAMESPACE_TO_FILES, namespaceDescriptor);
if (files != null) {
return Collections2.filter(files, new Predicate<JetFile>() {
@Override
public boolean apply(JetFile input) {
return PsiSearchScopeUtil.isInScope(searchScope, input);
}
});
}
Collection<JetFile> files = getTrace().get(BindingContext.PACKAGE_TO_FILES, fqName);
if (files != null) {
return Collections2.filter(files, new Predicate<JetFile>() {
@Override
public boolean apply(JetFile input) {
return PsiSearchScopeUtil.isInScope(searchScope, input);
}
});
}
return Collections.emptyList();
}
@@ -45,7 +45,6 @@ import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorImpl;
import org.jetbrains.jet.lang.descriptors.impl.NamespaceLikeBuilderDummy;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetPsiUtil;
@@ -287,15 +286,12 @@ public class ReplInterpreter {
scope.changeLockLevel(WritableScope.LockLevel.BOTH);
NamespaceDescriptorImpl rootNs = injector.getNamespaceFactory().createNamespaceDescriptorPathIfNeeded(FqName.ROOT);
// map "jet" namespace into KotlinBuiltIns
// @see DefaultModuleConfiguraiton#extendNamespaceScope
injector.getNamespaceFactory().createNamespaceDescriptorPathIfNeeded(KotlinBuiltIns.getInstance().getBuiltInsPackageFqName());
module.addFragmentProvider(injector.getTopDownAnalyzer().getPackageFragmentProvider());
module.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider());
// Import a scope that contains all top-level namespaces that come from dependencies
// This makes the namespaces visible at all, does not import themselves
scope.importScope(rootNs.getMemberScope());
scope.importScope(module.getPackage(FqName.ROOT).getMemberScope());
if (lastLineScope != null) {
scope.importScope(lastLineScope);