If you have a private method used recursively and return type is used only in recursion, psalm incorrectly emits UnusedReturnValue. Example code: ```php class A { private array $cache = []; public function a(): void { $this->buildCacheRecursively(6); } private function buildCacheRecursively(int $id): int { if ($id === 1) { return 1; } $this->cache[$id] = $id * $this->buildCacheRecursively($id-1); return $this->cache[$id]; } } ``` https://psalm.dev/r/029a1d1479