Drop CodegenBinding#enclosingClassDescriptor()

This commit is contained in:
Alexander Udalov
2014-07-14 22:37:21 +04:00
parent 78bdcae65e
commit c25d72d240
4 changed files with 9 additions and 15 deletions
@@ -856,10 +856,13 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
"constructor: " + constructor.getValueParameters().size(); "constructor: " + constructor.getValueParameters().size();
MutableClosure closure = ImplementationBodyCodegen.this.context.closure; MutableClosure closure = ImplementationBodyCodegen.this.context.closure;
if (closure != null && closure.getCaptureThis() != null) { if (closure != null) {
Type type = typeMapper.mapType(enclosingClassDescriptor(bindingContext, descriptor)); ClassDescriptor captureThis = closure.getCaptureThis();
iv.load(0, classAsmType); if (captureThis != null) {
iv.getfield(classAsmType.getInternalName(), CAPTURED_THIS_FIELD, type.getDescriptor()); iv.load(0, classAsmType);
Type type = typeMapper.mapType(captureThis);
iv.getfield(classAsmType.getInternalName(), CAPTURED_THIS_FIELD, type.getDescriptor());
}
} }
int parameterIndex = 1; // localVariable 0 = this int parameterIndex = 1; // localVariable 0 = this
@@ -31,9 +31,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
public interface CalculatedClosure { public interface CalculatedClosure {
@Nullable
ClassDescriptor getEnclosingClass();
@Nullable @Nullable
ResolvedCall<ConstructorDescriptor> getSuperCall(); ResolvedCall<ConstructorDescriptor> getSuperCall();
@@ -100,11 +100,6 @@ public class CodegenBinding {
return asmTypeForScriptDescriptor(bindingContext, scriptDescriptor); return asmTypeForScriptDescriptor(bindingContext, scriptDescriptor);
} }
public static ClassDescriptor enclosingClassDescriptor(BindingContext bindingContext, ClassDescriptor descriptor) {
CalculatedClosure closure = bindingContext.get(CLOSURE, descriptor);
return closure == null ? null : closure.getEnclosingClass();
}
@NotNull @NotNull
public static ClassDescriptor anonymousClassForFunction( public static ClassDescriptor anonymousClassForFunction(
@NotNull BindingContext bindingContext, @NotNull BindingContext bindingContext,
@@ -157,8 +152,8 @@ public class CodegenBinding {
return false; return false;
} }
ClassDescriptor enclosing = enclosingClassDescriptor(bindingContext, classDescriptor); MutableClosure closure = bindingContext.get(CLOSURE, classDescriptor);
if (enclosing == null) { if (closure == null || closure.getEnclosingClass() == null) {
return false; return false;
} }
@@ -50,7 +50,6 @@ public final class MutableClosure implements CalculatedClosure {
} }
@Nullable @Nullable
@Override
public ClassDescriptor getEnclosingClass() { public ClassDescriptor getEnclosingClass() {
return enclosingClass; return enclosingClass;
} }