merge commit

This commit is contained in:
Maxim Shafirov
2011-11-11 20:14:29 +04:00
parent 627a1dbf6f
commit 66c1f56892
2 changed files with 17 additions and 15 deletions
@@ -236,21 +236,22 @@ public class ClosureCodegen extends ObjectOrClosureCodegen {
iv.aconst(null); // @todo
iv.invokespecial(funClass, "<init>", "(Ljet/typeinfo/TypeInfo;)V");
i = 1;
for (Type type : argTypes) {
StackValue.local(0, JetTypeMapper.TYPE_OBJECT).put(JetTypeMapper.TYPE_OBJECT, iv);
StackValue.local(i, type).put(type, iv);
final String fieldName;
if (captureThis && i == 1) {
fieldName = "this$0";
}
else {
if (captureReceiver != null && (captureThis && i == 2 || !captureThis && i == 1)) {
fieldName = "receiver$0";
i = 1;
for (Type type : argTypes) {
StackValue.local(0, JetTypeMapper.TYPE_OBJECT).put(JetTypeMapper.TYPE_OBJECT, iv);
StackValue.local(i, type).put(type, iv);
final String fieldName;
if (captureThis && i == 1) {
fieldName = "this$0";
}
else {
fieldName = "$" + (i);
i++;
if (captureReceiver != null && (captureThis && i == 2 || !captureThis && i == 1)) {
fieldName = "receiver$0";
}
else {
fieldName = "$" + (i);
i++;
}
}
}
@@ -28,6 +28,7 @@ import com.intellij.util.containers.Stack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.codegen.ClassBuilder;
import org.jetbrains.jet.codegen.ClassBuilderFactory;
import org.jetbrains.jet.codegen.CodegenUtil;
import org.jetbrains.jet.codegen.GenerationState;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetNamespace;
@@ -81,7 +82,7 @@ public class JavaElementFinder extends PsiElementFinder {
for (PsiFile psiFile : psiFiles) {
if (psiFile instanceof JetFile) {
if (qualifiedName.equals(((JetFile) psiFile).getRootNamespace().getFQName())) {
if (qualifiedName.equals(CodegenUtil.getFQName(((JetFile) psiFile).getRootNamespace()))) {
return new PsiPackageImpl(psiFile.getManager(), qualifiedName);
}
}
@@ -144,7 +145,7 @@ public class JavaElementFinder extends PsiElementFinder {
final GenerationState state = new GenerationState(project, builderFactory) {
@Override
protected void generateNamespace(JetNamespace namespace) {
final PsiJavaFileStubImpl fileStub = new PsiJavaFileStubImpl(namespace.getFQName(), true);
final PsiJavaFileStubImpl fileStub = new PsiJavaFileStubImpl(CodegenUtil.getFQName(namespace), true);
PsiManager manager = PsiManager.getInstance(project);
stubStack.push(fileStub);