final protected function setValue()

in src/uri-patterns/UriBuilderBase.php [64:91]


  final protected function setValue<T>(
    classname<TypedUriParameter<T>> $parameter_type,
    string $name,
    T $value,
  ): this {
    $part = $this->parameters[$name] ?? null;
    invariant(
      $part !== null,
      '%s is not a valid parameter - expected one of [%s]',
      $name,
      \implode(', ', $this->parameters->keys()->map($x ==> "'".$x."'")),
    );
    invariant(
      \is_a($part, $parameter_type),
      'Expected %s to be a %s, got a %s',
      $name,
      $parameter_type,
      \get_class($part),
    );
    invariant(
      !$this->values->containsKey($name),
      'trying to set %s twice',
      $name,
    );
    /* HH_FIXME[4053] need reified generics */
    $this->values[$name] = $part->getUriFragment($value);
    return $this;
  }