original_string: protected function checkIntOrNullValue(string $name, $value)
      {
          if (
              $value !== null &&
              !is_numeric($value) &&
              !($value instanceof \Closure) &&
              !($value instanceof self) &&
              !($value instanceof StatementInterface)
          ) {
              return $this->handleException(InvalidArgumentException::create(
                  $name,
                  $value,
                  ['integer', \Closure::class, self::class, StatementInterface::class, 'null']
              ));
          }
  
          if (is_numeric($value)) {
              $value = (int)$value;
          } elseif ($value instanceof \Closure) {
              return $this->resolveSubQueryClosure($value);
          }
  
          return $value;
      }
code: protected function checkIntOrNullValue(string $name, $value)
      {
          if (
              $value !== null &&
              !is_numeric($value) &&
              !($value instanceof \Closure) &&
              !($value instanceof self) &&
              !($value instanceof StatementInterface)
          ) {
              return $this->handleException(InvalidArgumentException::create(
                  $name,
                  $value,
                  ['integer', \Closure::class, self::class, StatementInterface::class, 'null']
              ));
          }
  
          if (is_numeric($value)) {
              $value = (int)$value;
          } elseif ($value instanceof \Closure) {
              return $this->resolveSubQueryClosure($value);
          }
  
          return $value;
      }
code_tokens: protected function checkIntOrNullValue ( string $ name , $ value ) { if ( $ value !== null && ! is_numeric ( $ value ) && ! ( $ value instanceof \ Closure ) && ! ( $ value instanceof self ) && ! ( $ value instanceof StatementInterface ) ) { return $ this -> handleException ( InvalidArgumentException :: create ( $ name , $ value , [ 'integer' , \ Closure :: class , self :: class , StatementInterface :: class , 'null' ] ) ) ; } if ( is_numeric ( $ value ) ) { $ value = ( int ) $ value ; } elseif ( $ value instanceof \ Closure ) { return $ this -> resolveSubQueryClosure ( $ value ) ; } return $ value ; }
docstring: Check that value is suitable for being a "int or null or subquery" property of a query. Retrieves the closure
  subquery.
  
  @param string $name Value name
  @param int|\Closure|self|StatementInterface|null $value
  @return int|self|StatementInterface|null
  @throws InvalidArgumentException
  @throws InvalidReturnValueException
docstring_tokens: Check that value is suitable for being a int or null or subquery property of a query . Retrieves the closure subquery .