Compiler implementation of the D programming language.
Check that there are no uses of arrays without [].
Construct the array operation expression, call object.arrayOp!(tiargs)(args). Encode operand types and operations into tiargs using reverse polish notation (RPN) to preserve precedence. Unary operations are prefixed with "u" (e.g. "u~"). Pass operand values (slices or scalars) as args.
Scalar expression sub-trees of e
are evaluated before calling into druntime to hoist them out of the loop. This is a valid evaluation order as the actual array operations have no side-effect.
Test if expression is a unary array op.
Test if expression is a binary array op.
Test if expression is a binary assignment array op.
Test if operand is a valid array op operand.
Print error message about invalid array operation.
Expression e
| expression with the invalid array operation |
© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_arrayop.html