191 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.CSharp.Features.UnitTests (24)
EditAndContinue\CSharpEditAndContinueAnalyzerTests.cs (2)
57
var actual = CSharpEditAndContinueAnalyzer.GetDiagnosticSpan(node,
EditKind
.Update);
95
span = CSharpEditAndContinueAnalyzer.TryGetDiagnosticSpanImpl(kind, null,
EditKind
.Update);
EditAndContinue\TopLevelEditingTests.cs (22)
10515
edits.VerifyEdits(
EditKind
.Reorder);
10546
edits.VerifyEdits(
EditKind
.Reorder);
10582
edits.VerifyEdits(
EditKind
.Reorder);
19055
edits.VerifyEdits(
EditKind
.Reorder);
19085
edits.VerifyEdits(
EditKind
.Reorder);
19116
edits.VerifyEdits(
EditKind
.Reorder,
EditKind
.Update);
19146
edits.VerifyEdits(
EditKind
.Reorder,
EditKind
.Update);
19181
edits.VerifyEdits(
EditKind
.Reorder,
EditKind
.Update);
19200
edits.VerifyEdits(
EditKind
.Reorder);
19233
edits.VerifyEdits(
EditKind
.Reorder);
20601
edits.VerifyEdits(
EditKind
.Reorder);
20631
edits.VerifyEdits(
EditKind
.Reorder);
20665
edits.VerifyEdits(
EditKind
.Reorder);
20682
edits.VerifyEdits(
EditKind
.Reorder);
20715
edits.VerifyEdits(
EditKind
.Reorder);
24006
edits.VerifyEdits(
EditKind
.Reorder);
24038
edits.VerifyEdits(
EditKind
.Reorder);
24074
edits.VerifyEdits(
EditKind
.Reorder);
24107
edits.VerifyEdits(
EditKind
.Reorder);
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)
185
ref TemporaryArray<(ISymbol?, ISymbol?,
EditKind
)> result,
186
EditKind
editKind,
194
IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap,
202
EditKind
editKind,
209
private OneOrMany<(ISymbol? oldSymbol, ISymbol? newSymbol,
EditKind
editKind)> GetSymbolEdits(
210
EditKind
editKind,
216
IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap,
220
var result = new TemporaryArray<(ISymbol?, ISymbol?,
EditKind
)>();
236
if (editKind ==
EditKind
.Update && GetSemanticallyMatchingNewSymbol(oldSymbol, newSymbol, newModel.Compilation, symbolCache, cancellationToken) != null)
238
AddSymbolEdits(ref result,
EditKind
.Delete, oldNode, oldSymbol, newNode: null, newSymbol: null, oldModel, newModel, topMatch, editMap, symbolCache, cancellationToken);
239
AddSymbolEdits(ref result,
EditKind
.Insert, oldNode: null, oldSymbol: null, newNode, newSymbol, oldModel, newModel, topMatch, editMap, symbolCache, cancellationToken);
249
0 => OneOrMany<(ISymbol?, ISymbol?,
EditKind
)>.Empty,
258
protected abstract TextSpan? TryGetDiagnosticSpan(SyntaxNode node,
EditKind
editKind);
260
internal TextSpan GetDiagnosticSpan(SyntaxNode node,
EditKind
editKind)
263
protected virtual TextSpan GetBodyDiagnosticSpan(SyntaxNode node,
EditKind
editKind)
305
internal string GetDisplayName(SyntaxNode node,
EditKind
editKind =
EditKind
.Update)
356
protected virtual string GetBodyDisplayName(SyntaxNode node,
EditKind
editKind =
EditKind
.Update)
386
protected abstract string? TryGetDisplayName(SyntaxNode node,
EditKind
editKind);
388
protected virtual string GetSuspensionPointDisplayName(SyntaxNode node,
EditKind
editKind)
397
internal abstract void ReportTopLevelSyntacticRudeEdits(RudeEditDiagnosticsBuilder diagnostics, Match<SyntaxNode> match, Edit<SyntaxNode> edit, Dictionary<SyntaxNode,
EditKind
> editMap);
787
private void ReportTopLevelSyntacticRudeEdits(RudeEditDiagnosticsBuilder diagnostics, EditScript<SyntaxNode> syntacticEdits, Dictionary<SyntaxNode,
EditKind
> editMap)
795
internal Dictionary<SyntaxNode,
EditKind
> BuildEditMap(EditScript<SyntaxNode> editScript)
797
var map = new Dictionary<SyntaxNode,
EditKind
>(editScript.Edits.Length);
803
if (edit.Kind is
EditKind
.Delete or
EditKind
.Update)
808
if (edit.Kind is
EditKind
.Insert or
EditKind
.Update)
821
map.Add(editScript.Match.OldRoot,
EditKind
.Update);
822
map.Add(editScript.Match.NewRoot,
EditKind
.Update);
1881
return GetDiagnosticSpan(newAncestor,
EditKind
.Delete);
1888
return GetDiagnosticSpan(newAncestor,
EditKind
.Delete);
1912
protected static bool HasParentEdit(IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap, Edit<SyntaxNode> edit)
1917
case
EditKind
.Insert:
1921
case
EditKind
.Delete:
1932
protected static bool HasEdit(IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap, SyntaxNode? node,
EditKind
editKind)
1936
editMap.TryGetValue(node, out
var
parentEdit) &&
1966
GetDiagnosticSpan(newNode,
EditKind
.Update),
1968
[GetDisplayName(newNode,
EditKind
.Update), oldType.ToDisplayString(), newType.ToDisplayString()]));
1975
GetDiagnosticSpan(newNode,
EditKind
.Update),
1977
[GetDisplayName(newNode,
EditKind
.Update)]));
1984
GetDiagnosticSpan(newNode,
EditKind
.Insert),
1986
[GetDisplayName(newNode,
EditKind
.Insert)]));
1995
[GetDisplayName(oldNode,
EditKind
.Delete)]));
2217
IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap,
2242
Debug.Assert(editMap[newNode] is
EditKind
.Update or
EditKind
.Insert);
2695
IReadOnlyDictionary<SyntaxNode,
EditKind
> editMap,
2747
if (syntacticEditKind ==
EditKind
.Move)
2771
GetDiagnosticSpan(newTypeDeclaration,
EditKind
.Update),
2801
if (syntacticEditKind ==
EditKind
.Update)
2805
syntacticEditKind =
EditKind
.Insert;
2809
syntacticEditKind =
EditKind
.Delete;
2835
if (containingType != null && (syntacticEditKind !=
EditKind
.Delete || newSymbol == null))
2864
if (syntacticEditKind !=
EditKind
.Delete && oldSymbol is INamedTypeSymbol oldType && newSymbol is INamedTypeSymbol newType && IsReloadable(oldType))
2898
case
EditKind
.Delete:
2944
diagnostics.Add(new RudeEditDiagnostic(RudeEditKind.Delete, diagnosticSpan, edit.OldNode, [GetDisplayName(edit.OldNode!,
EditKind
.Delete)]));
2972
[GetDisplayKindAndName(oldSymbol, GetDisplayName(oldDeclaration,
EditKind
.Delete), fullyQualify: diagnosticSpan.IsEmpty)]));
2999
[GetDisplayKindAndName(oldSymbol, GetDisplayName(oldDeclaration,
EditKind
.Delete), fullyQualify: diagnosticSpan.IsEmpty)]));
3057
case
EditKind
.Insert:
3103
HasEdit(editMap, GetSymbolDeclarationSyntax(newAssociatedMember, cancellationToken),
EditKind
.Insert);
3120
GetDiagnosticSpan(newDeclaration,
EditKind
.Insert),
3143
GetDiagnosticSpan(newDeclaration,
EditKind
.Insert),
3145
arguments: [GetDisplayName(newDeclaration,
EditKind
.Insert)]));
3185
GetDiagnosticSpan(newDeclaration,
EditKind
.Insert),
3187
arguments: [GetDisplayName(newDeclaration,
EditKind
.Insert)]));
3219
case
EditKind
.Update:
3226
case
EditKind
.Reorder:
3501
var triviaSymbolEdits = GetSymbolEdits(
EditKind
.Update, oldEditNode, newEditNode, oldModel, newModel, editScript.Match, editMap, symbolCache, cancellationToken);
3726
protected static void AddMemberUpdate(ref TemporaryArray<(ISymbol?, ISymbol?,
EditKind
)> result, ISymbol? oldSymbol, ISymbol? newSymbol, ISymbol? newSemanticallyMatchingSymbol)
3733
result.Add((oldSymbol, null,
EditKind
.Delete));
3734
result.Add((null, newSymbol,
EditKind
.Insert));
3738
result.Add((oldSymbol, newSymbol,
EditKind
.Update));
4037
private ImmutableArray<(ISymbol? oldSymbol, ISymbol? newSymbol,
EditKind
editKind)> GetNamespaceSymbolEdits(
4042
using var _1 = ArrayBuilder<(ISymbol? oldSymbol, ISymbol? newSymbol,
EditKind
editKind)>.GetInstance(out var builder);
4073
builder.Add((oldSymbol: oldType, newSymbol: null,
EditKind
.Delete));
4104
builder[deletedTypeIndex] = (builder[deletedTypeIndex].oldSymbol, newType,
EditKind
.Move);
4108
builder.Add((oldSymbol: null, newSymbol: newType,
EditKind
.Insert));
4782
/// and therefore not produced by <see cref="GetSymbolEdits(
EditKind
, SyntaxNode?, SyntaxNode?, DocumentSemanticModel, DocumentSemanticModel, Match{SyntaxNode}, IReadOnlyDictionary{SyntaxNode,
EditKind
}, SymbolInfoCache, CancellationToken)"/>
5275
locationNode.Span : analyzer.GetDiagnosticSpan(GetDiagnosticNode(out var distance, cancellationToken), distance > 0 ?
EditKind
.Delete :
EditKind
.Update),
5303
? analyzer.GetDiagnosticSpan(node, (distance > 0 || kind == RudeEditKind.ChangeImplicitMainReturnType) ?
EditKind
.Delete :
EditKind
.Update)
6081
diagnostics.Add(new RudeEditDiagnostic(RudeEditKind.InsertNotSupportedByRuntime, GetDiagnosticSpan(newLambda,
EditKind
.Insert), newLambda, [GetDisplayName(newLambda,
EditKind
.Insert)]));
6089
diagnostics.Add(new RudeEditDiagnostic(RudeEditKind.InsertLocalFunctionIntoInterfaceMethod, GetDiagnosticSpan(newLambda,
EditKind
.Insert), newLambda, [GetDisplayName(newLambda,
EditKind
.Insert)]));
6434
return IsGlobalMain(symbol) ? GetDiagnosticSpan(GetSymbolDeclarationSyntax(symbol, cancellationToken),
EditKind
.Update) :
6435
symbol is IParameterSymbol && IsGlobalMain(symbol.ContainingSymbol) ? GetDiagnosticSpan(GetSymbolDeclarationSyntax(symbol.ContainingSymbol, cancellationToken),
EditKind
.Update) :
7181
internal void ReportTopLevelSyntacticRudeEdits(RudeEditDiagnosticsBuilder diagnostics, EditScript<SyntaxNode> syntacticEdits, Dictionary<SyntaxNode,
EditKind
> editMap)
Microsoft.CodeAnalysis.Features.Test.Utilities (1)
EditAndContinue\EditScriptDescription.cs (1)
67
public void VerifyEdits(params
EditKind
[] expected)
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:
Microsoft.CodeAnalysis.Workspaces.UnitTests (6)
Differencing\LongestCommonSubsequenceTests.cs (6)
50
Assert.True(edit.Kind is
EditKind
.Delete or
EditKind
.Insert or
EditKind
.Update);
53
case
EditKind
.Delete:
58
case
EditKind
.Insert:
63
case
EditKind
.Update: