
Invalidate every CandidatePath cache inside an R6 object
Source:R/path_resolution.R
invalidate_candidate_paths.RdWalks the public fields of obj depth-first. Every field that is a
CandidatePath has its cache cleared via $invalidate(). Every field that
is another R6 object is recursed into, so embedded objects (e.g. a
RegistryStudy held inside a TTEPlan) are also invalidated.
Details
Active bindings are deliberately skipped during the walk: accessing a
$dir_foo active binding would call $resolve() on the underlying
CandidatePath and immediately re-populate the cache we are trying to
clear. We reach the CandidatePath instances via their backing public
fields instead.
This is called from $save() on both RegistryStudy and TTEPlan before
serialization, so the on-disk qs2 file never carries host-specific resolved
paths. After loading on a different host, first access re-walks the
candidate list and caches the path valid on that host.
See also
CandidatePath, first_existing_path(), RegistryStudy,
TTEPlan.
Other multi_host_paths:
CandidatePath,
first_existing_path()