Skip to content

Commit e80689f

Browse files
authored
Merge pull request dotnet#7191 from dibarbet/update_roslyn
Update Roslyn version and changelog
2 parents 7f2808b + 1df0613 commit e80689f

File tree

4 files changed

+80
-41
lines changed

4 files changed

+80
-41
lines changed

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,35 @@
44
- Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876)
55

66
# Latest
7+
* Update Roslyn to 4.11.0-3.24304.4 (PR: [#7191](https://github.com/dotnet/vscode-csharp/pull/7191))
8+
* Fix build host when only the .net 6 SDK is installed (PR: [#73818](https://github.com/dotnet/roslyn/pull/73818))
9+
* Bump Razor to 9.0.0-preview.24281.3 (PR: [#73817](https://github.com/dotnet/roslyn/pull/73817))
10+
* Fix null reference exception during shutdown (PR: [#73790](https://github.com/dotnet/roslyn/pull/73790))
11+
* Fix race causing workspace diagnostics to be stale (PR: [#73653](https://github.com/dotnet/roslyn/pull/73653))
12+
* Reduce upfront assembly loads in language server (PR: [#73566](https://github.com/dotnet/roslyn/pull/73566))
13+
* Update Debugger.Contracts to 17.11.0-beta.24274.2 (PR: [#73748](https://github.com/dotnet/roslyn/pull/73748))
14+
* Fix signature help in nested method calls (PR: [#73606](https://github.com/dotnet/roslyn/pull/73606))
15+
* Ignore drive casing when comparing paths for .editorconfig on windows platforms (PR: [#73380](https://github.com/dotnet/roslyn/pull/73380))
16+
* Remove dependency on all Roslyn assemblies from build host (PR: [#73497](https://github.com/dotnet/roslyn/pull/73497))
17+
* Various performance improvements and allocation reductions
18+
* Improve AddImport conflict detection performance (PR: [#73780](https://github.com/dotnet/roslyn/pull/73780))
19+
* Modify (Large/Source)Text.ParseLineStart to specify an initial capacity for line count (PR: [#73701](https://github.com/dotnet/roslyn/pull/73701))
20+
* Reduce exceptions in work queue (PR: [#73766](https://github.com/dotnet/roslyn/pull/73766))
21+
* Run providers in parallel when determining if we should show the lightbulb icon (PR: [#73758](https://github.com/dotnet/roslyn/pull/73758))
22+
* Change the DocumentationCommentId to use a PooledStringBuilder (PR: [#73737](https://github.com/dotnet/roslyn/pull/73737))
23+
* Avoid unnecessary array+linq allocs in common case (PR: [#73727](https://github.com/dotnet/roslyn/pull/73727))
24+
* Improve performance in async / await keyword highlighting (PR: [#73721](https://github.com/dotnet/roslyn/pull/73721))
25+
* Avoid unnecessary tree walk when hitting non-relevant directives (PR: [#73720](https://github.com/dotnet/roslyn/pull/73720))
26+
* Utilize ImmutableCollectionsMarshal to get ROS for XxHash128.Hash call (PR: [#73692](https://github.com/dotnet/roslyn/pull/73692))
27+
* Use IAsyncEnumerable for Find References (PR: [#73613](https://github.com/dotnet/roslyn/pull/73613))
28+
* Compute classifications for FAR results in parallel (PR: [#73599](https://github.com/dotnet/roslyn/pull/73599))
29+
* Switch to a List as the backing store for the FAR window from an ImmutableList (PR: [#73589](https://github.com/dotnet/roslyn/pull/73589))
30+
* Switch FAR data from an immutable dictionary to an immutable array (PR: [#73587](https://github.com/dotnet/roslyn/pull/73587))
31+
* More classification perf fixes. (PR: [#73535](https://github.com/dotnet/roslyn/pull/73535))
32+
* Avoid unnecessary allocations while finding token matches in a file (PR: [#73547](https://github.com/dotnet/roslyn/pull/73547))
33+
* Lower the amount of time FAR spends in classification by 4% (PR: [#73533](https://github.com/dotnet/roslyn/pull/73533))
34+
35+
# 2.33.13
736
* Update xamlTools to 17.11.34931.156 (PR: [#7195](https://github.com/dotnet/vscode-csharp/pull/7195))
837
* Support XAML Hot Reload on iOS physical devices
938
* Encrypt Hot Reload connection

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
}
3838
},
3939
"defaults": {
40-
"roslyn": "4.11.0-2.24267.3",
40+
"roslyn": "4.11.0-3.24304.4",
4141
"omniSharp": "1.39.11",
4242
"razor": "7.0.0-preview.24266.1",
4343
"razorOmnisharp": "7.0.0-preview.23363.1",

test/integrationTests/documentDiagnostics.integration.test.ts

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,29 +32,34 @@ describe(`[${testAssetWorkspace.description}] Test diagnostics`, function () {
3232
});
3333

3434
await waitForExpectedFileDiagnostics((diagnostics) => {
35-
expect(diagnostics).toHaveLength(4);
35+
expect(diagnostics).toHaveLength(5);
3636

3737
expect(getCode(diagnostics[0])).toBe('IDE0005');
3838
expect(diagnostics[0].message).toBe('Using directive is unnecessary.');
3939
expect(diagnostics[0].range).toEqual(new vscode.Range(0, 0, 0, 16));
4040
expect(diagnostics[0].severity).toBe(vscode.DiagnosticSeverity.Hint);
4141

42-
expect(getCode(diagnostics[1])).toBe('CA1822');
43-
expect(diagnostics[1].message).toBe(
44-
"Member 'FooBarBar' does not access instance data and can be marked as static"
45-
);
46-
expect(diagnostics[1].range).toEqual(new vscode.Range(6, 20, 6, 29));
42+
expect(getCode(diagnostics[1])).toBe('IDE0130');
43+
expect(diagnostics[1].message).toBe('Namespace "Foo" does not match folder structure, expected "app"');
44+
expect(diagnostics[1].range).toEqual(new vscode.Range(2, 10, 2, 13));
4745
expect(diagnostics[1].severity).toBe(vscode.DiagnosticSeverity.Hint);
4846

49-
expect(getCode(diagnostics[2])).toBe('CS0219');
50-
expect(diagnostics[2].message).toBe("The variable 'notUsed' is assigned but its value is never used");
51-
expect(diagnostics[2].range).toEqual(new vscode.Range(8, 16, 8, 23));
52-
expect(diagnostics[2].severity).toBe(vscode.DiagnosticSeverity.Warning);
47+
expect(getCode(diagnostics[2])).toBe('CA1822');
48+
expect(diagnostics[2].message).toBe(
49+
"Member 'FooBarBar' does not access instance data and can be marked as static"
50+
);
51+
expect(diagnostics[2].range).toEqual(new vscode.Range(6, 20, 6, 29));
52+
expect(diagnostics[2].severity).toBe(vscode.DiagnosticSeverity.Hint);
5353

54-
expect(getCode(diagnostics[3])).toBe('IDE0059');
55-
expect(diagnostics[3].message).toBe("Unnecessary assignment of a value to 'notUsed'");
54+
expect(getCode(diagnostics[3])).toBe('CS0219');
55+
expect(diagnostics[3].message).toBe("The variable 'notUsed' is assigned but its value is never used");
5656
expect(diagnostics[3].range).toEqual(new vscode.Range(8, 16, 8, 23));
57-
expect(diagnostics[3].severity).toBe(vscode.DiagnosticSeverity.Hint);
57+
expect(diagnostics[3].severity).toBe(vscode.DiagnosticSeverity.Warning);
58+
59+
expect(getCode(diagnostics[4])).toBe('IDE0059');
60+
expect(diagnostics[4].message).toBe("Unnecessary assignment of a value to 'notUsed'");
61+
expect(diagnostics[4].range).toEqual(new vscode.Range(8, 16, 8, 23));
62+
expect(diagnostics[4].severity).toBe(vscode.DiagnosticSeverity.Hint);
5863
}, file);
5964
});
6065

@@ -65,12 +70,12 @@ describe(`[${testAssetWorkspace.description}] Test diagnostics`, function () {
6570
});
6671

6772
await waitForExpectedFileDiagnostics((diagnostics) => {
68-
expect(diagnostics).toHaveLength(4);
73+
expect(diagnostics).toHaveLength(5);
6974

70-
expect(getCode(diagnostics[2])).toBe('CS0219');
71-
expect(diagnostics[2].message).toBe("The variable 'notUsed' is assigned but its value is never used");
72-
expect(diagnostics[2].range).toEqual(new vscode.Range(8, 16, 8, 23));
73-
expect(diagnostics[2].severity).toBe(vscode.DiagnosticSeverity.Warning);
75+
expect(getCode(diagnostics[3])).toBe('CS0219');
76+
expect(diagnostics[3].message).toBe("The variable 'notUsed' is assigned but its value is never used");
77+
expect(diagnostics[3].range).toEqual(new vscode.Range(8, 16, 8, 23));
78+
expect(diagnostics[3].severity).toBe(vscode.DiagnosticSeverity.Warning);
7479
}, file);
7580
});
7681

@@ -83,7 +88,7 @@ describe(`[${testAssetWorkspace.description}] Test diagnostics`, function () {
8388
await integrationHelpers.restartLanguageServer();
8489

8590
await waitForExpectedFileDiagnostics((diagnostics) => {
86-
expect(diagnostics).toHaveLength(3);
91+
expect(diagnostics).toHaveLength(4);
8792

8893
expect(diagnostics.some((d) => getCode(d).startsWith('CS'))).toBe(false);
8994
}, file);
@@ -96,24 +101,29 @@ describe(`[${testAssetWorkspace.description}] Test diagnostics`, function () {
96101
});
97102

98103
await waitForExpectedFileDiagnostics((diagnostics) => {
99-
expect(diagnostics).toHaveLength(4);
104+
expect(diagnostics).toHaveLength(5);
100105

101106
expect(getCode(diagnostics[0])).toBe('IDE0005');
102107
expect(diagnostics[0].message).toBe('Using directive is unnecessary.');
103108
expect(diagnostics[0].range).toEqual(new vscode.Range(0, 0, 0, 16));
104109
expect(diagnostics[0].severity).toBe(vscode.DiagnosticSeverity.Hint);
105110

106-
expect(getCode(diagnostics[1])).toBe('CA1822');
107-
expect(diagnostics[1].message).toBe(
111+
expect(getCode(diagnostics[1])).toBe('IDE0130');
112+
expect(diagnostics[1].message).toBe('Namespace "Foo" does not match folder structure, expected "app"');
113+
expect(diagnostics[1].range).toEqual(new vscode.Range(2, 10, 2, 13));
114+
expect(diagnostics[1].severity).toBe(vscode.DiagnosticSeverity.Hint);
115+
116+
expect(getCode(diagnostics[2])).toBe('CA1822');
117+
expect(diagnostics[2].message).toBe(
108118
"Member 'FooBarBar' does not access instance data and can be marked as static"
109119
);
110-
expect(diagnostics[1].range).toEqual(new vscode.Range(6, 20, 6, 29));
111-
expect(diagnostics[1].severity).toBe(vscode.DiagnosticSeverity.Hint);
120+
expect(diagnostics[2].range).toEqual(new vscode.Range(6, 20, 6, 29));
121+
expect(diagnostics[2].severity).toBe(vscode.DiagnosticSeverity.Hint);
112122

113-
expect(getCode(diagnostics[3])).toBe('IDE0059');
114-
expect(diagnostics[3].message).toBe("Unnecessary assignment of a value to 'notUsed'");
115-
expect(diagnostics[3].range).toEqual(new vscode.Range(8, 16, 8, 23));
116-
expect(diagnostics[3].severity).toBe(vscode.DiagnosticSeverity.Hint);
123+
expect(getCode(diagnostics[4])).toBe('IDE0059');
124+
expect(diagnostics[4].message).toBe("Unnecessary assignment of a value to 'notUsed'");
125+
expect(diagnostics[4].range).toEqual(new vscode.Range(8, 16, 8, 23));
126+
expect(diagnostics[4].severity).toBe(vscode.DiagnosticSeverity.Hint);
117127
}, file);
118128
});
119129

test/integrationTests/workspaceDiagnostics.integration.test.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,24 @@ describe(`[${testAssetWorkspace.description}] Test diagnostics`, function () {
3535
.filter(([uri, _]) => uri.fsPath.endsWith('completion.cs'))
3636
.flatMap(([_, diagnostics]) => diagnostics);
3737

38-
expect(diagnosticsInDiagnosticsCs).toHaveLength(4);
39-
expect(diagnosticsInCompletionCs).toHaveLength(4);
38+
expect(diagnosticsInDiagnosticsCs).toHaveLength(5);
39+
expect(diagnosticsInCompletionCs).toHaveLength(5);
4040

4141
// Compiler diagnostic in diagnostics.cs
42-
expect(getCode(diagnosticsInDiagnosticsCs[2])).toBe('CS0219');
43-
expect(diagnosticsInDiagnosticsCs[2].message).toBe(
42+
expect(getCode(diagnosticsInDiagnosticsCs[3])).toBe('CS0219');
43+
expect(diagnosticsInDiagnosticsCs[3].message).toBe(
4444
"The variable 'notUsed' is assigned but its value is never used"
4545
);
46-
expect(diagnosticsInDiagnosticsCs[2].range).toEqual(new vscode.Range(8, 16, 8, 23));
47-
expect(diagnosticsInDiagnosticsCs[2].severity).toBe(vscode.DiagnosticSeverity.Warning);
46+
expect(diagnosticsInDiagnosticsCs[3].range).toEqual(new vscode.Range(8, 16, 8, 23));
47+
expect(diagnosticsInDiagnosticsCs[3].severity).toBe(vscode.DiagnosticSeverity.Warning);
4848

4949
// Analyzer diagnostic in diagnostics.cs
50-
expect(getCode(diagnosticsInDiagnosticsCs[1])).toBe('CA1822');
51-
expect(diagnosticsInDiagnosticsCs[1].message).toBe(
50+
expect(getCode(diagnosticsInDiagnosticsCs[2])).toBe('CA1822');
51+
expect(diagnosticsInDiagnosticsCs[2].message).toBe(
5252
"Member 'FooBarBar' does not access instance data and can be marked as static"
5353
);
54-
expect(diagnosticsInDiagnosticsCs[1].range).toEqual(new vscode.Range(6, 20, 6, 29));
55-
expect(diagnosticsInDiagnosticsCs[1].severity).toBe(vscode.DiagnosticSeverity.Hint);
54+
expect(diagnosticsInDiagnosticsCs[2].range).toEqual(new vscode.Range(6, 20, 6, 29));
55+
expect(diagnosticsInDiagnosticsCs[2].severity).toBe(vscode.DiagnosticSeverity.Hint);
5656

5757
// Analyzer diagnostic in completion.cs
5858
expect(getCode(diagnosticsInCompletionCs[0])).toBe('IDE0005');
@@ -75,7 +75,7 @@ describe(`[${testAssetWorkspace.description}] Test diagnostics`, function () {
7575
.filter(([uri, _]) => uri.fsPath.endsWith('diagnostics.cs'))
7676
.flatMap(([_, diagnostics]) => diagnostics);
7777

78-
expect(diagnosticsInDiagnosticsCs).toHaveLength(3);
78+
expect(diagnosticsInDiagnosticsCs).toHaveLength(4);
7979
expect(diagnosticsInDiagnosticsCs.some((d) => getCode(d).startsWith('CS'))).toBe(false);
8080
});
8181
});
@@ -93,7 +93,7 @@ describe(`[${testAssetWorkspace.description}] Test diagnostics`, function () {
9393
.filter(([uri, _]) => uri.fsPath.endsWith('diagnostics.cs'))
9494
.flatMap(([_, diagnostics]) => diagnostics);
9595

96-
expect(diagnosticsInDiagnosticsCs).toHaveLength(3);
96+
expect(diagnosticsInDiagnosticsCs).toHaveLength(4);
9797
expect(diagnosticsInDiagnosticsCs.some((d) => getCode(d).startsWith('CS'))).toBe(false);
9898
});
9999
});

0 commit comments

Comments
 (0)