@Check(CheckType.NORMAL) public void checkVariableUsageCounters(PatternBody body) { UnionFind<Variable> variableUnions = calculateEqualVariables(body); Map<Set<Variable>, VariableReferenceCount> unifiedRefCounters = new HashMap<>(); Map<Variable, VariableReferenceCount> individualRefCounters = new HashMap<>(); calculateUsageCounts(body, variableUnions, individualRefCounters, unifiedRefCounters); for (Variable var : body.getVariables()) { if (var instanceof ParameterRef) { checkParameterUsageCounter((ParameterRef) var, individualRefCounters, unifiedRefCounters, variableUnions, body); } else { checkLocalVariableUsageCounter(var, individualRefCounters, unifiedRefCounters, variableUnions); } } }