Uploaded image for project: 'Daffodil'
  1. Daffodil
  2. DFDL-472

Improve OOLAG - fragile diagnosticChildren value per class creates subtle bugs

XMLWordPrintableJSON

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major Major
    • s8
    • s7
    • Middle "End"
    • None

      Current OOLAG/Lazy val stuff handles creation of objects that either have values, error/warnings, or both, and eliminates the need to carefully organize things into compute passes.

      But, one important aspect is too fragile, and leads to very subtle bugs that are hard to isolate and fix, which is that every object that accumulates diagnostic messages must implement a special value named diagnosticChildren, which is a list of the other objects that contribute to the correctness of this one. If you omit an object, then debug messages are not "rolled up" to the top of the compilation. They are lost.

      This ticket is about making most aspects of maintaining this list fully automatic by making all the LV objects that have values (not the unused/unevaluated ones) be traversed, and any that are of a type that accumulates diagnostics (a DiagnosticsProviding trait mixed in), are automatically included in the diagnostic children of the object that calculates that LV.

      This would eliminate the troublesome/fragile issue and make maintaining the code easier.

              jadams Joshua Adams
              mbeckerle.dfdl Mike Beckerle
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: