def test_clone_without_forcing_manager(): @clone @parse def f(x, y): return x * y clone(f) clone(f) GraphManager(f)
def opt_newg(optimizer, node, equiv): from myia.ir import clone @parse def newf(a, b): return a - (a + b) return Constant(clone(newf))
def opt_newg_bad(optimizer, node, equiv): from myia.ir import clone @parse def newf(a): return a + a return Constant(clone(newf))
def test_clone_dangling_parameters(): g = Graph() g.output = Parameter(g) g2 = clone(g) assert isinstance(g2.output, Parameter) assert g2.output.graph == g2 assert len(g2.parameters) == 0
def test_return_closure_partial(): """Return a closure (after closure conversion).""" @parse def f(x, y): def g(): return x + y return g f = clone(closure_convert(f)) f = compile(f) g = f(4, 5) assert g() == 9