code: static LHS getLHSObjectField( Object object, String fieldName )
              throws UtilEvalError, ReflectError {
          if ( object instanceof This )
              return new LHS( ((This)object).namespace, fieldName, false );
          try {
              Invocable f = resolveExpectedJavaField(
                  object.getClass(), fieldName, false/*staticOnly*/ );
              return new LHS(object, f);
          } catch ( ReflectError e ) {
              NameSpace ns = getThisNS(object);
              if (isGeneratedClass(object.getClass()) && null != ns && ns.isClass) {
                  Variable var = ns.getVariableImpl(fieldName, true);
                  if ( null != var && (!var.hasModifier("private")
                          || haveAccessibility()) )
                      return new LHS(ns, fieldName);
              }
              // not a field, try property access
              if ( hasObjectPropertySetter( object.getClass(), fieldName ) )
                  return new LHS( object, fieldName );
              else
                  throw e;
          }
      }
docs: Get an LHS reference to an object field.
  
  This method also deals with the field style property access.
  In the field does not exist we check for a property setter.