docs: public SoyExpression unboxAsString() {
      if (alreadyUnboxed(String.class)) {
        return this;
      }
      assertBoxed(String.class);
  
      Expression unboxedString;
      if (delegate.isNonNullable()) {
        unboxedString = delegate.invoke(MethodRef.SOY_VALUE_STRING_VALUE);
      } else {
        unboxedString =
            new Expression(BytecodeUtils.STRING_TYPE, features()) {
              @Override
              protected void doGen(CodeBuilder adapter) {
                Label end = new Label();
                delegate.gen(adapter);
                BytecodeUtils.nullCoalesce(adapter, end);
                MethodRef.SOY_VALUE_STRING_VALUE.invokeUnchecked(adapter);
                adapter.mark(end);
              }
            };
      }
      return forString(unboxedString);
    }