From: Jean Privat Date: Mon, 10 Aug 2009 17:07:26 +0000 (-0400) Subject: icode: closures are generated within a ICodeBuilder X-Git-Tag: v0.3~67 X-Git-Url: http://nitlanguage.org icode: closures are generated within a ICodeBuilder Signed-off-by: Jean Privat --- diff --git a/src/icode/icode_builder.nit b/src/icode/icode_builder.nit index 2d75813..c7cfe59 100644 --- a/src/icode/icode_builder.nit +++ b/src/icode/icode_builder.nit @@ -235,16 +235,16 @@ redef class MMSignature end # Create an empty IClosureDef that match the signature - fun generate_empty_iclosuredef: IClosureDef + fun generate_empty_iclosuredef(icb: ICodeBuilder): IClosureDef do var args = new Array[IRegister] for i in [0..arity[ do - args.add(new IRegister(self[i])) + args.add(icb.new_register(self[i])) end var res: nullable IRegister = null var rtype = return_type if rtype != null then - res = new IRegister(rtype) + res = icb.new_register(rtype) end var iroutine = new IClosureDef(args, res) var clos: nullable Array[IClosureDecl] = null diff --git a/src/syntax/icode_generation.nit b/src/syntax/icode_generation.nit index e84d03b..9477f2d 100644 --- a/src/syntax/icode_generation.nit +++ b/src/syntax/icode_generation.nit @@ -340,7 +340,7 @@ redef class AClosureDecl redef fun accept_icode_generation(vv) do var v = vv.icode_ctx - var iclos = variable.closure.signature.generate_empty_iclosuredef + var iclos = variable.closure.signature.generate_empty_iclosuredef(v) var old_seq = v.seq v.seq = iclos.body escapable.continue_seq = iclos.body