docs: private static BindStatus computeBindStatus(final IExpressionContext context, final IProcessableElementTag tag) {
  
          /*
           * First, try to obtain an already-existing BindStatus resulting from the execution of a th:field attribute
           * in the same element.
           */
          final BindStatus bindStatus =
                  (BindStatus) context.getVariable(SpringContextVariableNames.SPRING_FIELD_BIND_STATUS);
          if (bindStatus != null) {
              return bindStatus;
          }
  
          /*
           * It seems no th:field was executed on the same element, so we must rely on the "name" attribute (probably
           * specified by hand or by a th:name). No th:field was executed, so no BindStatus available -- we'll have to
           * build it ourselves.
           */
          final String fieldName = tag.getAttributeValue("name");
          if (StringUtils.isEmptyOrWhitespace(fieldName)) {
              return null;
          }
  
          final VariableExpression boundExpression =
                  (VariableExpression) context.getVariable(SpringContextVariableNames.SPRING_BOUND_OBJECT_EXPRESSION);
  
          if (boundExpression == null) {
              // No bound expression, so just use the field name
              return FieldUtils.getBindStatusFromParsedExpression(context, false, fieldName);
          }
  
          // Bound object and field object names might intersect (e.g. th:object="a.b", name="b.c"), and we must compute
          // the real 'bindable' name ("a.b.c") by only using the first token in the bound object name, appending the
          // rest of the field name: "a" + "b.c" -> "a.b.c"
          final String boundExpressionStr = boundExpression.getExpression();
          final String computedFieldName;
          if (boundExpressionStr.indexOf('.') == -1) {
              computedFieldName = boundExpressionStr + '.' + fieldName; // we append because we will use no form root afterwards
          } else {
              computedFieldName = boundExpressionStr.substring(0, boundExpressionStr.indexOf('.')) + '.' + fieldName;
          }
  
          // We set "useRoot" to false because we have already computed that part
          return FieldUtils.getBindStatusFromParsedExpression(context, false, computedFieldName);
  
      }