Extracting shortnames of toplevel packages factored out as a utility method

This commit is contained in:
Andrey Breslav
2012-07-27 12:32:49 +04:00
parent 781c1f4eb0
commit 3e37f21403
2 changed files with 21 additions and 18 deletions
@@ -18,7 +18,6 @@ package org.jetbrains.jet.lang.resolve.lazy;
import com.google.common.base.Predicates;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.ConfigurationKind;
@@ -28,9 +27,7 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetNamespaceHeader;
import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.test.util.NamespaceComparator;
@@ -57,18 +54,7 @@ public class LazyResolveStdlibLoadingTest extends KotlinTestWithEnvironmentManag
protected void doTestForGivenFiles(
List<JetFile> files
) {
Set<Name> namespaceShortNames = Sets.newLinkedHashSet();
for (JetFile file : files) {
JetNamespaceHeader header = file.getNamespaceHeader();
if (header != null) {
List<JetSimpleNameExpression> names = header.getParentNamespaceNames();
Name name = names.isEmpty() ? header.getNameAsName() : names.get(0).getReferencedNameAsName();
namespaceShortNames.add(name);
}
else {
throw new IllegalStateException("There's a file in stdlib that declares the default package: " + file.getName());
}
}
Set<Name> namespaceShortNames = LazyResolveTestUtil.getTopLevelPackagesFromFileList(files);
ModuleDescriptor module = LazyResolveTestUtil.resolveEagerly(files, stdlibEnvironment);
ModuleDescriptor lazyModule = LazyResolveTestUtil.resolveLazily(files, stdlibEnvironment);
@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.resolve.lazy;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Sets;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull;
@@ -30,9 +31,7 @@ import org.jetbrains.jet.lang.DefaultModuleConfiguration;
import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetImportDirective;
import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.*;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.java.JavaPackageScope;
@@ -45,6 +44,7 @@ import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
/**
* @author abreslav
@@ -122,4 +122,21 @@ public class LazyResolveTestUtil {
session = new ResolveSession(project, lazyModule, moduleConfiguration, declarationProviderFactory);
return lazyModule;
}
@NotNull
public static Set<Name> getTopLevelPackagesFromFileList(@NotNull List<JetFile> files) {
Set<Name> shortNames = Sets.newLinkedHashSet();
for (JetFile file : files) {
JetNamespaceHeader header = file.getNamespaceHeader();
if (header != null) {
List<JetSimpleNameExpression> names = header.getParentNamespaceNames();
Name name = names.isEmpty() ? header.getNameAsName() : names.get(0).getReferencedNameAsName();
shortNames.add(name);
}
else {
throw new IllegalStateException("There's a file that declares the default package: " + file.getName());
}
}
return shortNames;
}
}