// because (unless the binding is invariant), there's no value to get rid of (and if it is
// invariant, there's no need to get rid of it).
if (cache)
{
builder.clear();
builder.addln("if (! %s)", invariantFieldName);
builder.begin();
builder.addln("%s = %s;", fieldName, defaultFieldName);
builder.addln("%s = false;", cachedFieldName);