Skip to content

Commit 32adda2

Browse files
committed
Add ChecksumAlgorithm to DocumentAttributes and ProjectAttributes
1 parent 8e8ddb0 commit 32adda2

File tree

145 files changed

+1428
-847
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

145 files changed

+1428
-847
lines changed

eng/config/BannedSymbols.txt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ M:Microsoft.CodeAnalysis.CodeFixes.FixAllContext.#ctor(Microsoft.CodeAnalysis.Do
1212
M:Microsoft.CodeAnalysis.CodeFixes.FixAllContext.#ctor(Microsoft.CodeAnalysis.Document,System.Nullable{Microsoft.CodeAnalysis.Text.TextSpan},Microsoft.CodeAnalysis.CodeFixes.CodeFixProvider,Microsoft.CodeAnalysis.CodeFixes.FixAllScope,System.String,System.Collections.Generic.IEnumerable{System.String},Microsoft.CodeAnalysis.CodeFixes.FixAllContext.DiagnosticProvider,System.Threading.CancellationToken); Use internal overload instead
1313
M:Microsoft.CodeAnalysis.CodeFixes.FixAllContext.#ctor(Microsoft.CodeAnalysis.Project,Microsoft.CodeAnalysis.CodeFixes.CodeFixProvider,Microsoft.CodeAnalysis.CodeFixes.FixAllScope,System.String,System.Collections.Generic.IEnumerable{System.String},Microsoft.CodeAnalysis.CodeFixes.FixAllContext.DiagnosticProvider,System.Threading.CancellationToken); Use internal overload instead
1414
M:Microsoft.CodeAnalysis.Document.GetOptionsAsync(System.Threading.CancellationToken); Use Document.GetAnalyzerConfigOptionsAsync instead
15+
M:Microsoft.CodeAnalysis.DocumentInfo.Create(Microsoft.CodeAnalysis.DocumentId,System.String,System.Collections.Generic.IEnumerable{System.String},Microsoft.CodeAnalysis.SourceCodeKind,Microsoft.CodeAnalysis.TextLoader,System.String,System.Boolean); Use overload with checksum algorithm
1516
T:Microsoft.CodeAnalysis.Options.DocumentOptionSet; Use AnalyzerConfigOptions instead
1617
M:Microsoft.VisualStudio.Shell.ServiceExtensions.GetService``2(System.IServiceProvider); Use RoslynServiceExtensions instead. This extension internally relies on ThreadHelper, which is incompatible with testing.
1718
M:Microsoft.VisualStudio.Shell.ServiceExtensions.GetService``2(System.IServiceProvider,System.Boolean); Use RoslynServiceExtensions instead. This extension internally relies on ThreadHelper, which is incompatible with testing
@@ -34,4 +35,15 @@ M:Microsoft.CodeAnalysis.Simplification.Simplifier.ReduceAsync(Microsoft.CodeAna
3435
M:Microsoft.CodeAnalysis.Simplification.Simplifier.ReduceAsync(Microsoft.CodeAnalysis.Document,Microsoft.CodeAnalysis.SyntaxAnnotation,Microsoft.CodeAnalysis.Options.OptionSet,System.Threading.CancellationToken); Use overload that takes SimplifierOptions
3536
M:Microsoft.CodeAnalysis.Simplification.Simplifier.ReduceAsync(Microsoft.CodeAnalysis.Document,Microsoft.CodeAnalysis.Text.TextSpan,Microsoft.CodeAnalysis.Options.OptionSet,System.Threading.CancellationToken); Use overload that takes SimplifierOptions
3637
M:Microsoft.CodeAnalysis.Simplification.Simplifier.ReduceAsync(Microsoft.CodeAnalysis.Document,System.Collections.Generic.IEnumerable{Microsoft.CodeAnalysis.Text.TextSpan},Microsoft.CodeAnalysis.Options.OptionSet,System.Threading.CancellationToken); Use overload that takes SimplifierOptions
37-
M:Microsoft.CodeAnalysis.Editing.SyntaxEditor.#ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Host.HostWorkspaceServices); Use overload that takes HostSolutionServices instead
38+
M:Microsoft.CodeAnalysis.Editing.SyntaxEditor.#ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Host.HostWorkspaceServices); Use overload that takes HostSolutionServices instead
39+
M:Microsoft.CodeAnalysis.FileTextLoader.#ctor(System.String,System.Text.Encoding); Use overload with checksum algorithm
40+
M:Microsoft.CodeAnalysis.CSharp.SyntaxFactory.SyntaxTree(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding); Use overload with checksum algorithm
41+
M:Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(System.String,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding,System.Threading.CancellationToken)
42+
M:Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText(System.String,Microsoft.CodeAnalysis.CSharp.CSharpParseOptions,System.String,System.Text.Encoding,System.Threading.CancellationToken); Use API that takes SourceText
43+
M:Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText(System.String,Microsoft.CodeAnalysis.CSharp.CSharpParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary{System.String,Microsoft.CodeAnalysis.ReportDiagnostic},System.Nullable{System.Boolean},System.Threading.CancellationToken); Use API that takes SourceText
44+
M:Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.SyntaxTree(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding); Use overload with checksum algorithm
45+
M:Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.ParseSyntaxTree(System.String,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding,System.Threading.CancellationToken); Use overload with SourceText
46+
M:Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory.ParseSyntaxTree(System.String,Microsoft.CodeAnalysis.ParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary{System.String,Microsoft.CodeAnalysis.ReportDiagnostic},System.Threading.CancellationToken); Use overload with SourceText
47+
M:Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxTree.CreateWithoutClone(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode); Use VisualBasicSyntaxTree.Create
48+
M:Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxTree.Create(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary{System.String,Microsoft.CodeAnalysis.ReportDiagnostic}); Use overload with checksum algorithm
49+
M:Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxTree.ParseText(System.String,Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary{System.String,Microsoft.CodeAnalysis.ReportDiagnostic},System.Threading.CancellationToken); Use overload with SourceText

eng/targets/Imports.targets

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@
175175
</ItemGroup>
176176

177177
<ItemGroup>
178-
<!-- Include BannedSymbols covering all projects -->
179-
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\config\BannedSymbols.txt" />
178+
<!-- Include BannedSymbols covering all product projects -->
179+
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\config\BannedSymbols.txt" Condition="'$(IsTestProject)' == 'false'" />
180180
</ItemGroup>
181181

182182
<ItemGroup>

src/Compilers/CSharp/Portable/PublicAPI.Unshipped.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ Microsoft.CodeAnalysis.CSharp.SyntaxKind.RequiredKeyword = 8447 -> Microsoft.Cod
99
Microsoft.CodeAnalysis.CSharp.SyntaxKind.ScopedKeyword = 8448 -> Microsoft.CodeAnalysis.CSharp.SyntaxKind
1010
Microsoft.CodeAnalysis.CSharp.SyntaxKind.FileKeyword = 8449 -> Microsoft.CodeAnalysis.CSharp.SyntaxKind
1111
Microsoft.CodeAnalysis.CSharp.SyntaxKind.SingleLineRawStringLiteralToken = 8518 -> Microsoft.CodeAnalysis.CSharp.SyntaxKind
12+
static Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.Create(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode! root, Microsoft.CodeAnalysis.CSharp.CSharpParseOptions? options = null, string? path = "", System.Text.Encoding? encoding = null, Microsoft.CodeAnalysis.Text.SourceHashAlgorithm checksumAlgorithm = Microsoft.CodeAnalysis.Text.SourceHashAlgorithm.Sha1) -> Microsoft.CodeAnalysis.SyntaxTree!
13+
static Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.Create(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode! root, Microsoft.CodeAnalysis.CSharp.CSharpParseOptions? options, string? path, System.Text.Encoding? encoding) -> Microsoft.CodeAnalysis.SyntaxTree!
14+
*REMOVED*static Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.Create(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode! root, Microsoft.CodeAnalysis.CSharp.CSharpParseOptions? options = null, string? path = "", System.Text.Encoding? encoding = null) -> Microsoft.CodeAnalysis.SyntaxTree!
1215
static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ConstructorDeclaration(Microsoft.CodeAnalysis.SyntaxList<Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax!> attributeLists, Microsoft.CodeAnalysis.SyntaxTokenList modifiers, Microsoft.CodeAnalysis.SyntaxToken identifier, Microsoft.CodeAnalysis.CSharp.Syntax.ParameterListSyntax! parameterList, Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorInitializerSyntax? initializer, Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax! body) -> Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax!
1316
*REMOVED*static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ConstructorDeclaration(Microsoft.CodeAnalysis.SyntaxList<Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax!> attributeLists, Microsoft.CodeAnalysis.SyntaxTokenList modifiers, Microsoft.CodeAnalysis.SyntaxToken identifier, Microsoft.CodeAnalysis.CSharp.Syntax.ParameterListSyntax! parameterList, Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorInitializerSyntax! initializer, Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax! body) -> Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax!
1417
static Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ConstructorDeclaration(Microsoft.CodeAnalysis.SyntaxList<Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax!> attributeLists, Microsoft.CodeAnalysis.SyntaxTokenList modifiers, Microsoft.CodeAnalysis.SyntaxToken identifier, Microsoft.CodeAnalysis.CSharp.Syntax.ParameterListSyntax! parameterList, Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorInitializerSyntax? initializer, Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax? body, Microsoft.CodeAnalysis.SyntaxToken semicolonToken) -> Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax!

src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxTree.Dummy.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ public partial class CSharpSyntaxTree
1616
{
1717
internal sealed class DummySyntaxTree : CSharpSyntaxTree
1818
{
19+
private const SourceHashAlgorithm ChecksumAlgorithm = SourceHashAlgorithm.Sha256;
20+
1921
private readonly CompilationUnitSyntax _node;
2022

2123
public DummySyntaxTree()
@@ -30,12 +32,12 @@ public override string ToString()
3032

3133
public override SourceText GetText(CancellationToken cancellationToken)
3234
{
33-
return SourceText.From(string.Empty, Encoding.UTF8);
35+
return SourceText.From(string.Empty, Encoding, ChecksumAlgorithm);
3436
}
3537

3638
public override bool TryGetText(out SourceText text)
3739
{
38-
text = SourceText.From(string.Empty, Encoding.UTF8);
40+
text = SourceText.From(string.Empty, Encoding, ChecksumAlgorithm);
3941
return true;
4042
}
4143

@@ -90,14 +92,10 @@ public override bool HasCompilationUnitRoot
9092
}
9193

9294
public override SyntaxTree WithRootAndOptions(SyntaxNode root, ParseOptions options)
93-
{
94-
return SyntaxFactory.SyntaxTree(root, options: options, path: FilePath, encoding: null);
95-
}
95+
=> Create((CSharpSyntaxNode)root, (CSharpParseOptions)options, FilePath, Encoding, ChecksumAlgorithm);
9696

9797
public override SyntaxTree WithFilePath(string path)
98-
{
99-
return SyntaxFactory.SyntaxTree(_node, options: this.Options, path: path, encoding: null);
100-
}
98+
=> Create(_node, Options, path, Encoding, ChecksumAlgorithm);
10199
}
102100
}
103101
}

