Closed
Description
The following code does not infer using Julia 1.7.3:
f(n) = (i^2 for i in 1:n)
g(n) = sum(x^2 for x in f(n))
@code_warntype g(3)
Output:
MethodInstance for g(::Int64)
from g(n) in Main at /home/jonathan/AlphaZero.jl/redesign/private/inference.jl:2
Arguments
#self#::Core.Const(g)
n::Int64
Locals
#61::var"#61#62"
Body::Any
1 ─ (#61 = %new(Main.:(var"#61#62")))
│ %2 = #61::Core.Const(var"#61#62"())
│ %3 = Main.f(n)::Core.PartialStruct(Base.Generator{UnitRange{Int64}, var"#59#60"}, Any[Core.Const(var"#59#60"()), Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])])
│ %4 = Base.Generator(%2, %3)::Core.PartialStruct(Base.Generator{Base.Generator{UnitRange{Int64}, var"#59#60"}, var"#61#62"}, Any[Core.Const(var"#61#62"()), Core.PartialStruct(Base.Generator{UnitRange{Int64}, var"#59#60"}, Any[Core.Const(var"#59#60"()), Core.PartialStruct(UnitRange{Int64}, Any[Core.Const(1), Int64])])])
│ %5 = Main.sum(%4)::Any
└── return %5
This issue is crossposted from Discourse.