@@ -37,28 +37,26 @@ private bool TryGetValue<T>(CliSymbol symbol, out T? value)
37
37
public T ? GetValue < T > ( CliValueSymbol valueSymbol )
38
38
=> GetValueInternal < T > ( valueSymbol ) ;
39
39
40
- private T ? GetValueInternal < T > ( CliSymbol ? symbol )
40
+ private T ? GetValueInternal < T > ( CliValueSymbol ? valueSymbol )
41
41
{
42
42
// NOTE: We use the subsystem's TryGetAnnotation here instead of the GetDefaultValue etc
43
43
// extension methods, as the subsystem's TryGetAnnotation respects its annotation provider
44
- return symbol switch
44
+ return valueSymbol switch
45
45
{
46
- not null when TryGetValue < T > ( symbol , out var value )
46
+ { } when TryGetValue < T > ( valueSymbol , out var value )
47
47
=> value , // It has already been retrieved at least once
48
- CliArgument argument when parseResult ? . GetValueResult ( argument ) is { } valueResult // GetValue not used because it would always return a value
49
- => UseValue ( symbol , valueResult . GetValue < T > ( ) ) , // Value was supplied during parsing,
50
- CliOption option when parseResult ? . GetValueResult ( option ) is { } valueResult // GetValue not used because it would always return a value
51
- => UseValue ( symbol , valueResult . GetValue < T > ( ) ) , // Value was supplied during parsing
48
+ { } when parseResult ? . GetValueResult ( valueSymbol ) is { } valueResult // GetValue not used because it would always return a value
49
+ => UseValue ( valueSymbol , valueResult . GetValue < T > ( ) ) , // Value was supplied during parsing,
52
50
// Value was not supplied during parsing, determine default now
53
51
// configuration values go here in precedence
54
52
//not null when GetDefaultFromEnvironmentVariable<T>(symbol, out var envName)
55
53
// => UseValue(symbol, GetEnvByName(envName)),
56
- not null when symbol . TryGetAnnotation ( ValueAnnotations . DefaultValueCalculation , out Func < T ? > ? defaultValueCalculation )
57
- => UseValue ( symbol , CalculatedDefault < T > ( symbol , ( Func < T ? > ) defaultValueCalculation ) ) ,
58
- not null when symbol . TryGetAnnotation ( ValueAnnotations . DefaultValue , out T ? explicitValue )
59
- => UseValue ( symbol , explicitValue ) ,
60
- null => throw new ArgumentNullException ( nameof ( symbol ) ) ,
61
- _ => UseValue ( symbol , default ( T ) )
54
+ { } when valueSymbol . TryGetAnnotation ( ValueAnnotations . DefaultValueCalculation , out Func < T ? > ? defaultValueCalculation )
55
+ => UseValue ( valueSymbol , CalculatedDefault < T > ( valueSymbol , ( Func < T ? > ) defaultValueCalculation ) ) ,
56
+ { } when valueSymbol . TryGetAnnotation ( ValueAnnotations . DefaultValue , out T ? explicitValue )
57
+ => UseValue ( valueSymbol , explicitValue ) ,
58
+ null => throw new ArgumentNullException ( nameof ( valueSymbol ) ) ,
59
+ _ => UseValue ( valueSymbol , default ( T ) )
62
60
} ;
63
61
64
62
TValue ? UseValue < TValue > ( CliSymbol symbol , TValue ? value )
@@ -68,7 +66,7 @@ not null when symbol.TryGetAnnotation(ValueAnnotations.DefaultValue, out T? expl
68
66
}
69
67
}
70
68
71
- private static T ? CalculatedDefault < T > ( CliSymbol symbol , Func < T ? > defaultValueCalculation )
69
+ private static T ? CalculatedDefault < T > ( CliValueSymbol valueSymbol , Func < T ? > defaultValueCalculation )
72
70
{
73
71
var objectValue = defaultValueCalculation ( ) ;
74
72
var value = objectValue is null
0 commit comments