33
44using System . Collections . Generic ;
55using System . CommandLine . Binding ;
6- using System . CommandLine . Collections ;
76using System . Linq ;
87
98namespace System . CommandLine . Parsing
@@ -50,7 +49,7 @@ internal ArgumentConversionResultSet ArgumentConversionResults
5049 {
5150 var results = Children
5251 . OfType < ArgumentResult > ( )
53- . Select ( r => Convert ( r , r . Argument ) ) ;
52+ . Select ( r => ArgumentResult . Convert ( r , r . Argument ) ) ;
5453
5554 _results = new ArgumentConversionResultSet ( ) ;
5655
@@ -136,76 +135,6 @@ internal bool UseDefaultValueFor(IArgument argument)
136135
137136 public override string ToString ( ) => $ "{ GetType ( ) . Name } : { Token } ";
138137
139- internal static ArgumentConversionResult Convert (
140- ArgumentResult argumentResult ,
141- IArgument argument ) =>
142- Convert ( argumentResult . Parent , argument ) ;
143-
144- internal static ArgumentConversionResult Convert (
145- SymbolResult symbolResult ,
146- IArgument argument )
147- {
148- if ( ShouldCheckArity ( ) &&
149- ArgumentArity . Validate ( symbolResult ,
150- argument ,
151- argument . Arity . MinimumNumberOfValues ,
152- argument . Arity . MaximumNumberOfValues ) is FailedArgumentConversionResult failedResult )
153- {
154- return failedResult ;
155- }
156-
157- if ( symbolResult . UseDefaultValueFor ( argument ) )
158- {
159- var defaultValueFor = symbolResult . GetDefaultValueFor ( argument ) ;
160-
161- return ArgumentConversionResult . Success ( argument , defaultValueFor ) ;
162- }
163-
164- if ( argument is Argument a &&
165- a . ConvertArguments != null )
166- {
167- var argumentResult = ( ArgumentResult ) symbolResult . Children . ResultFor ( argument ) ;
168-
169- if ( argumentResult . ConversionResult != null )
170- {
171- return argumentResult . ConversionResult ;
172- }
173-
174- var success = a . ConvertArguments ( argumentResult , out var value ) ;
175-
176- if ( value is ArgumentConversionResult conversionResult )
177- {
178- return conversionResult ;
179- }
180- else if ( success )
181- {
182- return ArgumentConversionResult . Success ( argument , value ) ;
183- }
184- else
185- {
186- return ArgumentConversionResult . Failure ( argument , argumentResult . ErrorMessage ?? $ "Invalid: { symbolResult . Token } { string . Join ( " " , symbolResult . Tokens . Select ( t => t . Value ) ) } ") ;
187- }
188- }
189-
190- switch ( argument . Arity . MaximumNumberOfValues )
191- {
192- case 0 :
193- return ArgumentConversionResult . Success ( argument , null ) ;
194-
195- case 1 :
196- return ArgumentConversionResult . Success ( argument , symbolResult . Tokens . Select ( t => t . Value ) . SingleOrDefault ( ) ) ;
197-
198- default :
199- return ArgumentConversionResult . Success ( argument , symbolResult . Tokens . Select ( t => t . Value ) . ToArray ( ) ) ;
200- }
201-
202- bool ShouldCheckArity ( )
203- {
204- return ! ( symbolResult is OptionResult optionResult &&
205- optionResult . IsImplicit ) ;
206- }
207- }
208-
209138 internal ParseError UnrecognizedArgumentError ( Argument argument )
210139 {
211140 if ( argument . AllowedValues ? . Count > 0 &&
@@ -225,7 +154,5 @@ internal ParseError UnrecognizedArgumentError(Argument argument)
225154
226155 return null ;
227156 }
228-
229-
230157 }
231158}
0 commit comments