private function createComplexSettingExpression($argumentValue, array $dynamicSettings)
    {
        $resolverArguments = ['"' . $argumentValue . '"'];
        foreach ($dynamicSettings as $dynamicSetting) {
            // Trim the '$'  so that the dynamic setting doesn't get transformed
            $resolverArguments[] = '"' . trim($dynamicSetting, '$') . '"';
            // This one will be transformed
            $resolverArguments[] = $this->createConfigResolverSubExpression(
                $this->parser->parseDynamicSetting($dynamicSetting)
            );
        }

        $expression = sprintf(
            'service("ezpublish.config.complex_setting_value.resolver").resolveSetting(%s)',
            implode(', ', $resolverArguments)
        );

        return new Expression($expression);
    }