22using System . Collections . Generic ;
33using System . Diagnostics . CodeAnalysis ;
44
5+ #nullable enable
6+
57namespace BenchmarkDotNet . Characteristics
68{
79 public class Resolver : IResolver
@@ -11,12 +13,12 @@ public class Resolver : IResolver
1113 protected void Register < [ DynamicallyAccessedMembers ( CharacteristicObject . CharacteristicMemberTypes ) ] T > ( Characteristic < T > characteristic , Func < T > resolver ) =>
1214 resolvers [ characteristic ] = obj => resolver ( ) ;
1315
14- protected void Register < [ DynamicallyAccessedMembers ( CharacteristicObject . CharacteristicMemberTypes ) ] T > ( Characteristic < T > characteristic , Func < CharacteristicObject , T > resolver ) =>
16+ protected void Register < [ DynamicallyAccessedMembers ( CharacteristicObject . CharacteristicMemberTypes ) ] T > ( Characteristic < T > characteristic , Func < CharacteristicObject , T ? > resolver ) =>
1517 resolvers [ characteristic ] = obj => resolver ( obj ) ;
1618
1719 public bool CanResolve ( Characteristic characteristic ) => resolvers . ContainsKey ( characteristic ) ;
1820
19- public object Resolve ( CharacteristicObject obj , Characteristic characteristic )
21+ public object ? Resolve ( CharacteristicObject obj , Characteristic characteristic )
2022 {
2123 if ( obj . HasValue ( characteristic ) )
2224 return characteristic [ obj ] ;
@@ -26,7 +28,7 @@ public object Resolve(CharacteristicObject obj, Characteristic characteristic)
2628 throw new InvalidOperationException ( $ "There is no default resolver for { characteristic . FullId } ") ;
2729 }
2830
29- public T Resolve < [ DynamicallyAccessedMembers ( CharacteristicObject . CharacteristicMemberTypes ) ] T > ( CharacteristicObject obj , Characteristic < T > characteristic )
31+ public T ? Resolve < [ DynamicallyAccessedMembers ( CharacteristicObject . CharacteristicMemberTypes ) ] T > ( CharacteristicObject obj , Characteristic < T > characteristic )
3032 {
3133 if ( obj . HasValue ( characteristic ) )
3234 return characteristic [ obj ] ;
@@ -36,7 +38,7 @@ public object Resolve(CharacteristicObject obj, Characteristic characteristic)
3638 throw new InvalidOperationException ( $ "There is no default resolver for { characteristic . FullId } ") ;
3739 }
3840
39- public object Resolve ( CharacteristicObject obj , Characteristic characteristic , object defaultValue )
41+ public object ? Resolve ( CharacteristicObject obj , Characteristic characteristic , object defaultValue )
4042 {
4143 if ( obj . HasValue ( characteristic ) )
4244 return characteristic [ obj ] ;
@@ -47,7 +49,7 @@ public object Resolve(CharacteristicObject obj, Characteristic characteristic, o
4749 return defaultValue ;
4850 }
4951
50- public T Resolve < [ DynamicallyAccessedMembers ( CharacteristicObject . CharacteristicMemberTypes ) ] T > ( CharacteristicObject obj , Characteristic < T > characteristic , T defaultValue )
52+ public T ? Resolve < [ DynamicallyAccessedMembers ( CharacteristicObject . CharacteristicMemberTypes ) ] T > ( CharacteristicObject obj , Characteristic < T > characteristic , T defaultValue )
5153 {
5254 if ( obj . HasValue ( characteristic ) )
5355 return characteristic [ obj ] ;
0 commit comments