Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge 'main' into features/FirstClassSpan #74406

Merged
merged 528 commits into from
Jul 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
528 commits
Select commit Hold shift + click to select a range
f4fada1
Syntax formatting options (#74223)
tmat Jul 8, 2024
21fd45b
Improve parser recovery around nullable types in patterns (#72805)
DoctorKrolic Jul 8, 2024
5704d85
Fix msbuild issue
CyrusNajmabadi Jul 8, 2024
c0c1730
PR feedback. Simplify CanHaveOverloadResolutionPriority significantly…
333fred Jul 8, 2024
a873d9b
Remove fallback options from IdeAnalyzerOptions (#74235)
tmat Jul 8, 2024
7cc4ff4
Update Directory.Build.rsp
arunchndr Jul 8, 2024
d84c51c
Merge pull request #74293 from CyrusNajmabadi/fixMSBuildIssue
arunchndr Jul 8, 2024
0971b49
Allow Document.FilePath to be set to null (#74290)
tmat Jul 8, 2024
26240cf
Merge pull request #74263 from sharwell/outline-style-port
arunchndr Jul 8, 2024
e8a490a
Merge remote-tracking branch 'upstream/main' into RemoteSTJServices
davidwengier Jul 9, 2024
296e94e
Revert "Remove semantic model keep-alive code in completion (#73844)"
JoeRobich Jul 9, 2024
7866265
Consolidate test Span sources (#74281)
jjonescz Jul 9, 2024
2e87378
Adjust lowering of a string interpolation in an expression lambda to …
AlekseyTs Jul 9, 2024
b3a18bb
Avoid using constants for large string literals (#74305)
jjonescz Jul 9, 2024
5c2d76c
Disable BuildWithNetFrameworkHostedCompiler (#74299)
jjonescz Jul 9, 2024
90fc676
Merge pull request #74291 from dotnet/merges/release/dev17.11-to-main
dotnet-bot Jul 9, 2024
fdaf58d
Move determination of language for an LSP request into the serialized…
dibarbet Jul 9, 2024
e833d16
More tests from test plan review
333fred Jul 9, 2024
730aea7
Merge remote-tracking branch 'upstream/main' into feature/overload-re…
333fred Jul 9, 2024
2e4c254
Merge branch 'main' into vs-signing
CyrusNajmabadi Jul 9, 2024
787b1f8
Merge branch 'main' into vs-signing
CyrusNajmabadi Jul 9, 2024
f3c6c98
Update LangVersion test after merge with main, address final prototypes.
333fred Jul 9, 2024
3527d45
Merge remote-tracking branch 'upstream/main' into fix_lsp_language_2
dibarbet Jul 9, 2024
336236d
Latest round of PR feedback and additional testing.
333fred Jul 9, 2024
e274a3d
Merge branch 'main' into vs-signing
jjonescz Jul 9, 2024
b2cd0f5
Fix UseNullPropagationCodeFixProvider for parenthesized property access
Jul 9, 2024
1f4d6a0
Merge branch 'vs-signing' of https://github.com/jjonescz/roslyn into …
CyrusNajmabadi Jul 9, 2024
a388190
Merge pull request #74316 from Orachor/null-propagation
CyrusNajmabadi Jul 9, 2024
6ceee07
Remove fallbacks (#74041)
tmat Jul 9, 2024
8b9f855
Review feedback
dibarbet Jul 9, 2024
38cce47
Style warnings
dibarbet Jul 9, 2024
235d31b
fix
dibarbet Jul 9, 2024
279dd0c
In progress
CyrusNajmabadi Jul 9, 2024
bbec959
Renames
CyrusNajmabadi Jul 9, 2024
102e366
Move off of code action itself
CyrusNajmabadi Jul 9, 2024
deb025c
In progress
CyrusNajmabadi Jul 9, 2024
3e0a770
In progress
CyrusNajmabadi Jul 9, 2024
ee1ef9e
Fix equivalence key
CyrusNajmabadi Jul 9, 2024
1cba1e8
Final pieces of feedback from Julien
333fred Jul 9, 2024
099a4a8
Merge pull request #74318 from dotnet/merges/release/dev17.11-to-main
dotnet-bot Jul 9, 2024
ae1569e
Add OverloadResolutionPriorityAttribute to the compiler test plan.
333fred Jul 9, 2024
d46b524
Remove asserts that can be hit in rare bad metadata cases.
333fred Jul 9, 2024
2077862
Merge pull request #74302 from dotnet/dev/jorobich/revert-completion-…
JoeRobich Jul 10, 2024
50112d3
Beef up a cycle test and address a race condition. We were binding ob…
333fred Jul 10, 2024
ecd4892
Improve wording in Roslyn-Overview.md (#74059)
GiovanniBraconi Jul 10, 2024
a0d6cb4
PR feedback from Chuck
333fred Jul 10, 2024
6d1db01
Remove fallbacks (2) (#74319)
tmat Jul 10, 2024
7e28266
Merge pull request #74300 from dibarbet/fix_lsp_language_2
dibarbet Jul 10, 2024
8e69275
Avoid more large string constant fields (#74307)
jjonescz Jul 10, 2024
28f0ccf
Fix modification of readonly locals through ref fields (#74255)
jjonescz Jul 10, 2024
ff718d1
Merge remote-tracking branch 'upstream/main' into implInterfaceSharing3
CyrusNajmabadi Jul 10, 2024
a0ad07d
Common base type
CyrusNajmabadi Jul 10, 2024
e7a3db5
Common base type
CyrusNajmabadi Jul 10, 2024
038009c
Make sealed
CyrusNajmabadi Jul 10, 2024
2164964
Rename files
CyrusNajmabadi Jul 10, 2024
d4d88ba
Move helpers to common location
CyrusNajmabadi Jul 10, 2024
45cbfdd
Simplify
CyrusNajmabadi Jul 10, 2024
c14bf6e
NRT
CyrusNajmabadi Jul 10, 2024
e23d665
IN progress
CyrusNajmabadi Jul 10, 2024
e15f39d
IN progress
CyrusNajmabadi Jul 10, 2024
64c474d
IN progress
CyrusNajmabadi Jul 10, 2024
8af38d4
IN progress
CyrusNajmabadi Jul 10, 2024
da8f7f5
IN progress
CyrusNajmabadi Jul 10, 2024
de3838a
IN progress
CyrusNajmabadi Jul 10, 2024
6d8f4d4
IN progress
CyrusNajmabadi Jul 10, 2024
e7f1586
IN progress
CyrusNajmabadi Jul 10, 2024
d4a6f32
IN progress
CyrusNajmabadi Jul 10, 2024
69a11df
Remove api
CyrusNajmabadi Jul 10, 2024
9b69d9c
Remove internal feed
Cosifne Jul 10, 2024
4ad64b8
Remove internal feed
Cosifne Jul 10, 2024
b839dfb
Braces
CyrusNajmabadi Jul 10, 2024
16f60a0
Fixes
CyrusNajmabadi Jul 10, 2024
8b342f9
Cleanup
CyrusNajmabadi Jul 10, 2024
f1d3cc4
Move type
CyrusNajmabadi Jul 10, 2024
a79bb1d
No separate subclass
CyrusNajmabadi Jul 10, 2024
2ed84a5
Simplify
CyrusNajmabadi Jul 10, 2024
e3e9412
Rename
CyrusNajmabadi Jul 10, 2024
af5195b
Simplify
CyrusNajmabadi Jul 10, 2024
74e9e55
less state passing
CyrusNajmabadi Jul 10, 2024
9a4d5b0
simplify
CyrusNajmabadi Jul 10, 2024
5b1664a
rename
CyrusNajmabadi Jul 10, 2024
bbcd00d
inline
CyrusNajmabadi Jul 10, 2024
8a4d4c0
Merge pull request #74279 from syntax-tm/feature/fix-incremental-gene…
jaredpar Jul 10, 2024
bb5ea47
Merge pull request #74190 from 333fred/feature/overload-resolution-pr…
333fred Jul 10, 2024
a25ceee
Rename
CyrusNajmabadi Jul 10, 2024
f301bcd
Update eng/targets/Settings.props
CyrusNajmabadi Jul 10, 2024
2e5129e
Merge pull request #74334 from Cosifne/internal/release/dev17.10
Cosifne Jul 10, 2024
0337208
Do not use memory mapped files on non-windows
dibarbet Jul 10, 2024
0198bc6
Remove 'open file only' concept from analyzer
CyrusNajmabadi Jul 10, 2024
fe08e3b
Use immutable array
CyrusNajmabadi Jul 10, 2024
d847bb3
Remove more
CyrusNajmabadi Jul 10, 2024
ab018bf
Fallout
CyrusNajmabadi Jul 10, 2024
abbb2f6
delete
CyrusNajmabadi Jul 10, 2024
1773dc5
docs
CyrusNajmabadi Jul 10, 2024
718c6b5
Merge pull request #74340 from CyrusNajmabadi/builtIn
CyrusNajmabadi Jul 11, 2024
c649fbb
Remove fallbacks (3) (#74323)
tmat Jul 11, 2024
61eedd3
Merge branch 'main' into implInterfaceSharing3
CyrusNajmabadi Jul 11, 2024
799974c
renames
CyrusNajmabadi Jul 11, 2024
7f84691
Cleanup
CyrusNajmabadi Jul 11, 2024
dc12019
Handle missing System.Nullable type (#74330)
jjonescz Jul 11, 2024
378760e
Note that toolset package layout is hard-coded in SDK (#74301)
jjonescz Jul 11, 2024
d30cac3
Remove diagnostic category flag
CyrusNajmabadi Jul 11, 2024
7479e1d
Merge pull request #74320 from CyrusNajmabadi/implInterfaceSharing3
CyrusNajmabadi Jul 11, 2024
4c02e37
Do not include collection expression conversion to nullable value typ…
cston Jul 11, 2024
7e93076
Optimize codegen for collections expression of single spread of `Read…
DoctorKrolic Jul 11, 2024
4818ec8
Simplify passing around of FAR symbol groups
CyrusNajmabadi Jul 11, 2024
a306dda
In progress
CyrusNajmabadi Jul 11, 2024
d403712
Make into local data
CyrusNajmabadi Jul 11, 2024
f7259bb
Capture
CyrusNajmabadi Jul 11, 2024
682583c
Update src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindRe…
CyrusNajmabadi Jul 11, 2024
ac62bcd
Update src/Workspaces/Core/Portable/FindSymbols/FindReferences/FindRe…
CyrusNajmabadi Jul 11, 2024
875e6cb
Use primary constructors
CyrusNajmabadi Jul 11, 2024
10e5a36
Use primary constructors
CyrusNajmabadi Jul 11, 2024
c1ad7a1
Use primary constructors
CyrusNajmabadi Jul 11, 2024
7313a67
Use primary constructors
CyrusNajmabadi Jul 11, 2024
21f91ea
Use primary constructors
CyrusNajmabadi Jul 11, 2024
f1f411e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
a2a7b87
Use primary constructors
CyrusNajmabadi Jul 11, 2024
b4aea1e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
2d8de09
Use primary constructors
CyrusNajmabadi Jul 11, 2024
e4aa837
Use primary constructors
CyrusNajmabadi Jul 11, 2024
47e73dd
Use primary constructors
CyrusNajmabadi Jul 11, 2024
a64561f
Use primary constructors
CyrusNajmabadi Jul 11, 2024
7efd396
Use primary constructors
CyrusNajmabadi Jul 11, 2024
20c3877
Use primary constructors
CyrusNajmabadi Jul 11, 2024
70ede96
Use primary constructors
CyrusNajmabadi Jul 11, 2024
32142a6
Use primary constructors
CyrusNajmabadi Jul 11, 2024
357adee
Use primary constructors
CyrusNajmabadi Jul 11, 2024
d7cc202
Use primary constructors
CyrusNajmabadi Jul 11, 2024
27cbefc
Use primary constructors
CyrusNajmabadi Jul 11, 2024
91aff87
Use primary constructors
CyrusNajmabadi Jul 11, 2024
e9e5a8e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
3005421
Use primary constructors
CyrusNajmabadi Jul 11, 2024
aef5c26
Use primary constructors
CyrusNajmabadi Jul 11, 2024
a01ce6e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
4cc8f87
Use primary constructors
CyrusNajmabadi Jul 11, 2024
93e299c
Use primary constructors
CyrusNajmabadi Jul 11, 2024
0ae63be
Use primary constructors
CyrusNajmabadi Jul 11, 2024
d6a4cfa
Use primary constructors
CyrusNajmabadi Jul 11, 2024
1b4bc00
Use primary constructors
CyrusNajmabadi Jul 11, 2024
a186e30
Use primary constructors
CyrusNajmabadi Jul 11, 2024
814a56d
Use primary constructors
CyrusNajmabadi Jul 11, 2024
05cfea1
Use primary constructors
CyrusNajmabadi Jul 11, 2024
b51cfd0
Use primary constructors
CyrusNajmabadi Jul 11, 2024
5ef5079
Use primary constructors
CyrusNajmabadi Jul 11, 2024
a462902
Use primary constructors
CyrusNajmabadi Jul 11, 2024
10a57ac
Use primary constructors
CyrusNajmabadi Jul 11, 2024
12b9d00
Use primary constructors
CyrusNajmabadi Jul 11, 2024
8ef545d
Use primary constructors
CyrusNajmabadi Jul 11, 2024
3e6463e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
8d3ccc1
Use primary constructors
CyrusNajmabadi Jul 11, 2024
246f074
Use primary constructors
CyrusNajmabadi Jul 11, 2024
497ef27
Use primary constructors
CyrusNajmabadi Jul 11, 2024
effb334
Use primary constructors
CyrusNajmabadi Jul 11, 2024
5f2852e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
dc24902
Use primary constructors
CyrusNajmabadi Jul 11, 2024
3a091d3
Use primary constructors
CyrusNajmabadi Jul 11, 2024
81e6e6f
Use primary constructors
CyrusNajmabadi Jul 11, 2024
0d9c961
Use primary constructors
CyrusNajmabadi Jul 11, 2024
2e8d516
Use primary constructors
CyrusNajmabadi Jul 11, 2024
265a5ef
Use primary constructors
CyrusNajmabadi Jul 11, 2024
a8670e8
Use primary constructors
CyrusNajmabadi Jul 11, 2024
7e5865e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
664fc9c
Use primary constructors
CyrusNajmabadi Jul 11, 2024
1434198
Use primary constructors
CyrusNajmabadi Jul 11, 2024
aa883b3
Use primary constructors
CyrusNajmabadi Jul 11, 2024
26f124d
Use primary constructors
CyrusNajmabadi Jul 11, 2024
fdbea4c
Use primary constructors
CyrusNajmabadi Jul 11, 2024
4df2a2c
Use primary constructors
CyrusNajmabadi Jul 11, 2024
74d9187
Use primary constructors
CyrusNajmabadi Jul 11, 2024
8ff8463
Use primary constructors
CyrusNajmabadi Jul 11, 2024
ad8806a
Use primary constructors
CyrusNajmabadi Jul 11, 2024
673f127
Use primary constructors
CyrusNajmabadi Jul 11, 2024
d2e09e1
Use primary constructors
CyrusNajmabadi Jul 11, 2024
ff189f2
Use primary constructors
CyrusNajmabadi Jul 11, 2024
871910e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
8d35f5e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
4fb8645
Use primary constructors
CyrusNajmabadi Jul 11, 2024
5b52d3a
Use primary constructors
CyrusNajmabadi Jul 11, 2024
ecd96b6
Use primary constructors
CyrusNajmabadi Jul 11, 2024
022d31e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
9733a3e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
528802d
Use primary constructors
CyrusNajmabadi Jul 11, 2024
eeb97d2
Use primary constructors
CyrusNajmabadi Jul 11, 2024
3be1f89
Use primary constructors
CyrusNajmabadi Jul 11, 2024
da96f4c
Use primary constructors
CyrusNajmabadi Jul 11, 2024
e5af26c
Use primary constructors
CyrusNajmabadi Jul 11, 2024
39c4010
Add a ParamCollection test which uses the attribute included in .NET …
RikkiGibson Jul 11, 2024
d3699bb
Use primary constructors
CyrusNajmabadi Jul 11, 2024
822261e
Use primary constructors
CyrusNajmabadi Jul 11, 2024
ad8b965
Use primary constructors
CyrusNajmabadi Jul 11, 2024
7223f61
Use primary constructors
CyrusNajmabadi Jul 11, 2024
35a8a3d
Use primary constructors
CyrusNajmabadi Jul 11, 2024
a6697c5
Use primary constructors
CyrusNajmabadi Jul 11, 2024
0b25f92
Eliminate IdeAnalyzerOptions (#74357)
tmat Jul 11, 2024
a262a42
Use primary constructors
CyrusNajmabadi Jul 11, 2024
0158171
Use primary constructors
CyrusNajmabadi Jul 11, 2024
49feaa6
Use primary constructors
CyrusNajmabadi Jul 11, 2024
f051ba7
Use primary constructors
CyrusNajmabadi Jul 11, 2024
ecd915c
Add nrt support
CyrusNajmabadi Jul 11, 2024
8b0a94d
Add nrt support
CyrusNajmabadi Jul 11, 2024
4f6ef0c
Add nrt support
CyrusNajmabadi Jul 11, 2024
d58662d
Add nrt support
CyrusNajmabadi Jul 11, 2024
dbb782c
Add nrt support
CyrusNajmabadi Jul 11, 2024
de0632d
Add nrt support
CyrusNajmabadi Jul 11, 2024
343ac0f
Add nrt support
CyrusNajmabadi Jul 11, 2024
fd1da7a
Add nrt support
CyrusNajmabadi Jul 11, 2024
eb8362c
Add nrt support
CyrusNajmabadi Jul 11, 2024
81ecd91
Add nrt support
CyrusNajmabadi Jul 11, 2024
dc48454
Add nrt support
CyrusNajmabadi Jul 11, 2024
0a6f8a5
Add nrt support
CyrusNajmabadi Jul 11, 2024
774670a
Renames
CyrusNajmabadi Jul 11, 2024
421b182
Merge branch 'farGrups' of https://github.com/CyrusNajmabadi/roslyn i…
CyrusNajmabadi Jul 11, 2024
8cf03d3
Renames
CyrusNajmabadi Jul 11, 2024
0b0cb32
Pooling
CyrusNajmabadi Jul 11, 2024
09cdb3a
Extract version to Versions.props
Cosifne Jul 11, 2024
a7af126
Merge pull request #74352 from CyrusNajmabadi/removeFlag
CyrusNajmabadi Jul 11, 2024
7241b85
Merge pull request #74359 from CyrusNajmabadi/primaryConstructors
CyrusNajmabadi Jul 11, 2024
f796860
Clarify error for AssemblyVersion with wildcard when deterministic V…
A9G-Data-Droid Jul 11, 2024
b05da42
Merge pull request #74358 from CyrusNajmabadi/farGrups
CyrusNajmabadi Jul 12, 2024
a6824ae
Always check get method parameters in override indexer (#74337)
RikkiGibson Jul 12, 2024
e231014
Use more precise wording for errors specifying requirements for types…
AlekseyTs Jul 12, 2024
5c77803
Use correct get / set inside ref safety analysis (#73842)
jaredpar Jul 12, 2024
2975b0a
Merge pull request #74335 from Cosifne/internal/release/dev17.8
Cosifne Jul 12, 2024
27032e7
Merge branch 'release/dev17.11' into merges/release/dev17.10-to-relea…
Cosifne Jul 12, 2024
1129395
Reset pipeline.yml
Cosifne Jul 12, 2024
5042ed9
Merge pull request #74344 from dotnet/merges/release/dev17.10-to-rele…
dotnet-bot Jul 12, 2024
dc30747
Remove fallbacks and providers (4) (#74336)
tmat Jul 12, 2024
b8d9bd6
Merge pull request #74373 from dotnet/merges/release/dev17.11-to-main
dotnet-bot Jul 12, 2024
4d7196b
Merge pull request #74339 from dibarbet/fix_mmap_linux
dibarbet Jul 12, 2024
cada394
Fix debug assert with operation blocks in invalid code (#74354)
CyrusNajmabadi Jul 13, 2024
0d4cb9e
Test Lock with .NET 9 runtime (#74367)
jjonescz Jul 15, 2024
e2bfb31
Avoid reporting redundant and possibly misleading WRN_InlineArrayNotS…
AlekseyTs Jul 15, 2024
93e2561
Convert HideAdvancedMembers option to editorconfig option (#74360)
tmat Jul 15, 2024
64002e1
Merge remote-tracking branch 'upstream/release/dev17.10' into merges/…
Cosifne Jul 15, 2024
1f9b00a
Merge pull request #74371 from dotnet/merges/release/dev17.8-to-relea…
dotnet-bot Jul 15, 2024
d9aa209
Update asserts to improve diagnosability of dartlab test failure (#74…
RikkiGibson Jul 15, 2024
140ea50
Remove double array allocation in SemanticTokens (#74271)
ToddGrun Jul 15, 2024
9e9c7c1
Merge pull request #74394 from dotnet/merges/release/dev17.10-to-rele…
dotnet-bot Jul 15, 2024
70a4dc0
Merge pull request #74280 from davidwengier/RemoteSTJServices
davidwengier Jul 15, 2024
a3914e2
Merge pull request #74398 from dotnet/merges/release/dev17.11-to-main
dotnet-bot Jul 16, 2024
7ad4c0f
Add the trick back
Cosifne Jul 16, 2024
4f76753
Allow creating an always active LSP server
davidwengier Jul 16, 2024
2d311bd
Cleanup
davidwengier Jul 16, 2024
d065d9c
Allow Razor tests to utilize RazorPinnedSolutionInfoWrapper in tests
davidwengier Jul 16, 2024
66e63bc
Merge pull request #74402 from davidwengier/RazorCohostTest
davidwengier Jul 16, 2024
06ee35f
Merge pull request #74401 from Cosifne/dev/shech/bringMSBuildTrickBack
Cosifne Jul 16, 2024
432b124
SpillSequenceSpiller – preserve `ref` BoundConditionalOperator in pre…
AlekseyTs Jul 16, 2024
5866fab
Additional tests for `ref struct interfaces` feature (#74282)
AlekseyTs Jul 16, 2024
71470a7
Merge branch 'main' into features/FirstClassSpan
jjonescz Jul 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion Directory.Build.rsp
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# This file intentionally left blank to avoid accidental import during build.
# Workaround for https://github.com/dotnet/sdk/issues/41791
-p:_IsDisjointMSBuildVersion=false
11 changes: 9 additions & 2 deletions docs/Language Feature Status.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,25 @@ efforts behind them.

| Feature | Branch | State | Developer | Reviewer | IDE Buddy | LDM Champ |
| ------- | ------ | ----- | --------- | -------- | --------- | --------- |
| [Overload Resolution Priority](https://github.com/dotnet/csharplang/issues/7706) | PR not yet available | [In Progress](https://github.com/dotnet/roslyn/issues/74131) | [333fred](https://github.com/333fred) | [jcouv](https://github.com/jcouv), [cston](https://github.com/cston) | Not yet assigned | [333fred](https://github.com/333fred) |
| [First-class Span Types](https://github.com/dotnet/csharplang/issues/7905) | [FirstClassSpan](https://github.com/dotnet/roslyn/tree/features/FirstClassSpan) | [In Progress](https://github.com/dotnet/roslyn/issues/73445) | [jjonescz](https://github.com/jjonescz) | [cston](https://github.com/cston), [333fred](https://github.com/333fred) | | [333fred](https://github.com/333fred), [stephentoub](https://github.com/stephentoub) |
| [Semi-auto-properties](https://github.com/dotnet/csharplang/issues/140) | [semi-auto-props](https://github.com/dotnet/roslyn/tree/features/semi-auto-props) | [In Progress](https://github.com/dotnet/roslyn/issues/57012) | [Youssef1313](https://github.com/Youssef1313) | [333fred](https://github.com/333fred), [RikkiGibson](https://github.com/RikkiGibson) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) |
| [Default in deconstruction](https://github.com/dotnet/roslyn/pull/25562) | [decon-default](https://github.com/dotnet/roslyn/tree/features/decon-default) | [In Progress](https://github.com/dotnet/roslyn/issues/25559) | [jcouv](https://github.com/jcouv) | [gafter](https://github.com/gafter) | | [jcouv](https://github.com/jcouv) |
| [Roles/Extensions](https://github.com/dotnet/csharplang/issues/5497) | [roles](https://github.com/dotnet/roslyn/tree/features/roles) | [In Progress](https://github.com/dotnet/roslyn/issues/66722) | [jcouv](https://github.com/jcouv) | [AlekseyTs](https://github.com/AlekseyTs), [jjonescz](https://github.com/jjonescz) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [MadsTorgersen](https://github.com/MadsTorgersen) |
| [Ref Struct Interfaces](https://github.com/dotnet/csharplang/issues/7608) | [RefStructInterfaces](https://github.com/dotnet/roslyn/tree/features/RefStructInterfaces) | [Merged into 17.11p2](https://github.com/dotnet/roslyn/issues/72124) | [AlekseyTs](https://github.com/AlekseyTs) | [cston](https://github.com/cston), [jjonescz](https://github.com/jjonescz) | [ToddGrun](https://github.com/ToddGrun) | [agocke](https://github.com/agocke), [jaredpar](https://github.com/jaredpar) |

# C# 13.0

| Feature | Branch | State | Developer | Reviewer | IDE Buddy | LDM Champ |
| ------- | ------ | ----- | --------- | -------- | --------- | --------- |
| [Escape character](https://github.com/dotnet/csharplang/issues/7400) | N/A | [Merged into 17.9p1](https://github.com/dotnet/roslyn/pull/70497) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) | [jcouv](https://github.com/jcouv), [RikkiGibson](https://github.com/RikkiGibson) | (no IDE impact) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) |
| [Method group natural type improvements](https://github.com/dotnet/csharplang/blob/main/proposals/method-group-natural-type-improvements.md) | main | [Merged into 17.9p2](https://github.com/dotnet/roslyn/issues/69432) | [jcouv](https://github.com/jcouv) | [AlekseyTs](https://github.com/AlekseyTs), [cston](https://github.com/cston) | (no IDE impact) | [jcouv](https://github.com/jcouv) |
| [`Lock` object](https://github.com/dotnet/csharplang/issues/7104) | [LockObject](https://github.com/dotnet/roslyn/tree/features/LockObject) | [Merged into 17.10p2](https://github.com/dotnet/roslyn/issues/71888) | [jjonescz](https://github.com/jjonescz) | [cston](https://github.com/cston), [RikkiGibson](https://github.com/RikkiGibson) | [CyrusNajmabadi](https://github.com/CyrusNajmabadi) (needs IDE fixer) | [stephentoub](https://github.com/stephentoub) |
| Implicit indexer access in object initializers | main | [Merged into 17.9p3](https://github.com/dotnet/roslyn/pull/70649) | [jcouv](https://github.com/jcouv) | [AlekseyTs](https://github.com/AlekseyTs), [cston](https://github.com/cston) | (no IDE impact) | |
| [Params-collections](https://github.com/dotnet/csharplang/issues/7700) | main | [Merged to 17.10p3](https://github.com/dotnet/roslyn/issues/71137) | [AlekseyTs](https://github.com/AlekseyTs) | [RikkiGibson](https://github.com/RikkiGibson), [333fred](https://github.com/333fred) | [akhera99](https://github.com/akhera99) (needs IDE fixer) | [MadsTorgersen](https://github.com/MadsTorgersen), [AlekseyTs](https://github.com/AlekseyTs) |
| [Ref/unsafe in iterators/async](https://github.com/dotnet/csharplang/blob/main/proposals/ref-unsafe-in-iterators-async.md) | [RefInAsync](https://github.com/dotnet/roslyn/tree/features/RefInAsync) | [Merged into 17.11p2](https://github.com/dotnet/roslyn/issues/72662) | [jjonescz](https://github.com/jjonescz) | [AlekseyTs](https://github.com/AlekseyTs), [cston](https://github.com/cston) | (no IDE impact) | |
| [Ref Struct Interfaces](https://github.com/dotnet/csharplang/issues/7608) | [RefStructInterfaces](https://github.com/dotnet/roslyn/tree/features/RefStructInterfaces) | [Merged into 17.11p2](https://github.com/dotnet/roslyn/issues/72124) | [AlekseyTs](https://github.com/AlekseyTs) | [cston](https://github.com/cston), [jjonescz](https://github.com/jjonescz) | [ToddGrun](https://github.com/ToddGrun) | [agocke](https://github.com/agocke), [jaredpar](https://github.com/jaredpar) |
| [Overload Resolution Priority](https://github.com/dotnet/csharplang/issues/7706) | PR not yet available | [In Progress](https://github.com/dotnet/roslyn/issues/74131) | [333fred](https://github.com/333fred) | [jcouv](https://github.com/jcouv), [cston](https://github.com/cston) | Not yet assigned | [333fred](https://github.com/333fred) |
| [`allows ref struct` constraint](https://github.com/dotnet/csharplang/issues/7608) | [RefStructInterfaces](https://github.com/dotnet/roslyn/tree/features/RefStructInterfaces) | [Merged into 17.11p2](https://github.com/dotnet/roslyn/issues/72124) | [AlekseyTs](https://github.com/AlekseyTs) | [cston](https://github.com/cston), [jjonescz](https://github.com/jjonescz) | [ToddGrun](https://github.com/ToddGrun) | [agocke](https://github.com/agocke), [jaredpar](https://github.com/jaredpar) |
| [Overload Resolution Priority](https://github.com/dotnet/csharplang/issues/7706) | main | [Merged to 17.12p1](https://github.com/dotnet/roslyn/issues/74131) | [333fred](https://github.com/333fred) | [jcouv](https://github.com/jcouv), [cston](https://github.com/cston) | Not yet assigned | [333fred](https://github.com/333fred) |
| [Partial properties](https://github.com/dotnet/csharplang/issues/6420) | [partial-properties](https://github.com/dotnet/roslyn/tree/features/partial-properties) | [Merged into 17.11p3](https://github.com/dotnet/roslyn/issues/73090) | [RikkiGibson](https://github.com/RikkiGibson) | [jcouv](https://github.com/jcouv), [333fred](https://github.com/333fred) | [Cosifne](https://github.com/Cosifne) | [333fred](https://github.com/333fred), [RikkiGibson](https://github.com/RikkiGibson) |

# C# 12.0
Expand Down
1 change: 1 addition & 0 deletions docs/contributing/Compiler Test Plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ This document provides guidance for thinking about language interactions and tes
- Conversions (boxing/unboxing)
- Nullable (wrapping, unwrapping)
- Overload resolution, override/hide/implement (OHI)
- OverloadResolutionPriorityAttribute
- Inheritance (virtual, override, abstract, new)
- Anonymous types
- Tuple types and literals (elements with explicit or inferred names, long tuples), tuple equality
Expand Down
187 changes: 185 additions & 2 deletions docs/features/incremental-generators.cookbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ For example, to turn your generator project into a NuGet package at build, add t

Any *runtime* dependencies, that is, code that the end users program will need to rely on, can simply be added as a dependency of the generator NuGet package via the usual referencing mechanism.

For example, consider a generator that creates code that relies on `Newtonsoft.Json`. The generator does not directly use the dependency, it just emits code that relies on the library being referenced in the users compilation. The author would add a reference to `Newtonsoft.Json` as a public dependency, and when the user adds the generator package it will referenced automatically.
For example, consider a generator that creates code that relies on `Newtonsoft.Json`. The generator does not directly use the dependency, it just emits code that relies on the library being referenced in the users compilation. The author would add a reference to `Newtonsoft.Json` as a public dependency, and when the user adds the generator package it will be referenced automatically.

```xml
<Project>
Expand Down Expand Up @@ -636,7 +636,190 @@ TODO: https://github.com/dotnet/roslyn/issues/72149

### Auto interface implementation

TODO: https://github.com/dotnet/roslyn/issues/72149
**User scenario:** As a generator author I want to be able to implement the properties of interfaces passed as arguments to a decorator of a class automatically for a user

**Solution:** Require the user to decorate the class with the `[AutoImplement]` Attribute and pass as arguments the types of the interfaces they want to self-implement themselves; The classes that implement the attribute have to be `partial class`.
Provide that attribute in a `RegisterPostInitializationOutput` step. Register for callbacks on the classes with
`ForAttributeWithMetadataName` using the fullyQualifiedMetadataName `FullyQualifiedAttributeName`, and use tuples (or create an equatable model) to pass along that information.
The attribute could work for structs too, the example was kept simple on purpose for the workbook sample.

**Example:**

```csharp
public interface IUserInterface
{
int InterfaceProperty { get; set; }
}

public interface IUserInterface2
{
float InterfacePropertyOnlyGetter { get; }
}

[AutoImplementProperties(typeof(IUserInterface), typeof(IUserInterface2))]
public partial class UserClass
{
public string UserProp { get; set; }
}
```

```csharp
#nullable enable
[Generator]
public class AutoImplementGenerator : IIncrementalGenerator
{
private const string AttributeNameSpace = "AttributeGenerator";
private const string AttributeName = "AutoImplementProperties";
private const string AttributeClassName = $"{AttributeName}Attribute";
private const string FullyQualifiedAttributeName = $"{AttributeNameSpace}.{AttributeClassName}";

public void Initialize(IncrementalGeneratorInitializationContext context)
{
context.RegisterPostInitializationOutput(ctx =>
{
//Generate the AutoImplementProperties Attribute
const string autoImplementAttributeDeclarationCode = $$"""
// <auto-generated/>
using System;
namespace {{AttributeNameSpace}};

[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
sealed class {{AttributeClassName}} : Attribute
{
public Type[] InterfacesTypes { get; }
public {{AttributeClassName}}(params Type[] interfacesTypes)
{
InterfacesTypes = interfacesTypes;
}
}
""";
ctx.AddSource($"{AttributeClassName}.g.cs", autoImplementAttributeDeclarationCode);
});

IncrementalValuesProvider<ClassModel> provider = context.SyntaxProvider.ForAttributeWithMetadataName(
fullyQualifiedMetadataName: FullyQualifiedAttributeName,
predicate: static (node, cancellationToken_) => node is ClassDeclarationSyntax,
transform: static (ctx, cancellationToken) =>
{
ISymbol classSymbol = ctx.TargetSymbol;

return new ClassModel(
classSymbol.Name,
classSymbol.ContainingNamespace.ToDisplayString(),
GetInterfaceModels(ctx.Attributes[0])
);
});

context.RegisterSourceOutput(provider, static (context, classModel) =>
{
foreach (InterfaceModel interfaceModel in classModel.Interfaces)
{
StringBuilder sourceBuilder = new($$"""
// <auto-generated/>
namespace {{classModel.NameSpace}};

public partial class {{classModel.Name}} : {{interfaceModel.FullyQualifiedName}}
{

""");

foreach (string property in interfaceModel.Properties)
{
sourceBuilder.AppendLine(property);
}

sourceBuilder.AppendLine("""
}
""");

//Concat class name and interface name to have unique file name if a class implements two interfaces with AutoImplement Attribute
string generatedFileName = $"{classModel.Name}_{interfaceModel.FullyQualifiedName}.g.cs";
context.AddSource(generatedFileName, sourceBuilder.ToString());
}
});
}

private static EquatableList<InterfaceModel> GetInterfaceModels(AttributeData attribute)
{
EquatableList<InterfaceModel> ret = [];

if (attribute.ConstructorArguments.Length == 0)
return ret;

foreach(TypedConstant constructorArgumentValue in attribute.ConstructorArguments[0].Values)
{
if (constructorArgumentValue.Value is INamedTypeSymbol { TypeKind: TypeKind.Interface } interfaceSymbol)
{
EquatableList<string> properties = new();

foreach (IPropertySymbol interfaceProperty in interfaceSymbol
.GetMembers()
.OfType<IPropertySymbol>())
{
string type = interfaceProperty.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);

//Check if property has a setter
string setter = interfaceProperty.SetMethod is not null
? "set; "
: string.Empty;

properties.Add($$"""
public {{type}} {{interfaceProperty.Name}} { get; {{setter}}}
""");
}

ret.Add(new InterfaceModel(interfaceSymbol.ToDisplayString(), properties));
}
}

return ret;
}

private record ClassModel(string Name, string NameSpace, EquatableList<InterfaceModel> Interfaces);
private record InterfaceModel(string FullyQualifiedName, EquatableList<string> Properties);

private class EquatableList<T> : List<T>, IEquatable<EquatableList<T>>
{
public bool Equals(EquatableList<T>? other)
{
// If the other list is null or a different size, they're not equal
if (other is null || Count != other.Count)
{
return false;
}

// Compare each pair of elements for equality
for (int i = 0; i < Count; i++)
{
if (!EqualityComparer<T>.Default.Equals(this[i], other[i]))
{
return false;
}
}

// If we got this far, the lists are equal
return true;
}
public override bool Equals(object obj)
{
return Equals(obj as EquatableList<T>);
}
public override int GetHashCode()
{
return this.Select(item => item?.GetHashCode() ?? 0).Aggregate((x, y) => x ^ y);
}
public static bool operator ==(EquatableList<T> list1, EquatableList<T> list2)
{
return ReferenceEquals(list1, list2)
|| list1 is not null && list2 is not null && list1.Equals(list2);
}
public static bool operator !=(EquatableList<T> list1, EquatableList<T> list2)
{
return !(list1 == list2);
}
}
}
```

## Breaking Changes:

Expand Down
4 changes: 2 additions & 2 deletions docs/wiki/Roslyn-Overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Each phase of this pipeline is now a separate component. First the parse phase,

![compiler pipeline api](images/compiler-pipeline-api.png)

Corresponding to each of those phases, an object model is surfaced that allows access to the information at that phase. The parsing phase is exposed as a syntax tree, the declaration phase as a hierarchical symbol table, the binding phase as a model that exposes the result of the compiler’s semantic analysis and the emit phase as an API that produces IL byte codes.
Corresponding to each of those phases, an object model that allows access to the information at that phase is surfaced. The parsing phase is exposed as a syntax tree, the declaration phase as a hierarchical symbol table, the binding phase as a model that exposes the result of the compiler’s semantic analysis and the emit phase as an API that produces IL byte codes.

![compiler api lang service](images/compiler-pipeline-lang-svc.png)

Expand All @@ -69,7 +69,7 @@ The compiler layer contains the object models that correspond with information e

#### Diagnostic APIs

As part of their analysis the compiler may produce a set of diagnostics covering everything from syntax, semantic, and definite assignment errors to various warnings and informational diagnostics. The Compiler API layer exposes diagnostics through an extensible API allowing for user-defined analyzers to be plugged into a Compilation and user-defined diagnostics, such as those produced by tools like StyleCop or FxCop, to be produced alongside compiler-defined diagnostics. Producing diagnostics in this way has the benefit of integrating naturally with tools such as MSBuild and Visual Studio which depend on diagnostics for experiences such as halting a build based on policy and showing live squiggles in the editor and suggesting code fixes.
As part of their analysis the compiler may produce a set of diagnostics covering everything from syntax, semantic, and definite assignment errors to various warnings and informational diagnostics. The Compiler API layer exposes diagnostics through an extensible API allowing for user-defined analyzers to be plugged into a Compilation and user-defined diagnostics, such as those produced by tools like StyleCop or FxCop, to be produced alongside compiler-defined diagnostics. Producing diagnostics in this way has the benefit of integrating naturally with tools such as MSBuild and Visual Studio which depend on diagnostics for experiences such as halting a build based on policy, showing live squiggles in the editor and suggesting code fixes.

#### Scripting APIs

Expand Down
2 changes: 1 addition & 1 deletion eng/Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!-- Versions used by several individual references below -->
<RoslynDiagnosticsNugetPackageVersion>3.11.0-beta1.24081.1</RoslynDiagnosticsNugetPackageVersion>
<MicrosoftCodeAnalysisNetAnalyzersVersion>8.0.0-preview.23468.1</MicrosoftCodeAnalysisNetAnalyzersVersion>
<MicrosoftCodeAnalysisTestingVersion>1.1.2-beta1.24121.1</MicrosoftCodeAnalysisTestingVersion>
<MicrosoftCodeAnalysisTestingVersion>1.1.3-beta1.24319.1</MicrosoftCodeAnalysisTestingVersion>
<MicrosoftVisualStudioExtensibilityTestingVersion>0.1.187-beta</MicrosoftVisualStudioExtensibilityTestingVersion>
<_BasicReferenceAssembliesVersion>1.7.2</_BasicReferenceAssembliesVersion>
<!-- CodeStyleAnalyzerVersion should we updated together with version of dotnet-format in dotnet-tools.json -->
Expand Down
Loading
Loading