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 features/compiler into features/record-structs #52647

Merged
merged 348 commits into from
Apr 15, 2021

Conversation

jcouv
Copy link
Member

@jcouv jcouv commented Apr 15, 2021

Compiler side was just minor/usual conflicts on messageID and resource files. Trivial to resolve. 

I resolved a few conflicts in EditorFeatures (some code had moved or was refactored).
Also realized I'd left two PROTOTYPE comments in CSharpCodeModelService (a feature still being worked on by IDE team). @CyrusNajmabadi Let me know if you'd like a tracking issue for adding support to record structs to that new feature.

Test plan: #51199

Youssef1313 and others added 30 commits April 1, 2021 08:47
* EnC: Don't consider changing unsafe modifier as rude edit

* Add test for partial and unsafe

* Update issue link
Enable test for fixed Smart Break Line issue
…fault

Enable Remove Unused References by default
Move IDE0066 'ContainsDirectives' check from analyzer to code fix
Fixes [AB#1128126](https://dev.azure.com/devdiv/DevDiv/_workitems/edit/1128126)

Currently, the global option service only tracks explicitly changed option keys. This means options that have non-default values from option persisters are not part of tracked changed option keys, which leads to GlobalOptionService.SetOptions to ignore these options until an actual new solution snapshot is produced with the non-default option value.

Verified customer repro and added unit test failure prior to the fix.
* Replace iff with "if and only if"

Fixes dotnet/docs#21572

* replace "iff" with "if and only if" in other public `///` locations

PR review pointed to two other locations where "iff" was used in the /// comments. This commit replaces those with "if and only if" in those cases where the API is public, or protected and will be part of the documentation set.

There are other uses in comments, include `///` comments on internal (or Friend) APIs  and private methods. Those are unchanged.
Fix global option service to handle non-default values from persisters
* Make order of extension loading deterministic
* Add tests and make allExtensions deterministic too
…-tokens-editorfeatures

Pass CancellationTokens in the EditorFeature layer
…-tokens-features

Pass CancellationToken at Features layer
allisonchou and others added 13 commits April 12, 2021 11:15
…methods

Reuse existing extension methods
…OnPropertyAccess

UsePatternCombinator: Fix wrong target equivalence comparison.
* Rebuild PDB documentation

Get the rebuild PDB documentation up to date with our recent changes

* Escape the |
Don't push diagnostics for LSP documents if Pull-diags are enabled.
* Factor out interface for source and references

This adds the abstraction `IRebuildArtifactResolver` to the Rebuild
layer. This interface abstracts out the finding of the source and
references to the host process. The validator and tests were then
changed to leverage this interface in testing.

As a proof of this working I extended our tests to include `/pathmap`
tests. These all failed before the change due to the file paths not
lining up in the re-used `SyntaxTree` instances

* PR feedback
Extract Method Highlight Part of Switch Expression Bug Fix
Refresh features/compiler with latest bits from main branch
@jcouv jcouv added this to the C# 10 milestone Apr 15, 2021
@jcouv jcouv self-assigned this Apr 15, 2021
@jcouv jcouv marked this pull request as ready for review April 15, 2021 19:04
@jcouv jcouv requested review from a team as code owners April 15, 2021 19:04
@CyrusNajmabadi
Copy link
Member

Also realized I'd left two PROTOTYPE comments in CSharpCodeModelService (a feature still being worked on by IDE team). @CyrusNajmabadi Let me know if you'd like a tracking issue for adding support to record structs to that new feature.

Are we supporting record-classes there? If so, we should get parity with record-structs. If we're not doing record classes there, then no.

@jcouv
Copy link
Member Author

jcouv commented Apr 15, 2021

@CyrusNajmabadi Cool. CSharpCodeModelService.MatchesScope(SyntaxNode node, EnvDTE.vsCMElement scope) has support for SyntaxKind.Class|Struct|InterfaceDeclaration, but not RecordDeclaration (nor RecordStructDeclaration). So I'll leave things as-is for now.

@jcouv jcouv merged commit 741ba8b into dotnet:features/record-structs Apr 15, 2021
@jcouv jcouv deleted the merge-features-compiler branch April 15, 2021 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.