Consider a local variable declaration of the form
[],
and each optional initializer clause =
For each variable declarator
If
is a multiarray type
we unconditionally break the declaration into a series of transformed,
single-variable declarations,
:
If
is not a multiarray type,
and all
are empty, the whole declaration
is unchanged in the transformed code.
In any other case,
suppose
is the first variable initializer for which
is not empty. We will take the transformed
declaration to be:
If
is empty and
is not a composite expression,
then
is just:
If
is composite expression
,
one may anticipate this transformation, and arrange to have the simplify algorithm treat
as if it was originally on the right-hand
side of a top-level assignment. This will avoid the introduction of an
unnecessary temporary.
The case of a local variable declaration appearing in the
initialization section of a for-loop header may need some special
treatment--see page
.