public function resolve(Parameter $unresolvedArrayParameter, ParameterBag $unresolvedParameters, ParameterBag $resolvedParameters, ResolvingContext $context = null) : ParameterBag
{
if (null === $this->resolver) {
throw ResolverNotFoundExceptionFactory::createUnexpectedCall(__METHOD__);
}
$context = ResolvingContext::createFrom($context, $unresolvedArrayParameter->getKey());
$resolvedArray = [];
/* @var array $unresolvedArray */
$unresolvedArray = $unresolvedArrayParameter->getValue();
foreach ($unresolvedArray as $index => $unresolvedValue) {
// Iterate over all the values of the array to resolve each of them
$resolvedParameters = $this->resolver->resolve(new Parameter((string) $index, $unresolvedValue), $unresolvedParameters, $resolvedParameters, $context);
$resolvedArray[$index] = $resolvedParameters->get((string) $index);
$resolvedParameters = $resolvedParameters->without((string) $index);
}
$resolvedParameters = $resolvedParameters->with($unresolvedArrayParameter->withValue($resolvedArray));
return $resolvedParameters;
}