Refactor: Lazily instantiate ProvenanceInformation objects

As a rule, throughout the codebase we should not be using internal ProvenanceInformation objects in our APIs, but rather Node objects.

This is because ProvenanceInformation is generated on the fly from a Node object, and it is needlessly expensive to instantiate one before it is absolutely needed.

This patch unilaterally fixes the codebase to pass provenance_node Node objects around as arguments rather than provenance ProvenanceInformation objects.

Merge request reports

Loading