julia是怎么进行类型推断的?

julia是怎么进行类型推断的?怎么知道julia自动推断的类型符合自己的预期?

julia> @code_lowered 1+1.0
CodeInfo(
313 1 ─ %1 = (Base.promote)(x, y)                                                                                                                           │
    │   %2 = (Core._apply)(Base.:+, %1)                                                                                                                     │
    └──      return %2                                                                                                                                      │
)

julia> promote(1, 1.0)
(1.0, 1.0)
julia> @code_typed 1+1.0
CodeInfo(
313 1 ─ %1 = (Base.sitofp)(Float64, x)::Float64                                                                                                                │╻╷╷╷ promote
    │   %2 = (Base.add_float)(%1, y)::Float64                                                                                                                  │╻    +
    └──      return %2                                                                                                                                         │    
) => Float64