|
42 | 42 | let |
43 | 43 | ir1 = @code_ir foo(1, 2) |
44 | 44 | ir2 = @code_ir bar(1, 2) |
45 | | - ir = IRTools.inline(ir1, IRTools.var(4), ir2) |
| 45 | + inline_at = findfirst(ir1) do (_, stmt) |
| 46 | + IRTools.isexpr(stmt.expr, :call) && |
| 47 | + stmt.expr.args[1] == GlobalRef(@__MODULE__, :bar) |
| 48 | + end |
| 49 | + @test inline_at !== nothing |
| 50 | + ir = IRTools.inline(ir1, inline_at, ir2) |
46 | 51 | f = IRTools.func(ir) |
47 | 52 | @test f(nothing, 2, 3) == 3 |
48 | 53 | @test f(nothing, 3, 2) == 3 |
|
66 | 71 | let |
67 | 72 | ir = @code_ir foo2(1) |
68 | 73 | ir2 = @code_ir foo1(1) |
69 | | - ir3 = IRTools.inline(ir, IRTools.var(4), ir2) |
| 74 | + inline_at = findfirst(ir) do (_, stmt) |
| 75 | + IRTools.isexpr(stmt.expr, :call) && |
| 76 | + stmt.expr.args[1] == GlobalRef(@__MODULE__, :foo1) |
| 77 | + end |
| 78 | + @test inline_at !== nothing |
| 79 | + ir3 = IRTools.inline(ir, inline_at, ir2) |
70 | 80 | @test IRTools.func(ir3)(nothing, 2) == 12 |
71 | 81 | @test IRTools.func(ir3)(nothing, 101) == 101 |
72 | 82 | end |
|
87 | 97 | let |
88 | 98 | ir = @code_ir foo2(1) |
89 | 99 | ir2 = @code_ir foo1(1) |
90 | | - ir3 = IRTools.inline(ir, IRTools.var(3), ir2) |
| 100 | + inline_at = findfirst(ir) do (_, stmt) |
| 101 | + IRTools.isexpr(stmt.expr, :call) && |
| 102 | + stmt.expr.args[1] == GlobalRef(@__MODULE__, :foo1) |
| 103 | + end |
| 104 | + @test inline_at !== nothing |
| 105 | + ir3 = IRTools.inline(ir, inline_at, ir2) |
91 | 106 | @test IRTools.func(ir3)(nothing, 2) == foo2(2) |
92 | 107 | @test IRTools.func(ir3)(nothing, -2) == foo2(-2) |
93 | 108 | end |
0 commit comments