C# Class XSpect.Yacq.Expressions.DispatchExpression

Represents an dispatch expression, an abstract layer to member references and method calls with SymbolTable.
Inheritance: YacqExpression
Show file Open project: takeshik/yacq Class Usage Examples

Public Methods

Method Description
DefaultMissing ( DispatchExpression e, SymbolTable s, Type t ) : Expression

Default definition method of SymbolTable.Missing.

GetMembers ( SymbolTable symbols ) : IEnumerable

Gets all members and extension methods in specified types.

GetMembers ( SymbolTable symbols, IEnumerable types ) : IEnumerable

Gets all members and extension methods in specified types.

ToString ( ) : String

Returns a String that represents this expression.

Protected Methods

Method Description
ReduceImpl ( SymbolTable symbols, Type expectedType ) : Expression

Reduces this node to a simpler expression with additional symbol tables.

Private Methods

Method Description
CreateCandidate ( MemberInfo member ) : Candidate
DispatchByDynamicBinder ( SymbolTable symbols, Type expectedType ) : Expression
DispatchByTypeSystem ( SymbolTable symbols, Type expectedType ) : Expression
DispatchExpression ( SymbolTable symbols, DispatchTypes dispatchType, Expression left, String name, IList typeArguments, IList arguments ) : System
DispatchFailback ( SymbolTable symbols ) : Expression
GetResultExpression ( SymbolTable symbols, Candidate c ) : Expression
GetTypes ( Expression expression ) : IEnumerable
GetTypes ( TypeCandidateExpression expression ) : IEnumerable
InferTypeArguments ( Candidate candidate, Type>.IDictionary typeArgumentMap, SymbolTable symbols ) : Candidate

Method Details

DefaultMissing() public static method

Default definition method of SymbolTable.Missing.
public static DefaultMissing ( DispatchExpression e, SymbolTable s, Type t ) : Expression
e DispatchExpression The expression to be reduced.
s XSpect.Yacq.Symbols.SymbolTable The symbol table which this symbol (value) belongs.
t System.Type The expected from the caller, or null if any type will be accepted.
return System.Linq.Expressions.Expression

GetMembers() public static method

Gets all members and extension methods in specified types.
public static GetMembers ( SymbolTable symbols ) : IEnumerable
symbols XSpect.Yacq.Symbols.SymbolTable The symbol table for search extension methods.
return IEnumerable

GetMembers() public static method

Gets all members and extension methods in specified types.
public static GetMembers ( SymbolTable symbols, IEnumerable types ) : IEnumerable
symbols XSpect.Yacq.Symbols.SymbolTable The symbol table for search extension methods.
types IEnumerable Types to get members.
return IEnumerable

ReduceImpl() protected method

Reduces this node to a simpler expression with additional symbol tables.
protected ReduceImpl ( SymbolTable symbols, Type expectedType ) : Expression
symbols XSpect.Yacq.Symbols.SymbolTable The additional symbol table for reducing.
expectedType System.Type The type which is expected as the type of reduced expression.
return System.Linq.Expressions.Expression

ToString() public method

Returns a String that represents this expression.
public ToString ( ) : String
return String