Merge remote branch 'origin/master'

This commit is contained in:
Andrey Breslav
2011-10-27 20:16:27 +04:00
7 changed files with 81 additions and 170 deletions
@@ -0,0 +1,18 @@
package org.jetbrains.jet;
import com.intellij.core.JavaCoreEnvironment;
import com.intellij.openapi.Disposable;
import org.jetbrains.jet.lang.parsing.JetParserDefinition;
import org.jetbrains.jet.plugin.JetFileType;
/**
* @author yole
*/
public class JetCoreEnvironment extends JavaCoreEnvironment {
public JetCoreEnvironment(Disposable parentDisposable) {
super(parentDisposable);
registerFileType(JetFileType.INSTANCE, "kt");
registerFileType(JetFileType.INSTANCE, "jet");
registerParserDefinition(new JetParserDefinition());
}
}
@@ -1,46 +1,20 @@
package org.jetbrains.jet; package org.jetbrains.jet;
import com.intellij.ide.startup.impl.StartupManagerImpl;
import com.intellij.lang.*;
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
import com.intellij.mock.*;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.EditorFactory;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl;
import com.intellij.openapi.fileEditor.impl.LoadTextUtil; import com.intellij.openapi.fileEditor.impl.LoadTextUtil;
import com.intellij.openapi.fileTypes.FileTypeFactory; import com.intellij.openapi.project.Project;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.options.SchemesManagerFactory;
import com.intellij.openapi.progress.impl.ProgressManagerImpl;
import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.openapi.vfs.CharsetToolkit;
import com.intellij.psi.*; import com.intellij.psi.PsiElement;
import com.intellij.psi.impl.PsiCachedValuesFactory; import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiFileFactory;
import com.intellij.psi.impl.PsiFileFactoryImpl; import com.intellij.psi.impl.PsiFileFactoryImpl;
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistryImpl;
import com.intellij.psi.util.CachedValuesManager;
import com.intellij.testFramework.LightVirtualFile; import com.intellij.testFramework.LightVirtualFile;
import com.intellij.testFramework.MockSchemesManagerFactory;
import com.intellij.testFramework.PlatformLiteFixture;
import com.intellij.testFramework.TestDataFile; import com.intellij.testFramework.TestDataFile;
import com.intellij.util.CachedValuesManagerImpl; import com.intellij.testFramework.UsefulTestCase;
import com.intellij.util.Function;
import com.intellij.util.messages.MessageBus;
import com.intellij.util.messages.MessageBusFactory;
import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NonNls;
import org.jetbrains.jet.lang.parsing.JetParserDefinition; import org.jetbrains.jet.plugin.JetLanguage;
import org.picocontainer.MutablePicoContainer;
import org.picocontainer.PicoContainer;
import org.picocontainer.PicoInitializationException;
import org.picocontainer.PicoIntrospectionException;
import org.picocontainer.defaults.AbstractComponentAdapter;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@@ -48,81 +22,42 @@ import java.io.IOException;
/** /**
* @author abreslav * @author abreslav
*/ */
public abstract class JetLiteFixture extends PlatformLiteFixture { public abstract class JetLiteFixture extends UsefulTestCase {
protected String myFileExt;
@NonNls @NonNls
protected final String myFullDataPath; protected final String myFullDataPath;
protected PsiFile myFile; protected PsiFile myFile;
private MockPsiManager myPsiManager; private JetCoreEnvironment myEnvironment;
private PsiFileFactoryImpl myFileFactory;
protected Language myLanguage;
protected final ParserDefinition[] myDefinitions;
public JetLiteFixture(@NonNls String dataPath) { public JetLiteFixture(@NonNls String dataPath) {
myFileExt = "jet";
myFullDataPath = getTestDataPath() + "/" + dataPath; myFullDataPath = getTestDataPath() + "/" + dataPath;
myDefinitions = new ParserDefinition[] {new JetParserDefinition()}; }
public JetLiteFixture() {
myFullDataPath = getTestDataPath();
} }
protected String getTestDataPath() { protected String getTestDataPath() {
return JetTestCaseBase.getTestDataPathBase(); return JetTestCaseBase.getTestDataPathBase();
} }
public Project getProject() {
return myEnvironment.getProject();
}
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
initApplication(); myEnvironment = new JetCoreEnvironment(getTestRootDisposable());
getApplication().getPicoContainer().registerComponent(new AbstractComponentAdapter("com.intellij.openapi.progress.ProgressManager", Object.class) { final File rtJar = new File(JetTestCaseBase.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/rt.jar");
@Override myEnvironment.addToClasspath(rtJar);
public Object getComponentInstance(PicoContainer container) throws PicoInitializationException, PicoIntrospectionException { myEnvironment.addToClasspath(new File(JetTestCaseBase.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/annotations.jar"));
return new ProgressManagerImpl(getApplication());
}
@Override
public void verify(PicoContainer container) throws PicoIntrospectionException {
}
});
Extensions.registerAreaClass("IDEA_PROJECT", null);
myProject = disposeOnTearDown(new MockProjectEx(getTestRootDisposable()));
myPsiManager = new MockPsiManager(myProject);
myFileFactory = new PsiFileFactoryImpl(myPsiManager);
final MutablePicoContainer appContainer = getApplication().getPicoContainer();
registerComponentInstance(appContainer, MessageBus.class, MessageBusFactory.newMessageBus(getApplication()));
registerComponentInstance(appContainer, SchemesManagerFactory.class, new MockSchemesManagerFactory());
final MockEditorFactory editorFactory = new MockEditorFactory();
registerComponentInstance(appContainer, EditorFactory.class, editorFactory);
registerComponentInstance(appContainer, FileDocumentManager.class, new MockFileDocumentManagerImpl(new Function<CharSequence, Document>() {
@Override
public Document fun(CharSequence charSequence) {
return editorFactory.createDocument(charSequence);
}
}, FileDocumentManagerImpl.DOCUMENT_KEY));
registerComponentInstance(appContainer, PsiDocumentManager.class, new MockPsiDocumentManager());
myLanguage = myLanguage == null && myDefinitions != null && myDefinitions.length > 0
? myDefinitions[0].getFileNodeType().getLanguage()
: myLanguage;
registerComponentInstance(appContainer, FileTypeManager.class, new MockFileTypeManager(new MockLanguageFileType(myLanguage, myFileExt)));
registerApplicationService(PsiBuilderFactory.class, new PsiBuilderFactoryImpl());
registerApplicationService(DefaultASTFactory.class, new DefaultASTFactoryImpl());
registerApplicationService(ReferenceProvidersRegistry.class, new ReferenceProvidersRegistryImpl());
myProject.registerService(CachedValuesManager.class, new CachedValuesManagerImpl(myProject, new PsiCachedValuesFactory(myPsiManager)));
myProject.registerService(PsiManager.class, myPsiManager);
myProject.registerService(StartupManager.class, new StartupManagerImpl(myProject));
myProject.registerService(PsiFileFactory.class, new PsiFileFactoryImpl(myPsiManager));
registerExtensionPoint(FileTypeFactory.FILE_TYPE_FACTORY_EP, FileTypeFactory.class);
for (ParserDefinition definition : myDefinitions) {
addExplicitExtension(LanguageParserDefinitions.INSTANCE, definition.getFileNodeType().getLanguage(), definition);
}
} }
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
super.tearDown();
myFile = null; myFile = null;
myProject = null; myEnvironment = null;
myPsiManager = null; super.tearDown();
} }
protected String loadFile(@NonNls @TestDataFile String name) throws IOException { protected String loadFile(@NonNls @TestDataFile String name) throws IOException {
@@ -137,13 +72,13 @@ public abstract class JetLiteFixture extends PlatformLiteFixture {
} }
protected PsiFile createPsiFile(String name, String text) { protected PsiFile createPsiFile(String name, String text) {
return createFile(name + "." + myFileExt, text); return createFile(name + ".jet", text);
} }
protected PsiFile createFile(@NonNls String name, String text) { protected PsiFile createFile(@NonNls String name, String text) {
LightVirtualFile virtualFile = new LightVirtualFile(name, myLanguage, text); LightVirtualFile virtualFile = new LightVirtualFile(name, JetLanguage.INSTANCE, text);
virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET); virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET);
return myFileFactory.trySetupPsiForFile(virtualFile, myLanguage, true, false); return ((PsiFileFactoryImpl) PsiFileFactory.getInstance(myEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false);
} }
protected static void ensureParsed(PsiFile file) { protected static void ensureParsed(PsiFile file) {
@@ -155,28 +90,8 @@ public abstract class JetLiteFixture extends PlatformLiteFixture {
}); });
} }
protected <T> void registerApplicationService(final Class<T> aClass, T object) {
getApplication().registerService(aClass, object);
Disposer.register(myProject, new Disposable() {
@Override
public void dispose() {
getApplication().getPicoContainer().unregisterComponent(aClass.getName());
}
});
}
protected <T> void addExplicitExtension(final LanguageExtension<T> instance, final Language language, final T object) {
instance.addExplicitExtension(language, object);
Disposer.register(myProject, new Disposable() {
@Override
public void dispose() {
instance.removeExplicitExtension(language, object);
}
});
}
protected void prepareForTest(String name) throws IOException { protected void prepareForTest(String name) throws IOException {
String text = loadFile(name + "." + myFileExt); String text = loadFile(name + ".jet");
createAndCheckPsiFile(name, text); createAndCheckPsiFile(name, text);
} }
@@ -1,17 +1,14 @@
package org.jetbrains.jet.codegen; package org.jetbrains.jet.codegen;
import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.util.text.StringUtil;
import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetLightProjectDescriptor; import org.jetbrains.jet.JetLiteFixture;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetNamespace; import org.jetbrains.jet.lang.psi.JetNamespace;
import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.AnalyzingUtils;
import org.jetbrains.jet.parsing.JetParsingTest; import org.jetbrains.jet.parsing.JetParsingTest;
import org.jetbrains.jet.plugin.JetFileType;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.HashMap; import java.util.HashMap;
@@ -21,8 +18,9 @@ import java.util.Map;
/** /**
* @author yole * @author yole
*/ */
public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase { public abstract class CodegenTestCase extends JetLiteFixture {
private MyClassLoader myClassLoader; private MyClassLoader myClassLoader;
private JetFile myFile;
protected static void assertThrows(Method foo, Class<? extends Throwable> exceptionClass, Object instance, Object... args) throws IllegalAccessException { protected static void assertThrows(Method foo, Class<? extends Throwable> exceptionClass, Object instance, Object... args) throws IllegalAccessException {
boolean caught = false; boolean caught = false;
@@ -43,16 +41,24 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase {
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
myFile = null;
myClassLoader = null; myClassLoader = null;
super.tearDown(); super.tearDown();
} }
protected void loadText(final String text) { protected void loadText(final String text) {
myFixture.configureByText(JetFileType.INSTANCE, text); myFile = (JetFile) createFile("a.jet", text);
} }
protected void loadFile(final String name) { @Override
myFixture.configureByFile(JetParsingTest.getTestDataDir() + "/codegen/" + name); protected String loadFile(final String name) {
try {
final String content = doLoadFile(JetParsingTest.getTestDataDir() + "/codegen/", name);
myFile = (JetFile) createFile(name, content);
return content;
} catch (IOException e) {
throw new RuntimeException(e);
}
} }
protected void loadFile() { protected void loadFile() {
@@ -85,8 +91,7 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase {
ClassFileFactory codegens = generateClassesInFile(); ClassFileFactory codegens = generateClassesInFile();
CodegensClassLoader loader = new CodegensClassLoader(codegens); CodegensClassLoader loader = new CodegensClassLoader(codegens);
JetFile jetFile = (JetFile) myFixture.getFile(); final JetNamespace namespace = myFile.getRootNamespace();
final JetNamespace namespace = jetFile.getRootNamespace();
String fqName = NamespaceCodegen.getJVMClassName(namespace.getFQName()).replace("/", "."); String fqName = NamespaceCodegen.getJVMClassName(namespace.getFQName()).replace("/", ".");
Class<?> namespaceClass = loader.loadClass(fqName); Class<?> namespaceClass = loader.loadClass(fqName);
Method method = namespaceClass.getMethod("box"); Method method = namespaceClass.getMethod("box");
@@ -95,9 +100,8 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase {
protected String generateToText() { protected String generateToText() {
GenerationState state = new GenerationState(getProject(), true); GenerationState state = new GenerationState(getProject(), true);
JetFile jetFile = (JetFile) myFixture.getFile(); AnalyzingUtils.checkForSyntacticErrors(myFile);
AnalyzingUtils.checkForSyntacticErrors(jetFile); state.compile(myFile);
state.compile(jetFile);
StringBuilder answer = new StringBuilder(); StringBuilder answer = new StringBuilder();
@@ -117,8 +121,7 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase {
} }
protected Class loadRootNamespaceClass(ClassFileFactory state) { protected Class loadRootNamespaceClass(ClassFileFactory state) {
JetFile jetFile = (JetFile) myFixture.getFile(); final JetNamespace namespace = myFile.getRootNamespace();
final JetNamespace namespace = jetFile.getRootNamespace();
String fqName = NamespaceCodegen.getJVMClassName(namespace.getFQName()).replace("/", "."); String fqName = NamespaceCodegen.getJVMClassName(namespace.getFQName()).replace("/", ".");
Map<String, Class> classMap = loadAllClasses(state); Map<String, Class> classMap = loadAllClasses(state);
return classMap.get(fqName); return classMap.get(fqName);
@@ -151,9 +154,8 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase {
protected ClassFileFactory generateClassesInFile() { protected ClassFileFactory generateClassesInFile() {
try { try {
GenerationState state = new GenerationState(getProject(), false); GenerationState state = new GenerationState(getProject(), false);
JetFile jetFile = (JetFile) myFixture.getFile(); AnalyzingUtils.checkForSyntacticErrors(myFile);
AnalyzingUtils.checkForSyntacticErrors(jetFile); state.compile(myFile);
state.compile(jetFile);
return state.getFactory(); return state.getFactory();
} catch (RuntimeException e) { } catch (RuntimeException e) {
@@ -233,10 +235,4 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase {
return super.findClass(name); return super.findClass(name);
} }
} }
@NotNull
@Override
protected LightProjectDescriptor getProjectDescriptor() {
return JetLightProjectDescriptor.INSTANCE;
}
} }
@@ -2,10 +2,8 @@ package org.jetbrains.jet.codegen;
import jet.IntRange; import jet.IntRange;
import jet.Tuple2; import jet.Tuple2;
import jet.Tuple3;
import jet.Tuple4; import jet.Tuple4;
import jet.typeinfo.TypeInfo; import jet.typeinfo.TypeInfo;
import org.jetbrains.jet.parsing.JetParsingTest;
import java.awt.*; import java.awt.*;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
@@ -48,7 +46,7 @@ public class NamespaceGenTest extends CodegenTestCase {
} }
public void testLocalProperty() throws Exception { public void testLocalProperty() throws Exception {
myFixture.configureByFile(JetParsingTest.getTestDataDir() + "/codegen/localProperty.jet"); loadFile("localProperty.jet");
final String text = generateToText(); final String text = generateToText();
System.out.println(text); System.out.println(text);
@@ -1,6 +1,6 @@
package org.jetbrains.jet.types; package org.jetbrains.jet.types;
import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase; import org.jetbrains.jet.JetLiteFixture;
import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.lang.JetSemanticServices; import org.jetbrains.jet.lang.JetSemanticServices;
import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.*;
@@ -18,7 +18,7 @@ import java.util.List;
/** /**
* @author svtk * @author svtk
*/ */
public class JetDefaultModalityModifiersTest extends LightDaemonAnalyzerTestCase { public class JetDefaultModalityModifiersTest extends JetLiteFixture {
private JetDefaultModalityModifiersTestCase tc = new JetDefaultModalityModifiersTestCase(); private JetDefaultModalityModifiersTestCase tc = new JetDefaultModalityModifiersTestCase();
@Override @Override
@@ -27,7 +27,7 @@ public class JetDefaultModalityModifiersTest extends LightDaemonAnalyzerTestCase
tc.setUp(); tc.setUp();
} }
public static class JetDefaultModalityModifiersTestCase { public class JetDefaultModalityModifiersTestCase {
private ModuleDescriptor root = new ModuleDescriptor("test_root"); private ModuleDescriptor root = new ModuleDescriptor("test_root");
private ClassDescriptorResolver classDescriptorResolver; private ClassDescriptorResolver classDescriptorResolver;
private JetScope scope; private JetScope scope;
@@ -1,7 +1,7 @@
package org.jetbrains.jet.types; package org.jetbrains.jet.types;
import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase; import org.jetbrains.jet.JetLiteFixture;
import com.intellij.openapi.application.PathManager; import org.jetbrains.jet.JetTestCaseBase;
import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.lang.JetSemanticServices; import org.jetbrains.jet.lang.JetSemanticServices;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
@@ -11,14 +11,11 @@ import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.ClassDescriptorResolver; import org.jetbrains.jet.lang.resolve.ClassDescriptorResolver;
import org.jetbrains.jet.lang.resolve.OverridingUtil; import org.jetbrains.jet.lang.resolve.OverridingUtil;
import org.jetbrains.jet.lang.types.JetStandardLibrary; import org.jetbrains.jet.lang.types.JetStandardLibrary;
import org.jetbrains.jet.parsing.JetParsingTest;
import java.io.File;
/** /**
* @author abreslav * @author abreslav
*/ */
public class JetOverridingTest extends LightDaemonAnalyzerTestCase { public class JetOverridingTest extends JetLiteFixture {
private ModuleDescriptor root = new ModuleDescriptor("test_root"); private ModuleDescriptor root = new ModuleDescriptor("test_root");
private JetStandardLibrary library; private JetStandardLibrary library;
@@ -35,11 +32,7 @@ public class JetOverridingTest extends LightDaemonAnalyzerTestCase {
@Override @Override
protected String getTestDataPath() { protected String getTestDataPath() {
return getHomeDirectory() + "/compiler/testData"; return JetTestCaseBase.getTestDataPathBase();
}
private static String getHomeDirectory() {
return new File(PathManager.getResourceRoot(JetParsingTest.class, "/org/jetbrains/jet/parsing/JetParsingTest.class")).getParentFile().getParentFile().getParent();
} }
public void testBasic() throws Exception { public void testBasic() throws Exception {
@@ -1,12 +1,10 @@
package org.jetbrains.jet.types; package org.jetbrains.jet.types;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase;
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.Sdk;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetLiteFixture;
import org.jetbrains.jet.JetTestCaseBase; import org.jetbrains.jet.JetTestCaseBase;
import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.lang.JetSemanticServices; import org.jetbrains.jet.lang.JetSemanticServices;
@@ -21,15 +19,13 @@ import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
import org.jetbrains.jet.lang.types.*; import org.jetbrains.jet.lang.types.*;
import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.jet.lexer.JetTokens;
import org.jetbrains.jet.parsing.JetParsingTest;
import java.io.File;
import java.util.*; import java.util.*;
/** /**
* @author abreslav * @author abreslav
*/ */
public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { public class JetTypeCheckerTest extends JetLiteFixture {
private JetStandardLibrary library; private JetStandardLibrary library;
private JetSemanticServices semanticServices; private JetSemanticServices semanticServices;
@@ -38,6 +34,10 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
private JetScope scopeWithImports; private JetScope scopeWithImports;
private TypeResolver typeResolver; private TypeResolver typeResolver;
public JetTypeCheckerTest() {
super("");
}
@Override @Override
public void setUp() throws Exception { public void setUp() throws Exception {
super.setUp(); super.setUp();
@@ -51,11 +51,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
@Override @Override
protected String getTestDataPath() { protected String getTestDataPath() {
return getHomeDirectory() + "/compiler/testData"; return JetTestCaseBase.getTestDataPathBase();
}
private static String getHomeDirectory() {
return new File(PathManager.getResourceRoot(JetParsingTest.class, "/org/jetbrains/jet/parsing/JetParsingTest.class")).getParentFile().getParentFile().getParent();
} }
public void testConstants() throws Exception { public void testConstants() throws Exception {
@@ -544,11 +540,6 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase {
return new TypeResolver(semanticServices, JetTestUtils.DUMMY_TRACE, true).resolveType(scope, JetPsiFactory.createType(getProject(), typeStr)); return new TypeResolver(semanticServices, JetTestUtils.DUMMY_TRACE, true).resolveType(scope, JetPsiFactory.createType(getProject(), typeStr));
} }
@Override
protected Sdk getProjectJDK() {
return JetTestCaseBase.jdkFromIdeaHome();
}
private class ClassDefinitions { private class ClassDefinitions {
private Map<String, ClassDescriptor> CLASSES = new HashMap<String, ClassDescriptor>(); private Map<String, ClassDescriptor> CLASSES = new HashMap<String, ClassDescriptor>();
private String[] CLASS_DECLARATIONS = { private String[] CLASS_DECLARATIONS = {