From: Christoph Wurst Date: Mon, 12 Oct 2020 11:15:40 +0000 (+0200) Subject: Annotate IContainer so Psalm knows what resove and query return X-Git-Tag: v20.0.1RC1~23^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=327ec78e15027a7eec3474dc9f0f0258612a24e8;p=nextcloud-server.git Annotate IContainer so Psalm knows what resove and query return Signed-off-by: Christoph Wurst --- diff --git a/lib/public/IContainer.php b/lib/public/IContainer.php index 74fdf4aba5b..cb29e522032 100644 --- a/lib/public/IContainer.php +++ b/lib/public/IContainer.php @@ -52,10 +52,14 @@ use Psr\Container\ContainerInterface; interface IContainer extends ContainerInterface { /** + * @template T + * * If a parameter is not registered in the container try to instantiate it * by using reflection to find out how to build the class * @param string $name the class name to resolve + * @psalm-param string|class-string $name * @return \stdClass + * @psalm-return ($name is class-string ? T : mixed) * @since 8.2.0 * @deprecated 20.0.0 use \Psr\Container\ContainerInterface::get * @throws ContainerExceptionInterface if the class could not be found or instantiated @@ -66,9 +70,13 @@ interface IContainer extends ContainerInterface { /** * Look up a service for a given name in the container. * + * @template T + * * @param string $name + * @psalm-param string|class-string $name * @param bool $autoload Should we try to autoload the service. If we are trying to resolve built in types this makes no sense for example * @return mixed + * @psalm-return ($name is class-string ? T : mixed) * @throws ContainerExceptionInterface if the query could not be resolved * @throws QueryException if the query could not be resolved * @since 6.0.0