Merge remote branch 'origin/master'

This commit is contained in:
Andrey Breslav
2011-12-08 19:17:53 +04:00
6 changed files with 248 additions and 157 deletions
@@ -254,19 +254,24 @@ public class ClosureCodegen extends ObjectOrClosureCodegen {
iv.invokespecial(funClass, "<init>", "(Ljet/typeinfo/TypeInfo;)V");
i = 1;
int k = 0;
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";
i++;
k++;
}
else {
if (captureReceiver != null && (captureThis && i == 2 || !captureThis && i == 1)) {
fieldName = "receiver$0";
i++;
k++;
}
else {
fieldName = "$" + (i);
fieldName = "$" + (i-k);
i++;
}
}
@@ -200,6 +200,8 @@ public class JetTypeMapper {
}
return name;
}
if(name.contains("/"))
return name;
if (container != null) {
if (container instanceof ModuleDescriptor) {
return name;
@@ -0,0 +1,9 @@
/*
* @author max
*/
package org.jetbrains.jet.lang.resolve.java;
import com.intellij.psi.PsiClass;
public interface JetJavaMirrorMarker extends PsiClass {
}