@@ -1117,8 +1117,7 @@ public override bool HandleCall (MethodBody callingMethodBody, MethodReference c
1117
1117
reflectionContext . RecordHandledPattern ( ) ;
1118
1118
} else {
1119
1119
// Otherwise fall back to the bitfield requirements
1120
- var requiredMemberTypes = HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicConstructors : DynamicallyAccessedMemberTypes . None ;
1121
- requiredMemberTypes |= HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicConstructors : DynamicallyAccessedMemberTypes . None ;
1120
+ var requiredMemberTypes = GetDynamicallyAccessedMemberTypesFromBindingFlagsForConstructors ( bindingFlags ) ;
1122
1121
// We can scope down the public constructors requirement if we know the number of parameters is 0
1123
1122
if ( requiredMemberTypes == DynamicallyAccessedMemberTypes . PublicConstructors && ctorParameterCount == 0 )
1124
1123
requiredMemberTypes = DynamicallyAccessedMemberTypes . PublicParameterlessConstructor ;
@@ -2407,27 +2406,33 @@ void ValidateGenericMethodInstantiation (
2407
2406
2408
2407
static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForNestedTypes ( BindingFlags ? bindingFlags ) =>
2409
2408
( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicNestedTypes : DynamicallyAccessedMemberTypes . None ) |
2410
- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicNestedTypes : DynamicallyAccessedMemberTypes . None ) ;
2409
+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicNestedTypes : DynamicallyAccessedMemberTypes . None ) |
2410
+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicNestedTypes | DynamicallyAccessedMemberTypes . NonPublicNestedTypes : DynamicallyAccessedMemberTypes . None ) ;
2411
2411
2412
2412
static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForConstructors ( BindingFlags ? bindingFlags ) =>
2413
2413
( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicConstructors : DynamicallyAccessedMemberTypes . None ) |
2414
- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicConstructors : DynamicallyAccessedMemberTypes . None ) ;
2414
+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicConstructors : DynamicallyAccessedMemberTypes . None ) |
2415
+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicConstructors | DynamicallyAccessedMemberTypes . NonPublicConstructors : DynamicallyAccessedMemberTypes . None ) ;
2415
2416
2416
2417
static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForMethods ( BindingFlags ? bindingFlags ) =>
2417
2418
( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicMethods : DynamicallyAccessedMemberTypes . None ) |
2418
- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicMethods : DynamicallyAccessedMemberTypes . None ) ;
2419
+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicMethods : DynamicallyAccessedMemberTypes . None ) |
2420
+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicMethods | DynamicallyAccessedMemberTypes . NonPublicMethods : DynamicallyAccessedMemberTypes . None ) ;
2419
2421
2420
2422
static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForFields ( BindingFlags ? bindingFlags ) =>
2421
2423
( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicFields : DynamicallyAccessedMemberTypes . None ) |
2422
- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicFields : DynamicallyAccessedMemberTypes . None ) ;
2424
+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicFields : DynamicallyAccessedMemberTypes . None ) |
2425
+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicFields | DynamicallyAccessedMemberTypes . NonPublicFields : DynamicallyAccessedMemberTypes . None ) ;
2423
2426
2424
2427
static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForProperties ( BindingFlags ? bindingFlags ) =>
2425
2428
( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicProperties : DynamicallyAccessedMemberTypes . None ) |
2426
- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicProperties : DynamicallyAccessedMemberTypes . None ) ;
2429
+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicProperties : DynamicallyAccessedMemberTypes . None ) |
2430
+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicProperties | DynamicallyAccessedMemberTypes . NonPublicProperties : DynamicallyAccessedMemberTypes . None ) ;
2427
2431
2428
2432
static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForEvents ( BindingFlags ? bindingFlags ) =>
2429
2433
( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicEvents : DynamicallyAccessedMemberTypes . None ) |
2430
- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicEvents : DynamicallyAccessedMemberTypes . None ) ;
2434
+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicEvents : DynamicallyAccessedMemberTypes . None ) |
2435
+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicEvents | DynamicallyAccessedMemberTypes . NonPublicEvents : DynamicallyAccessedMemberTypes . None ) ;
2431
2436
static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForMembers ( BindingFlags ? bindingFlags ) =>
2432
2437
GetDynamicallyAccessedMemberTypesFromBindingFlagsForConstructors ( bindingFlags ) |
2433
2438
GetDynamicallyAccessedMemberTypesFromBindingFlagsForEvents ( bindingFlags ) |
0 commit comments