First green test for class codegen

This commit is contained in:
Maxim Shafirov
2011-04-18 18:24:57 +04:00
parent 9d79320b83
commit ec080358cb
9 changed files with 62 additions and 37 deletions
@@ -5,8 +5,10 @@ import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetLightProjectDescriptor;
import org.jetbrains.jet.lang.ErrorHandler;
import org.jetbrains.jet.lang.JetFileType;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.AnalyzingUtils;
import org.jetbrains.jet.parsing.JetParsingTest;
import java.lang.reflect.Method;
@@ -52,6 +54,7 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase {
final Codegens state = new Codegens(getProject(), false);
JetFile jetFile = (JetFile) myFixture.getFile();
final Ref<Class> result = new Ref<Class>();
final ClassCodegen codegen = state.forClass(AnalyzingUtils.analyzeFile(jetFile, ErrorHandler.THROW_EXCEPTION));
jetFile.acceptChildren(new JetVisitor() {
@Override
public void visitJetElement(JetElement elem) {
@@ -60,9 +63,8 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase {
@Override
public void visitClass(JetClass klass) {
final ClassCodegen codegen = state.forClassImplementation(klass);
codegen.generate(klass);
result.set(getJVMClass(state, klass.getName()));
result.set(getJVMClass(state, klass.getName() + "$$Impl"));
}
});
if (result.isNull()) {