src/Compilers/CSharp/Portable/Syntax/CSharpSyntaxTree.cs

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -304,21 +304,11 @@ private void BuildPreprocessorStateChangeMap()
304304

305305
#region Factories
306306

307-
// The overload that has more parameters is itself obsolete, as an intentional break to allow future
308-
// expansion
309-
#pragma warning disable RS0027 // Public API with optional parameter(s) should have the most parameters amongst its public overloads.
310-
311307
/// <summary>
312308
/// Creates a new syntax tree from a syntax node.
313309
/// </summary>
314-
public static SyntaxTree Create(CSharpSyntaxNode root, CSharpParseOptions? options = null, string? path = "", Encoding? encoding = null)
315-
{
316-
#pragma warning disable CS0618 // We are calling into the obsolete member as that's the one that still does the real work
317-
return Create(root, options, path, encoding, diagnosticOptions: null);
318-
#pragma warning restore CS0618
319-
}
320-
321-
#pragma warning restore RS0027 // Public API with optional parameter(s) should have the most parameters amongst its public overloads.
310+
public static SyntaxTree Create(CSharpSyntaxNode root, CSharpParseOptions? options, string? path, Encoding? encoding)
311+
=> CreateImpl(root, diagnosticOptions: null, options, path, encoding, SourceHashAlgorithm.Sha1);
322312

