Type used to check whether two ast are the same. This is different from the
operator == on ast types as this operator would compare true equality with
ID and span.
Returns the segments of a path that might have generic parameters.
Usually just the last segment for free items, except for when the path resolves to an associated
item, in which case it is the last two
Returns true if the expression contains ambiguous literals (unsuffixed float or int literals)
that could be interpreted as either f32/f64 or i32/i64 depending on context.