docs: public static Type unboxUnchecked(CodeBuilder cb, SoyRuntimeType soyType, Class<?> asType) {
      checkArgument(soyType.isBoxed(), "Expected %s to be a boxed type", soyType);
      Type fromType = soyType.runtimeType();
      checkArgument(
          !SoyValue.class.isAssignableFrom(asType),
          "Can't use unboxUnchecked() to convert from %s to a SoyValue: %s.",
          fromType,
          asType);
  
      // No-op conversion
      if (isDefinitelyAssignableFrom(Type.getType(asType), fromType)) {
        return fromType;
      }
  
      if (asType.equals(boolean.class)) {
        MethodRef.SOY_VALUE_BOOLEAN_VALUE.invokeUnchecked(cb);
        return Type.BOOLEAN_TYPE;
      }
  
      if (asType.equals(long.class)) {
        MethodRef.SOY_VALUE_LONG_VALUE.invokeUnchecked(cb);
        return Type.LONG_TYPE;
      }
  
      if (asType.equals(double.class)) {
        MethodRef.SOY_VALUE_FLOAT_VALUE.invokeUnchecked(cb);
        return Type.DOUBLE_TYPE;
      }
  
      if (asType.equals(String.class)) {
        MethodRef.SOY_VALUE_STRING_VALUE.invokeUnchecked(cb);
        return STRING_TYPE;
      }
  
      if (asType.equals(List.class)) {
        cb.checkCast(SOY_LIST_TYPE);
        MethodRef.SOY_LIST_AS_JAVA_LIST.invokeUnchecked(cb);
        return LIST_TYPE;
      }
  
      if (asType.equals(Message.class)) {
        if (!isDefinitelyAssignableFrom(SOY_PROTO_VALUE_TYPE, fromType)) {
          cb.checkCast(SOY_PROTO_VALUE_TYPE);
        }
        MethodRef.SOY_PROTO_VALUE_GET_PROTO.invokeUnchecked(cb);
        return MESSAGE_TYPE;
      }
  
      throw new UnsupportedOperationException(
          "Can't unbox top of stack from " + fromType + " to " + asType);
    }