This work resolves evaluation of %ELEM(£40A) during execution when £40A is also an entry of PLIST.
D £40A S 15 DIM(300)
...
D £40ANM S 5S 0 INZ(%ELEM(£40A))
...
C *ENTRY PLIST
C PARM £40A
C PARM £G40DS
...
In Jariko this execution caused Void value for £40A. More precisely, in the previous implementation InternalInterpreter.execute performed an initialization. initialize called eval for NumberOfElementsExpr, which called - at the end - interpreterStatus.getVar. In this case, getVar took the value from SymbolTable which was NullValue. Is wrong! Is necessary the size of array. So, the fix has been performed into eval(expression: NumberOfElementsExpr), by leaving evaluation by interpreterStatus only, at the moment, for OccurableDataStructureType.
Related to LS24003751
Checklist:
[x] There are tests regarding this feature
[x] The code follows the Kotlin conventions (run ./gradlew ktlintCheck)
[x] The code passes all tests (run ./gradlew check)
[ ] There is a specific documentation in the docs directory
Description
This work resolves evaluation of
%ELEM(£40A)
during execution when£40A
is also an entry ofPLIST
.In Jariko this execution caused
Void value for £40A
. More precisely, in the previous implementationInternalInterpreter.execute
performed an initialization.initialize
calledeval
forNumberOfElementsExpr
, which called - at the end -interpreterStatus.getVar
. In this case,getVar
took the value from SymbolTable which wasNullValue
. Is wrong! Is necessary the size of array. So, the fix has been performed intoeval(expression: NumberOfElementsExpr)
, by leaving evaluation byinterpreterStatus
only, at the moment, forOccurableDataStructureType
.Related to LS24003751
Checklist:
./gradlew ktlintCheck
)./gradlew check
)docs
directory