Show / Hide Table of Contents

Class MetadataSemanticProvider

Semantic information provider for expressions and reflection objects with support for metadata-based lookups.

Inheritance
System.Object
DefaultSemanticProvider
MetadataSemanticProvider
Implements
ISemanticProvider
Inherited Members
DefaultSemanticProvider.NeverThrows(MemberInfo)
DefaultSemanticProvider.AlwaysThrows(Expression)
DefaultSemanticProvider.NeverThrows(Expression)
DefaultSemanticProvider.GetConstantValue(Expression)
DefaultSemanticProvider.HasConstantValue(Expression)
DefaultSemanticProvider.IsAlwaysNull(Expression)
DefaultSemanticProvider.IsNeverNull(Expression)
DefaultSemanticProvider.IsPure(Expression)
DefaultSemanticProvider.IsIdentityFunction(Expression)
DefaultSemanticProvider.IsFalse(Expression)
DefaultSemanticProvider.IsTrue(Expression)
DefaultSemanticProvider.IsZero(Expression)
DefaultSemanticProvider.IsOne(Expression)
DefaultSemanticProvider.AllBitsZero(Expression)
DefaultSemanticProvider.AllBitsOne(Expression)
DefaultSemanticProvider.IsMinValue(Expression)
DefaultSemanticProvider.IsMaxValue(Expression)
Namespace: System.Linq.Expressions
Assembly: Nuqleon.Linq.Expressions.Optimizers.dll
Syntax
public class MetadataSemanticProvider : DefaultSemanticProvider, ISemanticProvider

Constructors

MetadataSemanticProvider()

Declaration
public MetadataSemanticProvider()

Properties

ConstParameters

Gets a table of parameters that are used in a const way, i.e. the callee doesn't mutate the values passed to these parameters.

Declaration
public ParameterTable ConstParameters { get; set; }
Property Value
Type Description
ParameterTable

ImmutableTypes

Gets a table of types whose instances are immutable.

Declaration
public TypeTable ImmutableTypes { get; set; }
Property Value
Type Description
TypeTable

PureMembers

Gets a table of members that are deemed to be pure.

Declaration
public MemberTable PureMembers { get; set; }
Property Value
Type Description
MemberTable

Methods

IsConst(ParameterInfo)

Checks if the specified parameter uses the argument in a const (readonly) fashion, i.e. it doesn't cause any mutation to the argument passed to it.

Declaration
public override bool IsConst(ParameterInfo parameter)
Parameters
Type Name Description
System.Reflection.ParameterInfo parameter

The parameter to check.

Returns
Type Description
System.Boolean

true if the specified parameter has const behavior; otherwise, false.

Overrides
DefaultSemanticProvider.IsConst(ParameterInfo)

IsImmutable(Type)

Checks if instances of the specified type are immutable.

Declaration
public override bool IsImmutable(Type type)
Parameters
Type Name Description
System.Type type

The type to check.

Returns
Type Description
System.Boolean

true if the specified type is immutable; otherwise, false.

Overrides
DefaultSemanticProvider.IsImmutable(Type)

IsPure(MemberInfo)

Checks if the specified member is pure and doesn't have any side-effects for evaluation. Members can be retrieved from the PureMembers table.

Declaration
public override bool IsPure(MemberInfo member)
Parameters
Type Name Description
System.Reflection.MemberInfo member

The member to check.

Returns
Type Description
System.Boolean

true if the specified member is considered pure; otherwise, false.

Overrides
DefaultSemanticProvider.IsPure(MemberInfo)

Implements

ISemanticProvider
In This Article
Back to top Generated by DocFX