RuleId should be the source of truth for identifying a rule instead of RuleName, as only the RuleId should be guaranteed to not change. The ValidatingVisitor uses a RuleNameToValidationMethods mapping to lookup and subsequently validate/revalidate a given rule. If/when a RuleName is changed, revalidating of previous results breaks due to this name change and instead a NoMatch is returned. To support tool backwards compatibility, switching to a RuleIdToValidationMethods mapping would be a more stable implementation. I would highly recommend supporting both approaches in the ValidatingVisitor to prevent additional backward compatibility issues.
RuleId
should be the source of truth for identifying a rule instead ofRuleName
, as only theRuleId
should be guaranteed to not change. TheValidatingVisitor
uses aRuleNameToValidationMethods
mapping to lookup and subsequently validate/revalidate a given rule. If/when aRuleName
is changed, revalidating of previous results breaks due to this name change and instead aNoMatch
is returned. To support tool backwards compatibility, switching to aRuleIdToValidationMethods
mapping would be a more stable implementation. I would highly recommend supporting both approaches in theValidatingVisitor
to prevent additional backward compatibility issues.cc: @rwoll, @alisonmaclellan, @Jeremiah-Johnson, @AmyFeld