Extracting shortnames of toplevel packages factored out as a utility method
This commit is contained in:
+1
-15
@@ -18,7 +18,6 @@ package org.jetbrains.jet.lang.resolve.lazy;
|
|||||||
|
|
||||||
import com.google.common.base.Predicates;
|
import com.google.common.base.Predicates;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Sets;
|
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.ConfigurationKind;
|
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.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
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.JetPsiFactory;
|
||||||
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
|
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.test.util.NamespaceComparator;
|
import org.jetbrains.jet.test.util.NamespaceComparator;
|
||||||
|
|
||||||
@@ -57,18 +54,7 @@ public class LazyResolveStdlibLoadingTest extends KotlinTestWithEnvironmentManag
|
|||||||
protected void doTestForGivenFiles(
|
protected void doTestForGivenFiles(
|
||||||
List<JetFile> files
|
List<JetFile> files
|
||||||
) {
|
) {
|
||||||
Set<Name> namespaceShortNames = Sets.newLinkedHashSet();
|
Set<Name> namespaceShortNames = LazyResolveTestUtil.getTopLevelPackagesFromFileList(files);
|
||||||
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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ModuleDescriptor module = LazyResolveTestUtil.resolveEagerly(files, stdlibEnvironment);
|
ModuleDescriptor module = LazyResolveTestUtil.resolveEagerly(files, stdlibEnvironment);
|
||||||
ModuleDescriptor lazyModule = LazyResolveTestUtil.resolveLazily(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.Predicate;
|
||||||
import com.google.common.base.Predicates;
|
import com.google.common.base.Predicates;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
import org.jetbrains.annotations.NotNull;
|
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.ModuleConfiguration;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.psi.JetImportDirective;
|
|
||||||
import org.jetbrains.jet.lang.psi.JetPsiFactory;
|
|
||||||
import org.jetbrains.jet.lang.resolve.*;
|
import org.jetbrains.jet.lang.resolve.*;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaPackageScope;
|
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.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author abreslav
|
* @author abreslav
|
||||||
@@ -122,4 +122,21 @@ public class LazyResolveTestUtil {
|
|||||||
session = new ResolveSession(project, lazyModule, moduleConfiguration, declarationProviderFactory);
|
session = new ResolveSession(project, lazyModule, moduleConfiguration, declarationProviderFactory);
|
||||||
return lazyModule;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user