Simplified LazyResolveBuiltinClassesTest.

Since now builtins are resolved lazily, we need to compare it only with hardcopy.
This commit is contained in:
Evgeny Gerashchenko
2012-12-26 17:58:11 +04:00
parent d89f00e981
commit d9cbeadfff
@@ -16,40 +16,14 @@
package org.jetbrains.jet.lang.resolve.lazy;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.Function;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.ConfigurationKind;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.lang.DefaultModuleConfiguration;
import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
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.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
import org.jetbrains.jet.lang.resolve.ImportPath;
import org.jetbrains.jet.lang.resolve.java.JavaToKotlinClassMap;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.test.util.NamespaceComparator;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* @author abreslav
@@ -62,66 +36,9 @@ public class LazyResolveBuiltinClassesTest extends KotlinTestWithEnvironment {
@Test
public void testJetStandardLibrary() throws Exception {
List<JetFile> files = Lists.newArrayList();
addJetFilesFromDir(files, new File("compiler/frontend/src/jet"));
NamespaceDescriptor builtInsPackage = KotlinBuiltIns.getInstance().getBuiltInsPackage();
NamespaceComparator.compareNamespaces(builtInsPackage, builtInsPackage,
NamespaceComparator.RECURSIVE, new File("compiler/testData/builtin-classes.txt"));
final Map<FqName, Name> aliases = ImmutableMap.<FqName, Name>builder()
.put(new FqName("jet.Unit"), Name.identifier("Tuple0"))
.build();
ModuleDescriptor lazyModule = new ModuleDescriptor(Name.special("<lazy module>"));
ResolveSession session = new ResolveSession(
getProject(),
lazyModule,
new SpecialModuleConfiguration(),
new FileBasedDeclarationProviderFactory(files),
new Function<FqName, Name>() {
@Override
public Name fun(FqName name) {
return aliases.get(name);
}
},
Predicates.in(Sets.newHashSet(new FqNameUnsafe("jet.Any"), new FqNameUnsafe("jet.Nothing"))),
new BindingTraceContext());
NamespaceDescriptor jetNamespaceFromJSL =
(NamespaceDescriptor) KotlinBuiltIns.getInstance().getInt().getContainingDeclaration();
NamespaceDescriptor jetNamespaceFromLazy = lazyModule.getRootNamespace().getMemberScope().getNamespace(
jetNamespaceFromJSL.getName());
NamespaceComparator.compareNamespaces(jetNamespaceFromJSL, jetNamespaceFromLazy,
NamespaceComparator.RECURSIVE,
new File("compiler/testData/builtin-classes.txt"));
}
private void addJetFilesFromDir(List<JetFile> files, File jetDir) throws IOException {
for (File file : jetDir.listFiles()) {
if (FileUtil.getExtension(file.getName()).equals("jet")) {
files.add(JetPsiFactory.createFile(getProject(), file.getName(), FileUtil.loadFile(file, true)));
}
}
}
private class SpecialModuleConfiguration implements ModuleConfiguration {
@Override
public void addDefaultImports(@NotNull Collection<JetImportDirective> directives) {
for (ImportPath defaultJetImport : DefaultModuleConfiguration.DEFAULT_JET_IMPORTS) {
directives.add(JetPsiFactory.createImportDirective(getProject(), defaultJetImport));
}
}
@Override
public void extendNamespaceScope(@NotNull BindingTrace trace,
@NotNull NamespaceDescriptor namespaceDescriptor,
@NotNull WritableScope namespaceMemberScope) {
// DO nothing
}
@NotNull
@Override
public PlatformToKotlinClassMap getPlatformToKotlinClassMap() {
return JavaToKotlinClassMap.getInstance();
}
}
}