private function resolveStringKey(ParameterResolverInterface $resolver = null, Parameter $parameter, string $key, ParameterBag $unresolvedParameters, ParameterBag $resolvedParameters, ResolvingContext $context) : ParameterBag
{
if ($resolvedParameters->has($key)) {
return $resolvedParameters;
}
if (false === $unresolvedParameters->has($key)) {
throw ParameterNotFoundExceptionFactory::createForWhenResolvingParameter($key, $parameter);
}
$context->checkForCircularReference($key);
$context->add($key);
if (null === $resolver) {
throw ResolverNotFoundExceptionFactory::createUnexpectedCall(__METHOD__);
}
return $resolver->resolve(new Parameter($key, $unresolvedParameters->get($key)), $unresolvedParameters, $resolvedParameters, $context);
}