Table of Contents

Class TypeDefOrRefPattern

Namespace
CilFi.Patterns
Assembly
CilFi.Core.dll

Defines a pattern matching on type signatures.

[GenerateKeyedMatchNode]
public record TypeDefOrRefPattern : Pattern<TypeSignature?>, IEquatable<Pattern>, IEquatable<Pattern<TypeSignature?>>, IEquatable<TypeDefOrRefPattern>
Inheritance
TypeDefOrRefPattern
Implements
Inherited Members

Constructors

TypeDefOrRefPattern(Pattern<bool>, Pattern<ITypeDefOrRef>)

Defines a pattern matching on type signatures.

public TypeDefOrRefPattern(Pattern<bool> IsValueType, Pattern<ITypeDefOrRef> Type)

Parameters

IsValueType Pattern<bool>

The pattern describing whether the type is expected to be a value type.

Type Pattern<ITypeDefOrRef>

The pattern describing the underlying type identifier.

TypeDefOrRefPattern(TypeDefOrRefPattern)

protected TypeDefOrRefPattern(TypeDefOrRefPattern original)

Parameters

original TypeDefOrRefPattern

Fields

Boolean

public static readonly TypeDefOrRefPattern Boolean

Field Value

TypeDefOrRefPattern

Byte

public static readonly TypeDefOrRefPattern Byte

Field Value

TypeDefOrRefPattern

Char

public static readonly TypeDefOrRefPattern Char

Field Value

TypeDefOrRefPattern

Double

public static readonly TypeDefOrRefPattern Double

Field Value

TypeDefOrRefPattern

Int16

public static readonly TypeDefOrRefPattern Int16

Field Value

TypeDefOrRefPattern

Int32

public static readonly TypeDefOrRefPattern Int32

Field Value

TypeDefOrRefPattern

Int64

public static readonly TypeDefOrRefPattern Int64

Field Value

TypeDefOrRefPattern

IntPtr

public static readonly TypeDefOrRefPattern IntPtr

Field Value

TypeDefOrRefPattern

Object

public static readonly TypeDefOrRefPattern Object

Field Value

TypeDefOrRefPattern

SByte

public static readonly TypeDefOrRefPattern SByte

Field Value

TypeDefOrRefPattern

Single

public static readonly TypeDefOrRefPattern Single

Field Value

TypeDefOrRefPattern

String

public static readonly TypeDefOrRefPattern String

Field Value

TypeDefOrRefPattern

TypedReference

public static readonly TypeDefOrRefPattern TypedReference

Field Value

TypeDefOrRefPattern

UInt16

public static readonly TypeDefOrRefPattern UInt16

Field Value

TypeDefOrRefPattern

UInt32

public static readonly TypeDefOrRefPattern UInt32

Field Value

TypeDefOrRefPattern

UInt64

public static readonly TypeDefOrRefPattern UInt64

Field Value

TypeDefOrRefPattern

UIntPtr

public static readonly TypeDefOrRefPattern UIntPtr

Field Value

TypeDefOrRefPattern

Void

public static readonly TypeDefOrRefPattern Void

Field Value

TypeDefOrRefPattern

Properties

EqualityContract

protected override Type EqualityContract { get; }

Property Value

Type

IsValueType

The pattern describing whether the type is expected to be a value type.

public Pattern<bool> IsValueType { get; init; }

Property Value

Pattern<bool>

Type

The pattern describing the underlying type identifier.

public Pattern<ITypeDefOrRef> Type { get; init; }

Property Value

Pattern<ITypeDefOrRef>

Methods

Deconstruct(out Pattern<bool>, out Pattern<ITypeDefOrRef>)

public void Deconstruct(out Pattern<bool> IsValueType, out Pattern<ITypeDefOrRef> Type)

Parameters

IsValueType Pattern<bool>
Type Pattern<ITypeDefOrRef>

Equals(Pattern<TypeSignature?>?)

public override sealed bool Equals(Pattern<TypeSignature?>? other)

Parameters

other Pattern<TypeSignature>

Returns

bool

Equals(TypeDefOrRefPattern?)

public virtual bool Equals(TypeDefOrRefPattern? other)

Parameters

other TypeDefOrRefPattern

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

Format(IndentedTextWriter)

Serializes the pattern to a readable string.

public override void Format(IndentedTextWriter writer)

Parameters

writer IndentedTextWriter

The output stream.

GetHashCode()

public override int GetHashCode()

Returns

int

Match(TypeSignature?, MatchingContext)

Attempts to match the provided input to the pattern.

public override IMatchNode<TypeSignature?>? Match(TypeSignature? signature, MatchingContext context)

Parameters

signature TypeSignature
context MatchingContext

The context in which to match the pattern to.

Returns

IMatchNode<TypeSignature>

When successful, returns the root node of the match tree, otherwise null.

PrintMembers(StringBuilder)

protected override bool PrintMembers(StringBuilder builder)

Parameters

builder StringBuilder

Returns

bool

Operators

operator ==(TypeDefOrRefPattern?, TypeDefOrRefPattern?)

public static bool operator ==(TypeDefOrRefPattern? left, TypeDefOrRefPattern? right)

Parameters

left TypeDefOrRefPattern
right TypeDefOrRefPattern

Returns

bool

operator !=(TypeDefOrRefPattern?, TypeDefOrRefPattern?)

public static bool operator !=(TypeDefOrRefPattern? left, TypeDefOrRefPattern? right)

Parameters

left TypeDefOrRefPattern
right TypeDefOrRefPattern

Returns

bool