`Expr` dump output

metaprogramming

#1
julia> dump(Expr(:call, :+, 1, 1))
Expr
  head: Symbol call
  args: Array{Any}((3,))
    1: Symbol +
    2: Int64 1
    3: Int64 1
  typ: Any

why here is “typ” instead of “type”?


#2

typ is a field for internal use, and I believe it is no longer present in 0.7


#3

Thanks, so whose type is dumped here?


#4

I think inference puts types there.


#5

That type is not of interest / useful for users, which is why it has been removed in Julia 0.7:

julia> Meta.@dump 1 + 1
Expr
  head: Symbol call
  args: Array{Any}((3,))
    1: Symbol +
    2: Int64 1
    3: Int64 1