code: public function setParameterType($method, $name, $type)
      {
          if (!isset($this->parameterTypes[$method])) {
              throw new \InvalidArgumentException(sprintf('A method with name "%s" is not defined', $name, $method));
          }
  
          if (!array_key_exists($name, $this->parameterTypes[$method])) {
              throw new \InvalidArgumentException(sprintf('A parameter with name "%s" for method "%s" is not defined', $name, $method));
          }
  
          $this->parameterTypes[$method][$name] = $type;
      }
docs: Sets the type of a parameter.
  
  @param string $method The name of the method
  @param string $name   The name of the parameter
  @param string $type   The type of the parameter
  @throws \InvalidArgumentException If the method is not defined
  @throws \InvalidArgumentException If the method is not defined