Explicitly track when synthetic targets are injected.
Review Request #3277 - Created Dec. 20, 2015 and submitted
|benjyw, jsirois, molsen, zundel|
Previously some degree of tracking was done in
that synthetic targets were pulled into
concrete ancestors were in the root targets of the graph. However,
recent work by Matt Olsen in https://rbcommons.com/s/twitter/r/3225/
revealed a more subtle issue with
BuildGraph's handling of
synthetic targets: some synthetic targets do not have meaningful
ancestors, and we currently don't model that case.
This change makes it so that being "derived from" some other target
is sufficient but no longer necessary to be considered "synthetic".
BuildGraph.inject_targetcan now pass
to force this attribute of a target, even if it does not derive
from another target. In particular,
CI is green:
Kill the Context tracking of synthetic targets in favor of BuildGraph's
Revision 2 (+32 -11)
Update description and CI link.