small bug-fix
This commit is contained in:
@@ -598,8 +598,10 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> {
|
||||
}
|
||||
|
||||
for (DeclarationDescriptor descriptor : closureCodegen.closure.keySet()) {
|
||||
final Type sharedVarType = getSharedVarType(descriptor);
|
||||
consArgTypes.add(sharedVarType != null ? sharedVarType : state.getTypeMapper().mapType(((VariableDescriptor) descriptor).getOutType()));
|
||||
Type sharedVarType = getSharedVarType(descriptor);
|
||||
if(sharedVarType == null)
|
||||
sharedVarType = state.getTypeMapper().mapType(((VariableDescriptor) descriptor).getOutType());
|
||||
consArgTypes.add(sharedVarType);
|
||||
final EnclosedValueDescriptor valueDescriptor = closureCodegen.closure.get(descriptor);
|
||||
valueDescriptor.getOuterValue().put(sharedVarType, v);
|
||||
}
|
||||
|
||||
@@ -342,7 +342,10 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
Map<DeclarationDescriptor, EnclosedValueDescriptor> closure = context.closure.closure;
|
||||
int k = 0;
|
||||
for (DeclarationDescriptor varDescr : closure.keySet()) {
|
||||
final Type sharedVarType = context.closure.exprContext.getSharedVarType(varDescr);
|
||||
Type sharedVarType = context.closure.exprContext.getSharedVarType(varDescr);
|
||||
if(sharedVarType == null) {
|
||||
sharedVarType = state.getTypeMapper().mapType(((VariableDescriptor) varDescr).getOutType());
|
||||
}
|
||||
iv.load(0, JetTypeMapper.TYPE_OBJECT);
|
||||
iv.load(firstClosureIndex + k, StackValue.refType(sharedVarType));
|
||||
iv.putfield(state.getTypeMapper().jvmName(descriptor, OwnerKind.IMPLEMENTATION), "$" + (k+1), sharedVarType.getDescriptor());
|
||||
|
||||
Reference in New Issue
Block a user