ArtifactSet RuleNode::changedInputArtifacts(const ArtifactSet &allCompatibleInputs, const ArtifactSet &explicitlyDependsOn, const ArtifactSet &auxiliaryInputs) const { ArtifactSet changedInputArtifacts; if (explicitlyDependsOn != m_oldExplicitlyDependsOn) return allCompatibleInputs; if (!m_needsToConsiderChangedInputs) return changedInputArtifacts; for (Artifact * const artifact : explicitlyDependsOn) { if (artifact->timestamp() > m_lastApplicationTime) return allCompatibleInputs; } if (auxiliaryInputs != m_oldAuxiliaryInputs) return allCompatibleInputs; for (Artifact * const artifact : auxiliaryInputs) { if (artifact->timestamp() > m_lastApplicationTime) return allCompatibleInputs; } for (Artifact * const artifact : allCompatibleInputs) { if (artifact->timestamp() > m_lastApplicationTime) changedInputArtifacts.insert(artifact); } return changedInputArtifacts; }