public function createPublicMethodInjection(\ReflectionMethod $method) : MethodInjection
    {
        /** @var ParameterInjection[] $injections */
        $injections = [];

        foreach ($method->getParameters() as $parameter) {

            $injections[] = new ParameterInjection(
                $parameter->getName(),
                (string) $parameter->getType(),
                $parameter->isArray(),
                $this->getInjectHint($method, $parameter)
            );
        }

        return new MethodInjection($injections, $method->getName());
    }