private void checkLabelPairs(Rule r, Map<String, LabelElementPair> labelNameSpace, List<LabelElementPair> pairs) {
		for (LabelElementPair p : pairs) {
			checkForLabelConflict(r, p.label);
			String name = p.label.getText();
			LabelElementPair prev = labelNameSpace.get(name);
			if (prev == null) {
				labelNameSpace.put(name, p);
			}
			else {
				checkForTypeMismatch(r, prev, p);
			}
		}
	}
Make sure a label doesn't conflict with another symbol.
Labels must not conflict with: rules, tokens, scope names,
return values, parameters, and rule-scope dynamic attributes
defined in surrounding rule.  Also they must have same type
for repeated defs.
tool/src/org/antlr/v4/semantics/SymbolChecks.java