public static void _EmitReturn(ReturnStatement rs, List<ILInstuction> il) { if (rs.Expression != null) { var returnVariable = _EmitExpression(rs.Expression, il); CurrentFunction.AddLocal(returnVariable, rs.Expression.ResultType); ILReturn ilReturn = new ILReturn(); ilReturn.Line = GetLabel(); ilReturn.Return = _constructVariableAccess(returnVariable); il.Add(ilReturn); } else { ILReturn ilReturn = new ILReturn(); ilReturn.Line = GetLabel(); il.Add(ilReturn); } }
public static void EmitReturn(ReturnStatement rs, List<ILInstuction> il) { ILReturn ilReturn = new ILReturn(); ilReturn.Line = GetLabel(); ilReturn.Return = ConstructILExpression(rs.Expression); il.Add(ilReturn); }