no inline fix
This commit is contained in:
@@ -272,7 +272,8 @@ public class InlineCodegen implements ParentCodegenAware, Inliner {
|
|||||||
boolean shouldPut = false == (stackValue != null && stackValue instanceof StackValue.Local);
|
boolean shouldPut = false == (stackValue != null && stackValue instanceof StackValue.Local);
|
||||||
if (shouldPut) {
|
if (shouldPut) {
|
||||||
//we could recapture field of anonymous objects cause they couldn't change
|
//we could recapture field of anonymous objects cause they couldn't change
|
||||||
if (codegen.getContext().getContextDescriptor() instanceof AnonymousFunctionDescriptor) {
|
boolean isInlineClosure = codegen.getContext().isInlineClosure();
|
||||||
|
if (isInlineClosure && codegen.getContext().getContextDescriptor() instanceof AnonymousFunctionDescriptor) {
|
||||||
Type internalName = asmTypeForAnonymousClass(bindingContext, (FunctionDescriptor) codegen.getContext().getContextDescriptor());
|
Type internalName = asmTypeForAnonymousClass(bindingContext, (FunctionDescriptor) codegen.getContext().getContextDescriptor());
|
||||||
|
|
||||||
String owner = null;
|
String owner = null;
|
||||||
|
|||||||
@@ -100,6 +100,10 @@ public class MethodContext extends CodegenContext<CallableMemberDescriptor> {
|
|||||||
this.isInlineClosure = isInlineClosure;
|
this.isInlineClosure = isInlineClosure;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isInlineClosure() {
|
||||||
|
return isInlineClosure;
|
||||||
|
}
|
||||||
|
|
||||||
public StackValue isSpecialStackValue(StackValue stackValue) {
|
public StackValue isSpecialStackValue(StackValue stackValue) {
|
||||||
if (isInlineClosure && stackValue instanceof StackValue.Composed) {
|
if (isInlineClosure && stackValue instanceof StackValue.Composed) {
|
||||||
StackValue prefix = ((StackValue.Composed) stackValue).prefix;
|
StackValue prefix = ((StackValue.Composed) stackValue).prefix;
|
||||||
|
|||||||
Reference in New Issue
Block a user