323313
/// <summary>
324314
/// Creates a new syntax tree from a syntax node.
@@ -332,15 +322,20 @@ public static SyntaxTree Create(
332322
CSharpParseOptions? options,
333323
string? path,
334324
Encoding? encoding,
335-
// obsolete parameter -- unused
336325
ImmutableDictionary<string, ReportDiagnostic>? diagnosticOptions,
337-
// obsolete parameter -- unused
338-
bool? isGeneratedCode)
326+
bool? isGeneratedCode) // unused
327+
=> CreateImpl(root, diagnosticOptions, options, path, encoding, SourceHashAlgorithm.Sha1);
328+
329+
/// <summary>
330+
/// Creates a new syntax tree from a syntax node.
331+
/// </summary>
332+
public static SyntaxTree Create(CSharpSyntaxNode root, CSharpParseOptions? options = null, string? path = "", Encoding? encoding = null, SourceHashAlgorithm checksumAlgorithm = SourceHashAlgorithm.Sha1)
333+
=> CreateImpl(root, diagnosticOptions: null, options, path, encoding, checksumAlgorithm);
334+
335+
private static SyntaxTree CreateImpl(CSharpSyntaxNode root, ImmutableDictionary<string, ReportDiagnostic>? diagnosticOptions, CSharpParseOptions? options, string? path, Encoding? encoding, SourceHashAlgorithm checksumAlgorithm)
339336
{
340337
if (root == null)
341-
{
342338
throw new ArgumentNullException(nameof(root));
343-
}
344339

345340
var directives = root.Kind() == SyntaxKind.CompilationUnit ?
346341
((CompilationUnitSyntax)root).GetConditionalDirectivesStack() :
@@ -349,7 +344,7 @@ public static SyntaxTree Create(
349344
return new ParsedSyntaxTree(
350345
textOpt: null,
351346
encodingOpt: encoding,
352-
checksumAlgorithm: SourceHashAlgorithm.Sha1,
347+
checksumAlgorithm: checksumAlgorithm,
353348
path: path,
354349
options: options ?? CSharpParseOptions.Default,
355350
root: root,
@@ -442,7 +437,7 @@ public static SyntaxTree ParseText(
442437
bool? isGeneratedCode,
443438
CancellationToken cancellationToken)
444439
{
445-
return ParseText(SourceText.From(text, encoding), options, path, diagnosticOptions, isGeneratedCode, cancellationToken);
440+
return ParseText(SourceText.From(text, encoding, SourceHashAlgorithm.Sha1), options, path, diagnosticOptions, isGeneratedCode, cancellationToken);
446441
}
447442

448443
// The overload that has more parameters is itself obsolete, as an intentional break to allow future
@@ -919,7 +914,7 @@ public static SyntaxTree ParseText(
919914
Encoding? encoding,
920915
ImmutableDictionary<string, ReportDiagnostic>? diagnosticOptions,
921916
CancellationToken cancellationToken)
922-
=> ParseText(text, options, path, encoding, diagnosticOptions, isGeneratedCode: null, cancellationToken);
917+
=> ParseText(SourceText.From(text, encoding, SourceHashAlgorithm.Sha1), options, path, diagnosticOptions, isGeneratedCode: null, cancellationToken);
923918

924919
// 3.3 BACK COMPAT OVERLOAD -- DO NOT MODIFY
925920
[EditorBrowsable(EditorBrowsableState.Never)]

src/Compilers/CSharp/Portable/Syntax/SyntaxFactory.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1545,12 +1545,12 @@ public static IdentifierNameSyntax IdentifierName(string name)
15451545
/// </summary>
15461546
public static SyntaxTree SyntaxTree(SyntaxNode root, ParseOptions? options = null, string path = "", Encoding? encoding = null)
15471547
{
1548-
return CSharpSyntaxTree.Create((CSharpSyntaxNode)root, (CSharpParseOptions?)options, path, encoding);
1548+
return CSharpSyntaxTree.Create((CSharpSyntaxNode)root, (CSharpParseOptions?)options, path, encoding, SourceHashAlgorithm.Sha1);
15491549
}
15501550

15511551
#pragma warning disable RS0026 // Do not add multiple public overloads with optional parameters
15521552
#pragma warning disable RS0027 // Public API with optional parameter(s) should have the most parameters amongst its public overloads.
1553-
1553+
#pragma warning disable RS0030 // Do not used banned APIs
15541554
/// <inheritdoc cref="CSharpSyntaxTree.ParseText(string, CSharpParseOptions?, string, Encoding?, CancellationToken)"/>
15551555
public static SyntaxTree ParseSyntaxTree(
15561556
string text,
@@ -1561,6 +1561,7 @@ public static SyntaxTree ParseSyntaxTree(
15611561
{
15621562
return CSharpSyntaxTree.ParseText(text, (CSharpParseOptions?)options, path, encoding, cancellationToken);
15631563
}
1564+
#pragma warning restore RS0030 // Do not used banned APIs
15641565

15651566
/// <inheritdoc cref="CSharpSyntaxTree.ParseText(SourceText, CSharpParseOptions?, string, CancellationToken)"/>
15661567
public static SyntaxTree ParseSyntaxTree(

src/Compilers/CSharp/Test/Syntax/Syntax/SyntaxFactoryTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44

55
#nullable disable
6+
#pragma warning disable RS0030 // Do not used banned APIs
67

78
using System;
89
using System.Globalization;

src/Compilers/CSharp/Test/Syntax/Syntax/SyntaxTreeTests.cs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
// See the LICENSE file in the project root for more information.
44

55
#nullable disable
6+
#pragma warning disable RS0030 // Do not used banned APIs
7+
#pragma warning disable CS0618 // Obsolete APIs
68

79
using System.Collections.Immutable;
810
using System.Text;
@@ -21,18 +23,26 @@ public class SyntaxTreeTests : ParsingTests
2123
{
2224
public SyntaxTreeTests(ITestOutputHelper output) : base(output) { }
2325

24-
// Diagnostic options on syntax trees are now obsolete
25-
#pragma warning disable CS0618
2626
[Fact]
27-
public void CreateTreeWithDiagnostics()
27+
public void Create()
28+
{
29+
var root = SyntaxFactory.ParseCompilationUnit("");
30+
31+
var tree = CSharpSyntaxTree.Create(root);
32+
Assert.Equal(SourceHashAlgorithm.Sha1, tree.GetText().ChecksumAlgorithm);
33+
34+
tree = CSharpSyntaxTree.Create(root, checksumAlgorithm: SourceHashAlgorithm.Sha256);
35+
Assert.Equal(SourceHashAlgorithm.Sha256, tree.GetText().ChecksumAlgorithm);
36+
}
37+
38+
[Fact]
39+
public void Create_WithDiagnosticOptions()
2840
{
2941
var options = CreateImmutableDictionary(("CS0078", ReportDiagnostic.Suppress));
30-
var tree = CSharpSyntaxTree.Create(SyntaxFactory.ParseCompilationUnit(""),
31-
options: null,
32-
path: "",
33-
encoding: null,
34-
diagnosticOptions: options);
42+
var tree = CSharpSyntaxTree.Create(SyntaxFactory.ParseCompilationUnit(""), options: null, path: null, encoding: null, diagnosticOptions: options);
43+
3544
Assert.Same(options, tree.DiagnosticOptions);
45+
Assert.Equal(SourceHashAlgorithm.Sha1, tree.GetText().ChecksumAlgorithm);
3646
}
3747

3848
[Fact]
@@ -230,7 +240,7 @@ public void WithFilePath_Null()
230240
oldTree = SyntaxFactory.ParseSyntaxTree("", path: "old.cs");
231241
Assert.Equal(string.Empty, oldTree.WithFilePath(null).FilePath);
232242
Assert.Equal(string.Empty, SyntaxFactory.ParseSyntaxTree("", path: null).FilePath);
233-
Assert.Equal(string.Empty, CSharpSyntaxTree.Create((CSharpSyntaxNode)oldTree.GetRoot(), path: null).FilePath);
243+
Assert.Equal(string.Empty, CSharpSyntaxTree.Create((CSharpSyntaxNode)oldTree.GetRoot(), checksumAlgorithm: SourceHashAlgorithm.Sha256).FilePath);
234244
}
235245

236246
[Fact]

0 commit comments

Comments
 (0)