name, $this->signature, $this->type, $this->nativeType, $this->isOptional, $this->isVariadic, $this->defaultValue, $this->attributes->forCallable($callable) ); } public function assignGenerics(Generics $generics): self { assert($generics->items !== []); return new self( $this->name, $this->signature, TypeHelper::assignVacantTypes($this->type, $generics->items), $this->nativeType, $this->isOptional, $this->isVariadic, $this->defaultValue, $this->attributes ); } }