-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Avoid calling GetDiagnostics on compilation during EnC analysis #19167
Conversation
@@ -4416,7 +4416,7 @@ void F() | |||
} | |||
|
|||
// Add corresponding test to VB | |||
[WpfFact(Skip = "TODO")] | |||
[Fact(Skip = "TODO")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs change #18940 to go in first.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please change the skip string to "https://github.com/dotnet/roslyn/pull/18940"
@@ -4313,6 +4323,76 @@ public void Insert_ExternConstruct() | |||
Diagnostic(RudeEditKind.InsertExtern, "public extern C()", FeaturesResources.constructor)); | |||
} | |||
|
|||
[Fact(Skip = "TODO")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See #18940
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@@ -4416,7 +4416,7 @@ void F() | |||
} | |||
|
|||
// Add corresponding test to VB | |||
[WpfFact(Skip = "TODO")] | |||
[Fact(Skip = "TODO")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please change the skip string to "https://github.com/dotnet/roslyn/pull/18940"
@@ -4313,6 +4323,76 @@ public void Insert_ExternConstruct() | |||
Diagnostic(RudeEditKind.InsertExtern, "public extern C()", FeaturesResources.constructor)); | |||
} | |||
|
|||
[Fact(Skip = "TODO")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here
@MattGertz For ask mode approval. |
Customer scenario
Applying an EnC change in a project containing large method bodies might take a long time (minutes) during which the compiler calculates all semantic diagnostics and VS UI thread is blocked.
Bugs this fixes:
#10683
Workarounds, if any
None.
Risk
Medium. Although I went over the EnC analyzer code to find any code paths that might not be hardened against erroneous code it might happen I missed something. As a result an exception may occur, a non-fatal Watson reported and the debugging session terminated.
Performance impact
Improves performance.
Is this a regression from a previous update?
Roslyn regressed when compared to pre-Roslyn EnC.
Root cause analysis:
We used safer approach of not analyzing broken code when the analyzer was implemented.
How was the bug found?
Quite a few customer complains.