208 references to EditKind
Microsoft.CodeAnalysis.CSharp.Features (42)
EditAndContinue\CSharpEditAndContinueAnalyzer.cs (42)
1025
EditKind
editKind,
1066
ref TemporaryArray<(ISymbol?, ISymbol?,
EditKind
)> result,
1067
EditKind
editKind,
1075
IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap,
1146
result.Add((oldSymbol, newSymbol, isTypeConstraint ?
EditKind
.Update : editKind));
1153
case
EditKind
.Reorder:
1160
result.Add((oldSymbol, newSymbol,
EditKind
.Update));
1166
result.Add((oldSymbol, newSymbol,
EditKind
.Reorder));
1170
case
EditKind
.Update:
1265
result.Add((oldSymbol, newSymbol,
EditKind
.Update));
1281
result.Add((oldPrimaryConstructor, newPrimaryConstructor,
EditKind
.Update));
1291
result.Add((oldCopyConstructor, newCopyConstructor,
EditKind
.Update));
1299
case
EditKind
.Delete:
1300
case
EditKind
.Insert:
1331
result.Add((oldSymbol, newSymbol,
EditKind
.Update));
1338
result.Add((oldSymbol, newSymbol,
EditKind
.Update));
1346
result.Add((oldSymbol, newSymbol,
EditKind
.Update));
1352
case
EditKind
.Move:
1369
if ((editKind ==
EditKind
.Delete ? oldSymbol : newSymbol) is null)
1595
protected override TextSpan? TryGetDiagnosticSpan(SyntaxNode node,
EditKind
editKind)
1598
internal static new TextSpan GetDiagnosticSpan(SyntaxNode node,
EditKind
editKind)
1601
private static TextSpan? TryGetDiagnosticSpanImpl(SyntaxNode node,
EditKind
editKind)
1605
internal static TextSpan? TryGetDiagnosticSpanImpl(SyntaxKind kind, SyntaxNode node,
EditKind
editKind)
1615
(editKind ==
EditKind
.Delete ? globalStatements.LastOrDefault() : globalStatements.FirstOrDefault()) ??
1732
if (editKind ==
EditKind
.Delete)
1990
protected override string? TryGetDisplayName(SyntaxNode node,
EditKind
editKind)
1993
internal static new string? GetDisplayName(SyntaxNode node,
EditKind
editKind)
1996
internal static string? TryGetDisplayNameImpl(SyntaxNode node,
EditKind
editKind)
2263
protected override string GetSuspensionPointDisplayName(SyntaxNode node,
EditKind
editKind)
2291
private readonly
EditKind
_kind;
2299
EditKind
kind,
2345
case
EditKind
.Delete:
2349
case
EditKind
.Update:
2353
case
EditKind
.Move:
2357
case
EditKind
.Insert:
2361
case
EditKind
.Reorder:
2489
Dictionary<SyntaxNode,
EditKind
> editMap)
2573
GetDiagnosticSpan(newNode,
EditKind
.Insert),
2575
arguments: [GetDisplayName(newNode,
EditKind
.Insert)]));
2646
Debug.Assert(edit.Kind !=
EditKind
.Update || edit.OldNode.RawKind == edit.NewNode.RawKind);
2648
if (edit.Kind !=
EditKind
.Update || !AreExceptionClausesEquivalent(edit.OldNode, edit.NewNode))
2903
GetDiagnosticSpan(newSwitch,
EditKind
.Update),
Microsoft.CodeAnalysis.Features (94)
EditAndContinue\AbstractEditAndContinueAnalyzer.ActiveMembersBuilder.cs (1)
95
var methods = analyzer.GetEditedSymbols(
EditKind
.Update, oldDeclaration, newDeclaration, oldModel, newModel, cancellationToken);
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (93)
190
ref TemporaryArray<(ISymbol?, ISymbol?,
EditKind
)> result,
191
EditKind
editKind,
199
IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap,
207
EditKind
editKind,
214
private OneOrMany<(ISymbol? oldSymbol, ISymbol? newSymbol,
EditKind
editKind)> GetSymbolEdits(
215
EditKind
editKind,
221
IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap,
225
var result = new TemporaryArray<(ISymbol?, ISymbol?,
EditKind
)>();
241
if (editKind ==
EditKind
.Update && GetSemanticallyMatchingNewSymbol(oldSymbol, newSymbol, newModel.Compilation, symbolCache, cancellationToken) != null)
243
AddSymbolEdits(ref result,
EditKind
.Delete, oldNode, oldSymbol, newNode: null, newSymbol: null, oldModel, newModel, topMatch, editMap, symbolCache, cancellationToken);
244
AddSymbolEdits(ref result,
EditKind
.Insert, oldNode: null, oldSymbol: null, newNode, newSymbol, oldModel, newModel, topMatch, editMap, symbolCache, cancellationToken);
254
0 => OneOrMany<(ISymbol?, ISymbol?,
EditKind
)>.Empty,
263
protected abstract TextSpan? TryGetDiagnosticSpan(SyntaxNode node,
EditKind
editKind);
265
internal TextSpan GetDiagnosticSpan(SyntaxNode node,
EditKind
editKind)
268
protected virtual TextSpan GetBodyDiagnosticSpan(SyntaxNode node,
EditKind
editKind)
310
internal string GetDisplayName(SyntaxNode node,
EditKind
editKind =
EditKind
.Update)
361
protected virtual string GetBodyDisplayName(SyntaxNode node,
EditKind
editKind =
EditKind
.Update)
391
protected abstract string? TryGetDisplayName(SyntaxNode node,
EditKind
editKind);
393
protected virtual string GetSuspensionPointDisplayName(SyntaxNode node,
EditKind
editKind)
402
internal abstract void ReportTopLevelSyntacticRudeEdits(RudeEditDiagnosticsBuilder diagnostics, Match<SyntaxNode> match, Edit<SyntaxNode> edit, Dictionary<SyntaxNode,
EditKind
> editMap);
792
private void ReportTopLevelSyntacticRudeEdits(RudeEditDiagnosticsBuilder diagnostics, EditScript<SyntaxNode> syntacticEdits, Dictionary<SyntaxNode,
EditKind
> editMap)
800
internal Dictionary<SyntaxNode,
EditKind
> BuildEditMap(EditScript<SyntaxNode> editScript)
802
var map = new Dictionary<SyntaxNode,
EditKind
>(editScript.Edits.Length);
808
if (edit.Kind is
EditKind
.Delete or
EditKind
.Update)
813
if (edit.Kind is
EditKind
.Insert or
EditKind
.Update)
826
map.Add(editScript.Match.OldRoot,
EditKind
.Update);
827
map.Add(editScript.Match.NewRoot,
EditKind
.Update);
1886
return GetDiagnosticSpan(newAncestor,
EditKind
.Delete);
1893
return GetDiagnosticSpan(newAncestor,
EditKind
.Delete);
1917
protected static bool HasParentEdit(IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap, Edit<SyntaxNode> edit)
1922
case
EditKind
.Insert:
1926
case
EditKind
.Delete:
1937
protected static bool HasEdit(IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap, SyntaxNode? node,
EditKind
editKind)
1941
editMap.TryGetValue(node, out
var
parentEdit) &&
1971
GetDiagnosticSpan(newNode,
EditKind
.Update),
1973
[GetDisplayName(newNode,
EditKind
.Update), oldType.ToDisplayString(), newType.ToDisplayString()]));
1980
GetDiagnosticSpan(newNode,
EditKind
.Update),
1982
[GetDisplayName(newNode,
EditKind
.Update)]));
1989
GetDiagnosticSpan(newNode,
EditKind
.Insert),
1991
[GetDisplayName(newNode,
EditKind
.Insert)]));
2000
[GetDisplayName(oldNode,
EditKind
.Delete)]));
2222
IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap,
2247
Debug.Assert(editMap[newNode] is
EditKind
.Update or
EditKind
.Insert);
2700
IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap,
2752
if (syntacticEditKind ==
EditKind
.Move)
2776
GetDiagnosticSpan(newTypeDeclaration,
EditKind
.Update),
2806
if (syntacticEditKind ==
EditKind
.Update)
2810
syntacticEditKind =
EditKind
.Insert;
2814
syntacticEditKind =
EditKind
.Delete;
2840
if (containingType != null && (syntacticEditKind !=
EditKind
.Delete || newSymbol == null))
2869
if (syntacticEditKind !=
EditKind
.Delete && oldSymbol is INamedTypeSymbol oldType && newSymbol is INamedTypeSymbol newType && IsReloadable(oldType))
2903
case
EditKind
.Delete:
2949
diagnostics.Add(new RudeEditDiagnostic(RudeEditKind.Delete, diagnosticSpan, edit.OldNode, [GetDisplayName(edit.OldNode!,
EditKind
.Delete)]));
2977
[GetDisplayKindAndName(oldSymbol, GetDisplayName(oldDeclaration,
EditKind
.Delete), fullyQualify: diagnosticSpan.IsEmpty)]));
3004
[GetDisplayKindAndName(oldSymbol, GetDisplayName(oldDeclaration,
EditKind
.Delete), fullyQualify: diagnosticSpan.IsEmpty)]));
3062
case
EditKind
.Insert:
3108
HasEdit(editMap, GetSymbolDeclarationSyntax(newAssociatedMember, cancellationToken),
EditKind
.Insert);
3125
GetDiagnosticSpan(newDeclaration,
EditKind
.Insert),
3148
GetDiagnosticSpan(newDeclaration,
EditKind
.Insert),
3150
arguments: [GetDisplayName(newDeclaration,
EditKind
.Insert)]));
3190
GetDiagnosticSpan(newDeclaration,
EditKind
.Insert),
3192
arguments: [GetDisplayName(newDeclaration,
EditKind
.Insert)]));
3224
case
EditKind
.Update:
3231
case
EditKind
.Reorder:
3506
var triviaSymbolEdits = GetSymbolEdits(
EditKind
.Update, oldEditNode, newEditNode, oldModel, newModel, editScript.Match, editMap, symbolCache, cancellationToken);
3731
protected static void AddMemberUpdate(ref TemporaryArray<(ISymbol?, ISymbol?,
EditKind
)> result, ISymbol? oldSymbol, ISymbol? newSymbol, ISymbol? newSemanticallyMatchingSymbol)
3738
result.Add((oldSymbol, null,
EditKind
.Delete));
3739
result.Add((null, newSymbol,
EditKind
.Insert));
3743
result.Add((oldSymbol, newSymbol,
EditKind
.Update));
4042
private ImmutableArray<(ISymbol? oldSymbol, ISymbol? newSymbol,
EditKind
editKind)> GetNamespaceSymbolEdits(
4047
using var _1 = ArrayBuilder<(ISymbol? oldSymbol, ISymbol? newSymbol,
EditKind
editKind)>.GetInstance(out var builder);
4078
builder.Add((oldSymbol: oldType, newSymbol: null,
EditKind
.Delete));
4109
builder[deletedTypeIndex] = (builder[deletedTypeIndex].oldSymbol, newType,
EditKind
.Move);
4113
builder.Add((oldSymbol: null, newSymbol: newType,
EditKind
.Insert));
4787
/// and therefore not produced by <see cref="GetSymbolEdits(
EditKind
, SyntaxNode?, SyntaxNode?, DocumentSemanticModel, DocumentSemanticModel, Match{SyntaxNode}, IReadOnlyDictionary{SyntaxNode,
EditKind
}, SymbolInfoCache, CancellationToken)"/>
5280
locationNode.Span : analyzer.GetDiagnosticSpan(GetDiagnosticNode(out var distance, cancellationToken), distance > 0 ?
EditKind
.Delete :
EditKind
.Update),
5308
? analyzer.GetDiagnosticSpan(node, (distance > 0 || kind == RudeEditKind.ChangeImplicitMainReturnType) ?
EditKind
.Delete :
EditKind
.Update)
6086
diagnostics.Add(new RudeEditDiagnostic(RudeEditKind.InsertNotSupportedByRuntime, GetDiagnosticSpan(newLambda,
EditKind
.Insert), newLambda, [GetDisplayName(newLambda,
EditKind
.Insert)]));
6094
diagnostics.Add(new RudeEditDiagnostic(RudeEditKind.InsertLocalFunctionIntoInterfaceMethod, GetDiagnosticSpan(newLambda,
EditKind
.Insert), newLambda, [GetDisplayName(newLambda,
EditKind
.Insert)]));
6439
return IsGlobalMain(symbol) ? GetDiagnosticSpan(GetSymbolDeclarationSyntax(symbol, cancellationToken),
EditKind
.Update) :
6440
symbol is IParameterSymbol && IsGlobalMain(symbol.ContainingSymbol) ? GetDiagnosticSpan(GetSymbolDeclarationSyntax(symbol.ContainingSymbol, cancellationToken),
EditKind
.Update) :
7186
internal void ReportTopLevelSyntacticRudeEdits(RudeEditDiagnosticsBuilder diagnostics, EditScript<SyntaxNode> syntacticEdits, Dictionary<SyntaxNode,
EditKind
> editMap)
Microsoft.CodeAnalysis.VisualBasic.Features (48)
EditAndContinue\VisualBasicEditAndContinueAnalyzer.vb (48)
682
editKind As
EditKind
,
722
ByRef result As TemporaryArray(Of (ISymbol, ISymbol,
EditKind
)),
723
editKind As
EditKind
,
731
editMap As IReadOnlyDictionary(Of SyntaxNode,
EditKind
),
777
result.Add((oldSymbol, newSymbol, If(isTypeConstraint,
EditKind
.Update, editKind)))
783
Case
EditKind
.Reorder
790
result.Add((oldSymbol, newSymbol,
EditKind
.Reorder))
792
Case
EditKind
.Delete
795
Case
EditKind
.Insert
798
Case
EditKind
.Update
806
result.Add((oldPropertySymbol, newPropertySymbol,
EditKind
.Update))
826
result.Add((oldEventSymbol, newEventSymbol,
EditKind
.Update))
852
Case
EditKind
.Move
870
editKind As
EditKind
,
894
If editKind =
EditKind
.Update OrElse editKind =
EditKind
.Reorder Then
1057
Protected Overrides Function TryGetDiagnosticSpan(node As SyntaxNode, editKind As
EditKind
) As TextSpan?
1061
Protected Overloads Shared Function GetDiagnosticSpan(node As SyntaxNode, editKind As
EditKind
) As TextSpan
1065
Private Shared Function TryGetDiagnosticSpanImpl(node As SyntaxNode, editKind As
EditKind
) As TextSpan?
1069
Protected Overrides Function GetBodyDiagnosticSpan(node As SyntaxNode, editKind As
EditKind
) As TextSpan
1074
Friend Shared Function TryGetDiagnosticSpanImpl(kind As SyntaxKind, node As SyntaxNode, editKind As
EditKind
) As TextSpan?
1173
If editKind =
EditKind
.Delete Then
1446
Protected Overrides Function TryGetDisplayName(node As SyntaxNode, editKind As
EditKind
) As String
1450
Protected Overloads Shared Function GetDisplayName(node As SyntaxNode, editKind As
EditKind
) As String
1460
Protected Overrides Function GetBodyDisplayName(node As SyntaxNode, Optional editKind As
EditKind
=
EditKind
.Update) As String
1464
Private Shared Function TryGetDisplayNameImpl(node As SyntaxNode, editKind As
EditKind
) As String
1601
Return If(editKind =
EditKind
.Update, VBFeaturesResources.Using_statement, VBFeaturesResources.Using_block)
1604
Return If(editKind =
EditKind
.Update, VBFeaturesResources.With_statement, VBFeaturesResources.With_block)
1607
Return If(editKind =
EditKind
.Update, VBFeaturesResources.SyncLock_statement, VBFeaturesResources.SyncLock_block)
1610
Return If(editKind =
EditKind
.Update, VBFeaturesResources.For_Each_statement, VBFeaturesResources.For_Each_block)
1696
Private ReadOnly _kind As
EditKind
1703
kind As
EditKind
,
1721
arguments:={GetDisplayName(If(_newNode, _oldNode),
EditKind
.Update)}))
1738
Case
EditKind
.Delete
1742
Case
EditKind
.Update
1746
Case
EditKind
.Move
1750
Case
EditKind
.Insert
1754
Case
EditKind
.Reorder
1895
editMap As Dictionary(Of SyntaxNode,
EditKind
))
1902
If edit.Kind =
EditKind
.Delete AndAlso
1906
If HasEdit(editMap, edit.OldNode.Parent.Parent,
EditKind
.Delete) Then
1910
ElseIf edit.Kind =
EditKind
.Insert AndAlso
1914
If HasEdit(editMap, edit.NewNode.Parent.Parent,
EditKind
.Insert) Then
1975
GetDiagnosticSpan(newNode,
EditKind
.Insert),
1977
arguments:={GetDisplayName(newNode,
EditKind
.Insert)}))
2085
Debug.Assert(edit.Kind <>
EditKind
.Update OrElse edit.OldNode.RawKind = edit.NewNode.RawKind)
2087
If edit.Kind <>
EditKind
.Update OrElse Not AreExceptionHandlingPartsEquivalent(edit.OldNode, edit.NewNode) Then
Microsoft.CodeAnalysis.Workspaces (24)
Differencing\Edit.cs (9)
22
internal Edit(
EditKind
kind, TreeComparer<TNode> comparer, TNode oldNode, TNode newNode)
24
Debug.Assert((oldNode == null || oldNode.Equals(null)) == (kind ==
EditKind
.Insert));
25
Debug.Assert((newNode == null || newNode.Equals(null)) == (kind ==
EditKind
.Delete));
38
public
EditKind
Kind { get; }
96
case
EditKind
.Delete:
99
case
EditKind
.Insert:
102
case
EditKind
.Update:
105
case
EditKind
.Move:
106
case
EditKind
.Reorder:
Differencing\EditScript.cs (5)
95
edits.Add(new Edit<TNode>(
EditKind
.Insert, Comparer, oldNode: default, newNode: x));
114
edits.Add(new Edit<TNode>(
EditKind
.Update, Comparer, oldNode: w, newNode: x));
126
edits.Add(new Edit<TNode>(
EditKind
.Move, Comparer, oldNode: w, newNode: x));
156
edits.Add(new Edit<TNode>(
EditKind
.Delete, Comparer, oldNode: w, newNode: default));
236
edits.Add(new Edit<TNode>(
EditKind
.Reorder, Comparer, oldNode: a, newNode: b));
Differencing\SequenceEdit.cs (10)
30
/// The kind of edit: <see cref="
EditKind
.Delete"/>, <see cref="
EditKind
.Insert"/>, or <see cref="
EditKind
.Update"/>.
32
public
EditKind
Kind
38
return
EditKind
.Insert;
43
return
EditKind
.Delete;
46
return
EditKind
.Update;
77
case
EditKind
.Delete:
80
case
EditKind
.Insert:
83
case
EditKind
.Update: