Show / Hide Table of Contents

Class MonadAbstraction

A representation of a query tree which is a monad member.

Inheritance
System.Object
QueryTree
MonadMember
MonadAbstraction
Inherited Members
MonadMember.ElementType
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
QueryTree.QueryNodeType

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
System.Linq.CompilerServices.Optimizers.QueryTree.Accept<TQueryTree, TMonadMember, TQueryOperator>(System.Linq.CompilerServices.Optimizers.QueryVisitor<TQueryTree, TMonadMember, TQueryOperator>)

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
QueryTree.Reduce()

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.

In This Article
Back to top Generated by DocFX