Skip to content

Commit ce6b332

Browse files
committed
test: allow nothing; return in IRUtils.fully_eliminated
For some reason the recent CFG change caused us to generate: ``` 1-element Vector{Any}: CodeInfo( 1 ─ nothing::Nothing └── return true ) => Bool ``` instead of ``` 1-element Vector{Any}: CodeInfo( 1 ─ return true ) => Bool ``` but I believe this difference is harmless.
1 parent 75974ad commit ce6b332

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

test/compiler/irutils.jl

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,22 @@ fully_eliminated(src::CodeInfo; retval=(@__FILE__)) = fully_eliminated(src.code;
4343
fully_eliminated(ir::IRCode; retval=(@__FILE__)) = fully_eliminated(ir.stmts.stmt; retval)
4444
function fully_eliminated(code::Vector{Any}; retval=(@__FILE__), kwargs...)
4545
if retval !== (@__FILE__)
46-
length(code) == 1 || return false
47-
code1 = code[1]
48-
isreturn(code1) || return false
49-
val = code1.val
46+
(length(code) <= 2) || return false
47+
for i = 1:(length(code) - 1)
48+
code[i] === nothing || return false
49+
end
50+
isreturn(code[end]) || return false
51+
val = code[end].val
5052
if val isa QuoteNode
5153
val = val.value
5254
end
5355
return val == retval
5456
else
55-
return length(code) == 1 && isreturn(code[1])
57+
(length(code) <= 2) || return false
58+
for i = 1:(length(code) - 1)
59+
code[i] === nothing || return false
60+
end
61+
return isreturn(code[end])
5662
end
5763
end
5864
macro fully_eliminated(ex0...)

0 commit comments

Comments
 (0)