W3cubDocs

/D

dmd.arrayop

Compiler implementation of the D programming language.

Authors:
Walter Bright
License:
Boost License 1.0
Source
arrayop.d
Documentation
https://dlang.org/phobos/dmd_arrayop.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/arrayop.d
bool isArrayOpValid(Expression e);

Check that there are no uses of arrays without [].

Expression arrayOp(BinExp e, Scope* sc);

Expression arrayOp(BinAssignExp e, Scope* sc);

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.

bool isUnaArrayOp(TOK op);

Test if expression is a unary array op.

bool isBinArrayOp(TOK op);

Test if expression is a binary array op.

bool isBinAssignArrayOp(TOK op);

Test if expression is a binary assignment array op.

bool isArrayOpOperand(Expression e);

Test if operand is a valid array op operand.

ErrorExp arrayOpInvalidError(Expression e);

Print error message about invalid array operation.

Parameters:
Expression e expression with the invalid array operation
Returns:
instance of ErrorExp

© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_arrayop.html