From 6443476d16c429b442958287d5f9223e1c388910 Mon Sep 17 00:00:00 2001 From: Kristoffer Carlsson Date: Fri, 6 Feb 2026 11:44:49 +0100 Subject: [PATCH] avoid a (arguably benign) `Core.Box` and test package is empty of such boxes --- src/codeedges.jl | 6 +++--- test/runtests.jl | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/codeedges.jl b/src/codeedges.jl index 00a727b..10181c8 100644 --- a/src/codeedges.jl +++ b/src/codeedges.jl @@ -793,10 +793,10 @@ end # # [Wei84]: M. Weiser, "Program Slicing," IEEE Transactions on Software Engineering, 10, pages 352-357, July 1984. function add_control_flow!(isrequired, src::CodeInfo, cfg::CFG, postdomtree) - local changed::Bool = false + changed = Ref(false) function mark_isrequired!(idx::Int) if !isrequired[idx] - changed |= isrequired[idx] = true + changed[] |= isrequired[idx] = true return true end return false @@ -818,7 +818,7 @@ function add_control_flow!(isrequired, src::CodeInfo, cfg::CFG, postdomtree) end end end - return changed + return changed[] end is_conditional_terminator(@nospecialize stmt) = stmt isa GotoIfNot || diff --git a/test/runtests.jl b/test/runtests.jl index 9721a39..7b55c24 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,10 +1,14 @@ -using Test +using Test, LoweredCodeUtils # using LoweredCodeUtils # @testset "Ambiguity" begin # @test isempty(detect_ambiguities(LoweredCodeUtils, LoweredCodeUtils.JuliaInterpreter, Base, Core)) # end +if isdefined(Test, :detect_closure_boxes) + @test isempty(Test.detect_closure_boxes(LoweredCodeUtils)) +end + @testset "LoweredCodeUtils.jl" begin @testset "signatures.jl" include("signatures.jl") @testset "codeedges.jl" include("codeedges.jl")