C# Class IronRuby.Runtime.Calls.RubyMethodGroupBase

Performs method binding for calling CLR methods. Currently this is used for all builtin libary methods and interop calls to CLR methods
Inheritance: IronRuby.Runtime.Calls.RubyMemberInfo
Afficher le fichier Open project: ExpertsInside/IronSP

Private Properties

Свойство Type Description
BuildCallNoFlow void
BuildSuperCallNoFlow void
GetAssociatedSystemType System.Type
GetMethodOverload Microsoft.Scripting.Actions.Calls.OverloadInfo
GetVisibleOverloads IList
HasBlockParameter bool
IsOverloadSignature bool
ResolveOverload Microsoft.Scripting.Actions.Calls.BindingTarget
SetMethodBasesNoLock Microsoft.Scripting.Actions.Calls.OverloadInfo[]

Méthodes publiques

Méthode Description
GetArity ( ) : int
GetMembers ( ) : System.Reflection.MemberInfo[]
RuleControlFlowBuilder ( MetaObjectBuilder metaBuilder, CallArguments args ) : void

Takes current result and wraps it into try-filter(MethodUnwinder)-finally block that ensures correct "break" behavior for library method calls with block given in bfcVariable (BlockParam).

TryBindGenericParameters ( Type typeArguments ) : IronRuby.Runtime.Calls.RubyMemberInfo
TrySelectOverload ( Type parameterTypes ) : IronRuby.Runtime.Calls.RubyMemberInfo

Filters out methods that don't exactly match parameter types except for hidden parameters (RubyContext, RubyScope, site local storage).

Méthodes protégées

Méthode Description
Copy ( OverloadInfo methods ) : IronRuby.Runtime.Calls.RubyMemberInfo
RubyMethodGroupBase ( OverloadInfo methods, RubyMemberFlags flags, RubyModule declaringModule ) : System.Linq.Expressions

Private Methods

Méthode Description
BuildCallNoFlow ( MetaObjectBuilder metaBuilder, CallArguments args, string name, IList overloads, SelfCallConvention callConvention, bool implicitProtocolConversions ) : void

Resolves an library method overload and builds call expression. The resulting expression on meta-builder doesn't handle block control flow yet.

BuildSuperCallNoFlow ( MetaObjectBuilder metaBuilder, CallArguments args, string name, RubyModule declaringModule ) : void
GetAssociatedSystemType ( RubyModule module ) : Type
GetMethodOverload ( Type parameterTypes, IList genericParameterTypes, Type type, string name, BindingFlags bindingFlags ) : OverloadInfo
GetVisibleOverloads ( CallArguments args, IList overloads, bool isSuperCall ) : IList
HasBlockParameter ( OverloadInfo method ) : bool
IsOverloadSignature ( OverloadInfo method, Type parameterTypes ) : bool
ResolveOverload ( MetaObjectBuilder metaBuilder, CallArguments args, string name, IList overloads, SelfCallConvention callConvention, bool implicitProtocolConversions, RubyOverloadResolver &resolver ) : BindingTarget
SetMethodBasesNoLock ( OverloadInfo methods ) : Microsoft.Scripting.Actions.Calls.OverloadInfo[]

Method Details

Copy() protected abstract méthode

protected abstract Copy ( OverloadInfo methods ) : IronRuby.Runtime.Calls.RubyMemberInfo
methods Microsoft.Scripting.Actions.Calls.OverloadInfo
Résultat IronRuby.Runtime.Calls.RubyMemberInfo

GetArity() public méthode

public GetArity ( ) : int
Résultat int

GetMembers() public méthode

public GetMembers ( ) : System.Reflection.MemberInfo[]
Résultat System.Reflection.MemberInfo[]

RubyMethodGroupBase() protected méthode

protected RubyMethodGroupBase ( OverloadInfo methods, RubyMemberFlags flags, RubyModule declaringModule ) : System.Linq.Expressions
methods Microsoft.Scripting.Actions.Calls.OverloadInfo
flags RubyMemberFlags
declaringModule IronRuby.Builtins.RubyModule
Résultat System.Linq.Expressions

RuleControlFlowBuilder() public static méthode

Takes current result and wraps it into try-filter(MethodUnwinder)-finally block that ensures correct "break" behavior for library method calls with block given in bfcVariable (BlockParam).
public static RuleControlFlowBuilder ( MetaObjectBuilder metaBuilder, CallArguments args ) : void
metaBuilder MetaObjectBuilder
args CallArguments
Résultat void

TryBindGenericParameters() public méthode

public TryBindGenericParameters ( Type typeArguments ) : IronRuby.Runtime.Calls.RubyMemberInfo
typeArguments System.Type
Résultat IronRuby.Runtime.Calls.RubyMemberInfo

TrySelectOverload() public méthode

Filters out methods that don't exactly match parameter types except for hidden parameters (RubyContext, RubyScope, site local storage).
public TrySelectOverload ( Type parameterTypes ) : IronRuby.Runtime.Calls.RubyMemberInfo
parameterTypes System.Type
Résultat IronRuby.Runtime.Calls.RubyMemberInfo