tree c5be11cc3a5fe9f2b2b9e30e519d5a3704bc66e5
parent fa27ae413a90100606cc189dc5011fe8b1de05b3
parent e4f85add0284186af7350d1d9762195a04f3dcbc
author Martin Fick <martin.fick@linaro.org> 1663100528 -0600
committer Martin Fick <martin.fick@linaro.org> 1663103756 -0600

Merge branch 'stable-3.1' into stable-3.2

* stable-3.1 (27 commits)
  Use shallow clone while expanding definitions
  Move match() and matchOrNull() to MatchCache
  fixup! Cache Task definition lists for ChangeNodes
  Cache Task definition lists for ChangeNodes
  Split SubNodeFactory out of SubNodeAdder
  Moving caching logic out of loadSubNodes()
  Use a TaskTree.Node.Invalid instead of nulls
  Use overloading for special cases instead of nulls
  Add a TaskTree ApplicableNodeFilter
  Add an isCacheableByBranch() to the PredicateCache
  Track whether Task.applicable needs to be refreshed
  Allow Expander to expand a single Task's field
  Minor cleanup of task Properties.expandText()
  Remove cached Change subNodes on Node completion
  Explicitly signal end of Task Properties expansion
  Use a SubNodeAdder to add TaskTree SubNodes
  Avoid hard coding the refs/meta/config ref
  Inject All-Projects in TaskConfigFactory
  Change TaskExpressions to iterate over TaskKeys
  Avoid passing isTrusted in TaskConfigFactory.getTaskConfig()
  ...

Change-Id: I783f00289dff687f066d395862ec790e2fe058b5
