Error Messages/40068

< Error Messages
Revision as of 23:40, 4 January 2017 by Lchrisman (talk | contribs) (Local Variables --> Local Values (terminology change))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Error text

The value for the local index is not a list, or does not evaluate to be a list of values.

Cause

You've declared a local index using something like:

Index J := «expr»;

and when the expression «expr» was evaluated, it was not one-dimensional. An index can only contain a 1-D list of values, so this error occurs when «expr» is a single atomic value, or if it is multi-dimensional.

If you are trying to obtain a list of handles (aka list of identifiers), you might encounter this error when declaring the index as:

MetaIndex L := [Va1, Va2, Va3];

The issue here is that the right-hand side of := is evaluated before the result is assigned to L. If Va1, Va2 or Va3 is array-valued, then the result is multi-dimensional. Furthermore, this wouldn't work anyway, since L would get the values from each variable, rather than handles to each variable. In a case like this, you need to do this:

MetaIndex L := [Handle(Va1), Handle(Va2), Handle(Va3)];

To play it extra safe, you might do this:

MetaIndex L := CopyIndex([Handle(Va1), Handle(Va2), Handle(Va3)]);

The CopyIndex should theoretically do nothing here, but there have been some quirks in certain releases where the index value of L would end up being the expression Handle(Va1) rather than the handle itself. If you see these handle expressions in your result, you might want to ensure you have the most recent patch release, or include the CopyIndex as above.

See Also

Comments


You are not allowed to post comments.