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;
}