switch (this.bits & RestrictiveFlagMASK) {
case Binding.FIELD : // reading a field
if (!valueRequired)
break;
FieldBinding codegenField = ((FieldBinding) this.binding).original();
Constant fieldConstant = codegenField.constant();
if (fieldConstant == Constant.NotAConstant) { // directly use inlined value for constant fields
if (codegenField.canBeSeenBy(getReceiverType(currentScope), this, currentScope)) {
TypeBinding someReceiverType = this.delegateThis != null ? this.delegateThis.type : this.actualReceiverType;
TypeBinding constantPoolDeclaringClass = CodeStream.getConstantPoolDeclaringClass(currentScope, codegenField, someReceiverType, true /* implicit this */);
if (codegenField.isStatic()) {