// productions automatically fall under the second case.
if (! attributeWithLocation) return;
if (runtime.test("optimizeLocation") && (! createsNodeValue)) return;
FuzzyBoolean hasLocation = ast.hasLocation(analyzer.current().type);
if (FuzzyBoolean.FALSE == hasLocation) {
return;
} else if (FuzzyBoolean.MAYBE == hasLocation) {
printer.indent().p("if (").p(VALUE).pln(" instanceof Locatable) {").incr();