View source code
Display the source code in dmd/expressionsem.d from which thispage was generated on github.
Report a bug
If you spot a problem with this page, click here to create aBugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.Requires a signed-in GitHub account. This works well for small changes.If you'd like to make larger changes you may want to consider usinglocal clone.

Function dmd.expressionsem.markArrayExpModifiable

mark ArrayExp on the left side of an assignment recursively as modifiable before semantic analysis to defer potential lowerings into the assignment when the right side of the expression is analyzed, too, i.e.

void markArrayExpModifiable(
  ArrayExp ae
);

a[i][j] = 1

is parsed to

AssignExp(ArrayExp(ArrayExp(Id('a'), Id('i')), Id('j')), 1)

ArrayExp is converted to IndexExp during semantic analysis, but the lowering for IndexExp on associative arrays is different for reading or writing. For struct types, it can even depend on the right hand side of an assignment.

Parameters

NameDescription
ae the ArrayExp to mark

Authors

Walter Bright

License

Boost License 1.0