private void checkParameterUsageCounter(ParameterRef var, Map<Variable, VariableReferenceCount> individualCounters,
Map<Set<Variable>, VariableReferenceCount> unifiedRefCounters, UnionFind<Variable> variableUnions,
PatternBody body) {
Variable parameter = var.getReferredParam();
VariableReferenceCount individualCounter = individualCounters.get(var);
VariableReferenceCount unifiedCounter = unifiedRefCounters.get(variableUnions.getPartition(var));
if (individualCounter.getReferenceCount() == 0) {
error(String.format("Parameter '%s' is never referenced in body '%s'.", parameter.getName(),
getPatternBodyName(body)), parameter, PatternLanguagePackage.Literals.VARIABLE__NAME,
IssueCodes.SYMBOLIC_VARIABLE_NEVER_REFERENCED);
} else if (unifiedCounter.getReferenceCount(ReferenceType.POSITIVE) == 0) {
error(String.format("Parameter '%s' has no enumerable reference in body '%s'.", var.getName(),
getPatternBodyName(body)), parameter, PatternLanguagePackage.Literals.VARIABLE__NAME,
IssueCodes.SYMBOLIC_VARIABLE_NO_POSITIVE_REFERENCE);
}
}