SemanticEdit Struct

Definition

Describes a symbol edit between two compilations. For example, an addition of a method, an update of a method, removal of a type, etc.

public value class SemanticEdit : IEquatable<Microsoft::CodeAnalysis::Emit::SemanticEdit>
public struct SemanticEdit : IEquatable<Microsoft.CodeAnalysis.Emit.SemanticEdit>
public readonly struct SemanticEdit : IEquatable<Microsoft.CodeAnalysis.Emit.SemanticEdit>
type SemanticEdit = struct
Public Structure SemanticEdit
Implements IEquatable(Of SemanticEdit)
Inheritance
SemanticEdit
Implements

Constructors

SemanticEdit(SemanticEditKind, ISymbol, ISymbol, Func<SyntaxNode,SyntaxNode>, Boolean, MethodInstrumentation)
Obsolete.

Initializes an instance of SemanticEdit.

SemanticEdit(SemanticEditKind, ISymbol, ISymbol, Func<SyntaxNode,SyntaxNode>, Boolean)
Obsolete.

Initializes an instance of SemanticEdit.

SemanticEdit(SemanticEditKind, ISymbol, ISymbol, Func<SyntaxNode,SyntaxNode>, Func<SyntaxNode,Nullable<RuntimeRudeEdit>>, MethodInstrumentation)

Initializes an instance of SemanticEdit.

Properties

Instrumentation

Instrumentation update to be applied to a method. If not empty, OldSymbol and NewSymbol must be non-null IMethodSymbols, and Kind must be Update.

Kind

The type of edit.

NewSymbol

The symbol from the later compilation, or the symbol of the containing type from the later compilation if the edit represents a deletion.

OldSymbol

The symbol from the earlier compilation, or null if the edit represents an addition.

PreserveLocalVariables

True if SyntaxMap is not null.

RuntimeRudeEdit

Associates a syntax node in the later compilation to an error that should be reported at runtime by the IL generated for the node, if any.

SyntaxMap

A map from syntax node in the later compilation to syntax node in the previous compilation, or null if PreserveLocalVariables is false and the map is not needed or the source of the current method is the same as the source of the previous method.

Methods

Equals(Object)
Equals(SemanticEdit)

SemanticEdits are considered equal if they are of the same Kind and the corresponding OldSymbol and NewSymbol symbols are the same. The effects of edits that compare equal on the emitted metadata/IL are not necessarily the same.

GetHashCode()

Operators

Equality(SemanticEdit, SemanticEdit)
Inequality(SemanticEdit, SemanticEdit)

Applies to