@@ -4784,31 +4784,30 @@ fhasmethod(::Integer, ::Int32) = 3
47844784@test only (Base. return_types (()) do ; Val (hasmethod (sin, Tuple{Int, Vararg{Int}})); end ) == Val{false }
47854785@test only (Base. return_types (()) do ; Val (hasmethod (sin, Tuple{Int, Int, Vararg{Int}})); end ) === Val{false }
47864786
4787- # TODO (#48913) enable interprocedural call inference from irinterp
4788- # # interprocedural call inference from irinterp
4789- # @noinline Base.@assume_effects :total issue48679_unknown_any(x) = Base.inferencebarrier(x)
4790-
4791- # @noinline _issue48679(y::Union{Nothing,T}) where {T} = T::Type
4792- # Base.@constprop :aggressive function issue48679(x, b)
4793- # if b
4794- # x = issue48679_unknown_any(x)
4795- # end
4796- # return _issue48679(x)
4797- # end
4798- # @test Base.return_types((Float64,)) do x
4799- # issue48679(x, false)
4800- # end |> only == Type{Float64}
4801-
4802- # Base.@constprop :aggressive @noinline _issue48679_const(b, y::Union{Nothing,T}) where {T} = b ? nothing : T::Type
4803- # Base.@constprop :aggressive function issue48679_const(x, b)
4804- # if b
4805- # x = issue48679_unknown_any(x)
4806- # end
4807- # return _issue48679_const(b, x)
4808- # end
4809- # @test Base.return_types((Float64,)) do x
4810- # issue48679_const(x, false)
4811- # end |> only == Type{Float64}
4787+ # interprocedural call inference from irinterp
4788+ @noinline Base. @assume_effects :total issue48679_unknown_any (x) = Base. inferencebarrier (x)
4789+
4790+ @noinline _issue48679 (y:: Union{Nothing,T} ) where {T} = T:: Type
4791+ Base. @constprop :aggressive function issue48679 (x, b)
4792+ if b
4793+ x = issue48679_unknown_any (x)
4794+ end
4795+ return _issue48679 (x)
4796+ end
4797+ @test Base. return_types ((Float64,)) do x
4798+ issue48679 (x, false )
4799+ end |> only == Type{Float64}
4800+
4801+ Base. @constprop :aggressive @noinline _issue48679_const (b, y:: Union{Nothing,T} ) where {T} = b ? nothing : T:: Type
4802+ Base. @constprop :aggressive function issue48679_const (x, b)
4803+ if b
4804+ x = issue48679_unknown_any (x)
4805+ end
4806+ return _issue48679_const (b, x)
4807+ end
4808+ @test Base. return_types ((Float64,)) do x
4809+ issue48679_const (x, false )
4810+ end |> only == Type{Float64}
48124811
48134812# `invoke` call in irinterp
48144813@noinline _irinterp_invoke (x:: Any ) = :any
0 commit comments