@@ -1112,8 +1112,7 @@ public override bool HandleCall (MethodBody callingMethodBody, MethodReference c
11121112 reflectionContext . RecordHandledPattern ( ) ;
11131113 } else {
11141114 // Otherwise fall back to the bitfield requirements
1115- var requiredMemberTypes = HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicConstructors : DynamicallyAccessedMemberTypes . None ;
1116- requiredMemberTypes |= HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicConstructors : DynamicallyAccessedMemberTypes . None ;
1115+ var requiredMemberTypes = GetDynamicallyAccessedMemberTypesFromBindingFlagsForConstructors ( bindingFlags ) ;
11171116 // We can scope down the public constructors requirement if we know the number of parameters is 0
11181117 if ( requiredMemberTypes == DynamicallyAccessedMemberTypes . PublicConstructors && ctorParameterCount == 0 )
11191118 requiredMemberTypes = DynamicallyAccessedMemberTypes . PublicParameterlessConstructor ;
@@ -2401,27 +2400,33 @@ void ValidateGenericMethodInstantiation (
24012400
24022401 static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForNestedTypes ( BindingFlags ? bindingFlags ) =>
24032402 ( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicNestedTypes : DynamicallyAccessedMemberTypes . None ) |
2404- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicNestedTypes : DynamicallyAccessedMemberTypes . None ) ;
2403+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicNestedTypes : DynamicallyAccessedMemberTypes . None ) |
2404+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicNestedTypes | DynamicallyAccessedMemberTypes . NonPublicNestedTypes : DynamicallyAccessedMemberTypes . None ) ;
24052405
24062406 static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForConstructors ( BindingFlags ? bindingFlags ) =>
24072407 ( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicConstructors : DynamicallyAccessedMemberTypes . None ) |
2408- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicConstructors : DynamicallyAccessedMemberTypes . None ) ;
2408+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicConstructors : DynamicallyAccessedMemberTypes . None ) |
2409+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicConstructors | DynamicallyAccessedMemberTypes . NonPublicConstructors : DynamicallyAccessedMemberTypes . None ) ;
24092410
24102411 static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForMethods ( BindingFlags ? bindingFlags ) =>
24112412 ( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicMethods : DynamicallyAccessedMemberTypes . None ) |
2412- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicMethods : DynamicallyAccessedMemberTypes . None ) ;
2413+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicMethods : DynamicallyAccessedMemberTypes . None ) |
2414+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicMethods | DynamicallyAccessedMemberTypes . NonPublicMethods : DynamicallyAccessedMemberTypes . None ) ;
24132415
24142416 static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForFields ( BindingFlags ? bindingFlags ) =>
24152417 ( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicFields : DynamicallyAccessedMemberTypes . None ) |
2416- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicFields : DynamicallyAccessedMemberTypes . None ) ;
2418+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicFields : DynamicallyAccessedMemberTypes . None ) |
2419+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicFields | DynamicallyAccessedMemberTypes . NonPublicFields : DynamicallyAccessedMemberTypes . None ) ;
24172420
24182421 static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForProperties ( BindingFlags ? bindingFlags ) =>
24192422 ( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicProperties : DynamicallyAccessedMemberTypes . None ) |
2420- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicProperties : DynamicallyAccessedMemberTypes . None ) ;
2423+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicProperties : DynamicallyAccessedMemberTypes . None ) |
2424+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicProperties | DynamicallyAccessedMemberTypes . NonPublicProperties : DynamicallyAccessedMemberTypes . None ) ;
24212425
24222426 static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForEvents ( BindingFlags ? bindingFlags ) =>
24232427 ( HasBindingFlag ( bindingFlags , BindingFlags . Public ) ? DynamicallyAccessedMemberTypes . PublicEvents : DynamicallyAccessedMemberTypes . None ) |
2424- ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicEvents : DynamicallyAccessedMemberTypes . None ) ;
2428+ ( HasBindingFlag ( bindingFlags , BindingFlags . NonPublic ) ? DynamicallyAccessedMemberTypes . NonPublicEvents : DynamicallyAccessedMemberTypes . None ) |
2429+ ( BindingFlagsAreUnsupported ( bindingFlags ) ? DynamicallyAccessedMemberTypes . PublicEvents | DynamicallyAccessedMemberTypes . NonPublicEvents : DynamicallyAccessedMemberTypes . None ) ;
24252430 static DynamicallyAccessedMemberTypes GetDynamicallyAccessedMemberTypesFromBindingFlagsForMembers ( BindingFlags ? bindingFlags ) =>
24262431 GetDynamicallyAccessedMemberTypesFromBindingFlagsForConstructors ( bindingFlags ) |
24272432 GetDynamicallyAccessedMemberTypesFromBindingFlagsForEvents ( bindingFlags ) |
0 commit comments