@@ -5053,7 +5053,7 @@ public override DynamicMetaObject FallbackGetMember(DynamicMetaObject target, Dy
50535053
50545054 bool canOptimize ;
50555055 Type aliasConversionType ;
5056- memberInfo = GetPSMemberInfo ( target , out restrictions , out canOptimize , out aliasConversionType ) ;
5056+ memberInfo = GetPSMemberInfo ( target , out restrictions , out canOptimize , out aliasConversionType , MemberTypes . Property ) ;
50575057
50585058 if ( ! canOptimize )
50595059 {
@@ -5415,15 +5415,16 @@ private PSMemberInfo ResolveAlias(PSAliasProperty alias, DynamicMetaObject targe
54155415 return null ;
54165416 }
54175417
5418- PSMemberInfo result = binder . GetPSMemberInfo ( target , out restrictions , out canOptimize , out aliasConversionType , aliases , aliasRestrictions ) ;
5419-
5418+ PSMemberInfo result = binder . GetPSMemberInfo ( target , out restrictions , out canOptimize , out aliasConversionType ,
5419+ MemberTypes . Property , aliases , aliasRestrictions ) ;
54205420 return result ;
54215421 }
54225422
54235423 internal PSMemberInfo GetPSMemberInfo ( DynamicMetaObject target ,
54245424 out BindingRestrictions restrictions ,
54255425 out bool canOptimize ,
54265426 out Type aliasConversionType ,
5427+ MemberTypes memberTypeToOperateOn ,
54275428 HashSet < string > aliases = null ,
54285429 List < BindingRestrictions > aliasRestrictions = null )
54295430 {
@@ -5493,7 +5494,7 @@ internal PSMemberInfo GetPSMemberInfo(DynamicMetaObject target,
54935494 var adapterSet = PSObject . GetMappedAdapter ( value , typeTable ) ;
54945495 if ( memberInfo == null )
54955496 {
5496- canOptimize = adapterSet . OriginalAdapter . SiteBinderCanOptimize ;
5497+ canOptimize = adapterSet . OriginalAdapter . CanSiteBinderOptimize ( memberTypeToOperateOn ) ;
54975498 // Don't bother looking for the member if we're not going to use it.
54985499 if ( canOptimize )
54995500 {
@@ -5969,7 +5970,7 @@ public override DynamicMetaObject FallbackSetMember(DynamicMetaObject target, Dy
59695970 BindingRestrictions restrictions ;
59705971 bool canOptimize ;
59715972 Type aliasConversionType ;
5972- memberInfo = _getMemberBinder . GetPSMemberInfo ( target , out restrictions , out canOptimize , out aliasConversionType ) ;
5973+ memberInfo = _getMemberBinder . GetPSMemberInfo ( target , out restrictions , out canOptimize , out aliasConversionType , MemberTypes . Property ) ;
59735974
59745975 restrictions = restrictions . Merge ( value . PSGetTypeRestriction ( ) ) ;
59755976
@@ -6464,7 +6465,7 @@ public override DynamicMetaObject FallbackInvokeMember(DynamicMetaObject target,
64646465 BindingRestrictions restrictions ;
64656466 bool canOptimize ;
64666467 Type aliasConversionType ;
6467- var methodInfo = _getMemberBinder . GetPSMemberInfo ( target , out restrictions , out canOptimize , out aliasConversionType ) as PSMethodInfo ;
6468+ var methodInfo = _getMemberBinder . GetPSMemberInfo ( target , out restrictions , out canOptimize , out aliasConversionType , MemberTypes . Method ) as PSMethodInfo ;
64686469 restrictions = args . Aggregate ( restrictions , ( current , arg ) => current . Merge ( arg . PSGetMethodArgumentRestriction ( ) ) ) ;
64696470
64706471 // If the process has ever used ConstrainedLanguage, then we need to add the language mode
0 commit comments