Class MonadAbstraction
A representation of a query tree which is a monad member.
Inherited Members
Namespace: System.Linq.CompilerServices.Optimizers
Assembly: Nuqleon.Linq.CompilerServices.Optimizers.dll
Syntax
public sealed class MonadAbstraction : MonadMember
Properties
Inner
The query tree this object wraps.
Declaration
public QueryTree Inner { get; }
Property Value
Type | Description |
---|---|
QueryTree |
QueryNodeType
Gets the QueryNodeType of the QueryTree.
Declaration
public override QueryNodeType QueryNodeType { get; }
Property Value
Type | Description |
---|---|
QueryNodeType |
Overrides
Methods
Accept<TQueryTree, TMonadMember, TQueryOperator>(QueryVisitor<TQueryTree, TMonadMember, TQueryOperator>)
Accepts the query expression tree node in the specified visitor.
Declaration
protected override TQueryTree Accept<TQueryTree, TMonadMember, TQueryOperator>(QueryVisitor<TQueryTree, TMonadMember, TQueryOperator> visitor)
where TMonadMember : TQueryTree where TQueryOperator : TMonadMember
Parameters
Type | Name | Description |
---|---|---|
QueryVisitor<TQueryTree, TMonadMember, TQueryOperator> | visitor | Visitor to process the current query expression tree node. |
Returns
Type | Description |
---|---|
TQueryTree | Result of visiting the node. |
Type Parameters
Name | Description |
---|---|
TQueryTree | Target type for query expressions. |
TMonadMember | Target type for monad member query expressions. This type has to derive from TQueryTree. |
TQueryOperator | Target type for query operator query expressions. This type has to derive from TMonadMember. |
Overrides
Reduce()
Reduces the current node to an equivalent System.Linq.Expressions.Expression.
Declaration
public override sealed Expression Reduce()
Returns
Type | Description |
---|---|
System.Linq.Expressions.Expression | This node's equivalent System.Linq.Expressions.Expression. |
Overrides
Update(QueryTree)
Creates a monad abstraction query expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression.
Declaration
public MonadAbstraction Update(QueryTree inner)
Parameters
Type | Name | Description |
---|---|---|
QueryTree | inner | The Inner child node of the result. |
Returns
Type | Description |
---|---|
MonadAbstraction | This query expression if no children are changed or an expression with the updated children. |