Show / Hide Table of Contents

Class InjectLiteralType

Give Literal expressions a non-unknown type if they appear e.g. in "a + b", where a is literal and b is double, or "a ? b : c" where b is int. Also inject the correct type if Content is parsable as an integer etc.

Inheritance
Object
ChangeDag<Expression, Table, IExpressionVisitor>
ChangeExpressions
InjectLiteralType
Implements
IGenericExpressionVisitor<IEnumerable<Expression>>
IExpressionVisitor
IGenericVisitor<IEnumerable<Expression>>
Inherited Members
ChangeExpressions.CreatedExpressions
ChangeExpressions.Result
ChangeExpressions.Identifier(Expression)
ChangeExpressions.ChangeIdentifier(Expression)
ChangeExpressions.Change(Aggregand)
ChangeExpressions.Change(BinaryAggregation)
ChangeExpressions.Change(ColumnReference)
ChangeExpressions.Change(DataSourceColumn)
ChangeExpressions.Change(Extern)
ChangeExpressions.Change(Filter)
ChangeExpressions.Change(JoinKey)
ChangeExpressions.Change(RuntimeVariable)
ChangeExpressions.Change(UnaryAggregation)
ChangeExpressions.Change(UnaryOperation)
ChangeExpressions.Change(UnionExpression)
ChangeExpressions.Change(VectorOperation)
ChangeExpressions.Change(UnaryWindowFunction)
ChangeExpressions.Visit(Aggregand)
ChangeExpressions.Visit(BinaryAggregation)
ChangeExpressions.Visit(BinaryOperation)
ChangeExpressions.Visit(ColumnReference)
ChangeExpressions.Visit(DataSourceColumn)
ChangeExpressions.Visit(Extern)
ChangeExpressions.Visit(Filter)
ChangeExpressions.Visit(JoinKey)
ChangeExpressions.Visit(Literal)
ChangeExpressions.Visit(RuntimeVariable)
ChangeExpressions.Visit(TernaryOperation)
ChangeExpressions.Visit(UnaryAggregation)
ChangeExpressions.Visit(UnaryOperation)
ChangeExpressions.Visit(UnionExpression)
ChangeExpressions.Visit(VectorOperation)
ChangeExpressions.Visit(UnaryWindowFunction)
ChangeDag<Expression, Table, IExpressionVisitor>.Mapping
ChangeDag<Expression, Table, IExpressionVisitor>.Reset()
ChangeDag<Expression, Table, IExpressionVisitor>.Identifier(Expression)
ChangeDag<Expression, Table, IExpressionVisitor>.ChangeIdentifier(Expression)
ChangeDag<Expression, Table, IExpressionVisitor>.ReplaceParent(Expression, Expression, Expression)
ChangeDag<Expression, Table, IExpressionVisitor>.UberVisit<TSubnode>(TSubnode, Func<TSubnode, Expression>)
ChangeDag<Expression, Table, IExpressionVisitor>.UberVisit<TSubnode, TSubidentifier>(TSubnode, Func<TSubnode, Expression>)
Object.Equals(Object)
Object.Equals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Object.ToString()
Namespace: Mangrove.MetricSetTransformers
Assembly: MetricSetTransformers.dll
Syntax
public class InjectLiteralType : ChangeExpressions, IGenericExpressionVisitor<IEnumerable<Expression>>, IExpressionVisitor, IGenericVisitor<IEnumerable<Expression>>

Methods

View Source

Change(BinaryOperation)

If we encounter a == b or a != b and one of a, b is a Literal of Unknown type, use the type of the other Expression to infer the type of the Literal.

Declaration
protected override Expression Change(BinaryOperation expr)
Parameters
Type Name Description
BinaryOperation expr
Returns
Type Description
Expression
Overrides
ChangeExpressions.Change(BinaryOperation)
View Source

Change(Literal)

Give literals the correct type if their content is parsable. This should not be necessary, but MDLCore produces Computation objects with content "1.3" and C# type "int".

Declaration
protected override Expression Change(Literal expr)
Parameters
Type Name Description
Literal expr
Returns
Type Description
Expression
Overrides
ChangeExpressions.Change(Literal)
View Source

Change(TernaryOperation)

In an expression like a? b: c where one of b, c is a Literal with Unknown type, use the type of the other to infer the type of the Literal.

Declaration
protected override Expression Change(TernaryOperation expr)
Parameters
Type Name Description
TernaryOperation expr
Returns
Type Description
Expression
Overrides
ChangeExpressions.Change(TernaryOperation)

Implements

IGenericExpressionVisitor<T>
IExpressionVisitor
IGenericVisitor<T>

Extension Methods

ObjectExtensions.EventId(Object)
  • View Source
Back to top Generated by DocFX