From f1d85dcda094627d9c24bac1bacc54d15b55531e Mon Sep 17 00:00:00 2001 From: Mehul-Lakhwani Date: Fri, 28 Nov 2025 00:56:49 +0530 Subject: [PATCH] #59114 issue: Converted do-block to lambda before the call expression check --- stdlib/Test/src/Test.jl | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/stdlib/Test/src/Test.jl b/stdlib/Test/src/Test.jl index dcfc780084a19..cef13d959cec5 100644 --- a/stdlib/Test/src/Test.jl +++ b/stdlib/Test/src/Test.jl @@ -2260,7 +2260,19 @@ function _inferred(ex, mod, allow = :(Union{})) if Meta.isexpr(ex, :ref) ex = Expr(:call, :getindex, ex.args...) end + + if Meta.isexpr(ex, :do) + + call_part = ex.args[1] + func_part = ex.args[2] + + lambda = Expr(:->, func_part.args[1], func_part.args[2]) + + ex = Expr(:call, call_part.args[1], lambda, call_part.args[2:end]...) + end + Meta.isexpr(ex, :call)|| error("@inferred requires a call expression") + farg = ex.args[1] if isa(farg, Symbol) && farg !== :.. && first(string(farg)) == '.' farg = Symbol(string(farg)[2:end])