internal ImmutableArray <ITypeSymbol> GetParameterTypes(CancellationToken cancellationToken)
            {
                var allTypeParameters = TypeToGenerateIn.GetAllTypeParameters();
                var semanticModel     = _document.SemanticModel;
                var allTypes          = _arguments.Select(a => _service.GetArgumentType(_document.SemanticModel, a, cancellationToken));

                return(allTypes.Select(t => FixType(t, semanticModel, allTypeParameters)).ToImmutableArray());
            }
            internal ImmutableArray <ITypeSymbol> GetParameterTypes(
                TService service,
                SemanticDocument document,
                CancellationToken cancellationToken)
            {
                var allTypeParameters = TypeToGenerateIn.GetAllTypeParameters();
                var semanticModel     = document.SemanticModel;
                var allTypes          = AttributeArguments != null
                    ? AttributeArguments.Select(a => service.GetAttributeArgumentType(semanticModel, a, cancellationToken))
                    : Arguments.Select(a => service.GetArgumentType(semanticModel, a, cancellationToken));

                return(allTypes.Select(t => FixType(t, semanticModel, allTypeParameters)).ToImmutableArray());
            }