See if both types are arrays that can be compared for equality without any casting. Return true if so. This is to enable comparing things like an immutable array with a mutable one.
Do an explicit cast. Assume that the expression e does not have any indirections. (Parameter 'att' is used to stop 'alias this' recursion)
Same as implicitConvTo(); except follow C11 rules, which are quite a bit more permissive than D. C11 6.3 and 6.5.16.1
This provides a transition from the non-promoting behavior of unary + - ~ to the C-like integral promotion behavior.
Attempt to implicitly cast the expression into type t.
Checks whether or not an expression can be implicitly converted to type t.
Set type inference target t Target type flag 1: don't put an error when inference fails
Do integral promotions (convertchk). Don't convert <array of> to <pointer to>
Scale addition/subtraction to/from pointer.
A helper function to "cast" from expressions of type noreturn to any other type - noreturn is implicitly convertible to any other type. However, the dmd backend does not like a naive cast from a noreturn expression (particularly an assert(0)) so this function generates:
Bring leaves to common type.
Merge types of e1 and e2 into a common subset
Semantic analysis for cast-expressions.