Fixed infinite loop due to not gathering the error reliably. #141
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem is that a regular scala lazy val x = expression
If the expression throws, this lazy val will be re-evaluated over and
over each time it is requested.
That's why we have the LV system. This insures such values are attempted
exactly once, and if they throw, the fact that they threw is remembered,
and they're not attempted again.
To reduce overhead we've taken out a bunch of the LVs. But this results
in compiler errors that ripple. When parts of the compiler can't be LVs
because they are methods with parameters, it's important to CALL such
methods from something that IS an LV so that if an error is thrown, it's not
repeatedly thrown.
So a number of LVs have been put back in. Especially on things that
involve recursive descent or traversal of the DSOM objects or
corresponding XML.
This also fixes some other minor bugs which were being masked. E.g., a
test for hiddenGroupRef where the ref is empty string. I also renamed this
test since it was poorly named.
DAFFODIL-2202