internal static FailedArgumentConversionArityResult?Validate( SymbolResult symbolResult, IArgument argument, int minimumNumberOfValues, int maximumNumberOfValues ) { var argumentResult = symbolResult switch { ArgumentResult a => a, _ => symbolResult.Root !.FindResultFor(argument) }; var tokenCount = argumentResult?.Tokens.Count ?? 0; if (tokenCount < minimumNumberOfValues) { if (symbolResult !.UseDefaultValueFor(argument)) { return(null); } return(new MissingArgumentConversionResult( argument, symbolResult.ValidationMessages.RequiredArgumentMissing(symbolResult) )); } if (tokenCount > maximumNumberOfValues) { return(new TooManyArgumentsConversionResult( argument, symbolResult !.ValidationMessages.ExpectsOneArgument(symbolResult) )); } return(null); }
internal static FailedArgumentConversionArityResult Validate( ArgumentResult argumentResult) => Validate(argumentResult.Parent, argumentResult.Argument, argumentResult.Argument.Arity.MinimumNumberOfValues, argumentResult.Argument.Arity.MaximumNumberOfValues);