Hi,

I am doing several calculations using `QuadGK`

inside functions and I’m trying to optimize the performance of my code. Not sure if it is the correct procedure but I started looking for type instabilities in my functions and found this behaviour which I found odd enough to be worth asking here:

```
julia> using QuadGK
julia> fr(r::Real) = quadgk(h -> r* h^2, -1, 1)[1]
fr (generic function with 1 method)
julia> @code_warntype fr(2.)
Variables:
#self# <optimized out>
r::Float64
#48::##48#49{Float64}
Body:
begin
#48::##48#49{Float64} = $(Expr(:new, ##48#49{Float64}, :(r)))
SSAValue(1) = $(Expr(:invoke, MethodInstance for #quadgk#15(::Array{Any,1}, ::Function, ::Function, ::Int64, ::Int64), :(QuadGK.#quadgk#15), :($(Expr(:foreigncall, :(:jl_alloc_array_1d), Array{Any,1}, svec(Any, Int64), Array{Any,1}, 0, 0, 0))), :(Main.quadgk), :(#48), -1, 1))
return (Base.getfield)(SSAValue(1), 1)::Any
end::Any
```

It seems to me that the `quadgk()`

function is type-instable, because it the compiler sets its’ type to `Any`

. Even if I set the result from `quadgk`

to `Float64`

I still get a `SSAValue(2) = (Base.getfield)(SSAValue(1), 1)::Any`

…

Is this wanted behaviour? Am I missing something or doing something wrong?

Thanks!