code: public boolean hasFieldChangedInHierarchy(String name) {
  		// Find the field:
  		ReloadableType rtype = this;
  		FieldMember field = null;
  		// Did it exist on this type originally?
  		TypeDescriptor originalTypeDescriptor = rtype.getTypeDescriptor();
  		FieldMember originalField = originalTypeDescriptor.getField(name);
  
  		TypeDescriptor typedescriptor = rtype.getLatestTypeDescriptor();
  		field = typedescriptor.getField(name);
  		if (originalField != null && field == null) {
  			// Field got removed from this type, going to have to resort to indirection logic or we'll trip over the original version when
  			// letting the field instruction run
  			return true;
  		}
  
  		if (originalField != null && field != null) {
  			return !originalField.equals(field);
  		}
  		if (originalField == null && field != null) {
  			return true;
  		}
  
  		FieldWalkDiscoveryResult b = hasFieldChangedInHierarchy(name, rtype.getTypeDescriptor().getSupertypeName());
  		switch (b) {
  			case CHANGED_STOPNOW:
  				return true;
  			case UNCHANGED_STOPWALKINGNOW:
  				return false;
  			case DONTKNOW:
  				throw new IllegalStateException();
  		}
  		throw new IllegalStateException();
  	}
docs: /*
  Want to check if this field looks the same as originally declared and is on the same type as it was