Drop CodegenBinding#enclosingClassDescriptor()
This commit is contained in:
@@ -856,10 +856,13 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
"constructor: " + constructor.getValueParameters().size();
|
||||
|
||||
MutableClosure closure = ImplementationBodyCodegen.this.context.closure;
|
||||
if (closure != null && closure.getCaptureThis() != null) {
|
||||
Type type = typeMapper.mapType(enclosingClassDescriptor(bindingContext, descriptor));
|
||||
iv.load(0, classAsmType);
|
||||
iv.getfield(classAsmType.getInternalName(), CAPTURED_THIS_FIELD, type.getDescriptor());
|
||||
if (closure != null) {
|
||||
ClassDescriptor captureThis = closure.getCaptureThis();
|
||||
if (captureThis != null) {
|
||||
iv.load(0, classAsmType);
|
||||
Type type = typeMapper.mapType(captureThis);
|
||||
iv.getfield(classAsmType.getInternalName(), CAPTURED_THIS_FIELD, type.getDescriptor());
|
||||
}
|
||||
}
|
||||
|
||||
int parameterIndex = 1; // localVariable 0 = this
|
||||
|
||||
@@ -31,9 +31,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface CalculatedClosure {
|
||||
@Nullable
|
||||
ClassDescriptor getEnclosingClass();
|
||||
|
||||
@Nullable
|
||||
ResolvedCall<ConstructorDescriptor> getSuperCall();
|
||||
|
||||
|
||||
@@ -100,11 +100,6 @@ public class CodegenBinding {
|
||||
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
|
||||
public static ClassDescriptor anonymousClassForFunction(
|
||||
@NotNull BindingContext bindingContext,
|
||||
@@ -157,8 +152,8 @@ public class CodegenBinding {
|
||||
return false;
|
||||
}
|
||||
|
||||
ClassDescriptor enclosing = enclosingClassDescriptor(bindingContext, classDescriptor);
|
||||
if (enclosing == null) {
|
||||
MutableClosure closure = bindingContext.get(CLOSURE, classDescriptor);
|
||||
if (closure == null || closure.getEnclosingClass() == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,6 @@ public final class MutableClosure implements CalculatedClosure {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ClassDescriptor getEnclosingClass() {
|
||||
return enclosingClass;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user