Skip to content

Conversation

@dotnet-bot
Copy link
Collaborator

This is an automatically generated pull request from master into master-vs-deps.

git fetch --all
git checkout merges/master-to-master-vs-deps
git reset --hard upstream/master-vs-deps
git merge upstream/master
# Fix merge conflicts
git commit
git push upstream merges/master-to-master-vs-deps --force

Once all conflicts are resolved and all the tests pass, you are free to merge the pull request.

gekka and others added 30 commits May 18, 2020 15:17
All array types for one elemnt type is consider same in our index.
e.g. int[], int[][] and int[,] are just represent as int[]
Since they are already from the same compilation that triggered completion.
…emantic diagnostics for a specific tree, which are categorized by each analyzer that reported the diagnostic. We have existing APIs on this type that return the same diagnostics, but as a single group instead of categorized by analyzer. Latter is required by the IDE analyzer host as we cache diagnostics from each analyzer.
First step towards #44408

1. Refactor IDE open file analysis so that we have a single place where we execute the analyzers for document analysis. I have preserved the existing IDE layer diagnostic caching in this PR, but it should hopefully go away in future when we move the diagnostic computation to OOP.
2. Perf improvement: Currently, we execute open file analyzers one at a time by making separate calls into CompilationWithAnalyzers. This identified overhead where we are recomputing lot of stuff with each call and missing semantic model/bound node cache hits. This PR simplifies the approach by invoking a single syntax/semantic call into CompilationWithAnalyzers with all relevant analyzers. This required adding a new public API to CompilationWithAnalyzers to return syntax/semantic diagnostics for a tree/model grouped by analyzers, which has been split into a separate commit.
3. Remove code for code fix support for CompilationEndAction diagnostics - these actions are not executed in the IDE live analysis, so the code was not executing. Additionally, we have identified that we never want to run these actions in IDE live analysis due to associated perf concerns.

Future steps:
1. Move open file diagnostic analyzer execution to OOP
2. Remove IDE layer diagnostic caching, and rely on caching at OOP side
3. Investigate moving even compiler diagnostic computation to OOP - need to ensure responsiveness of refreshing compiler diagnostics on typing is not affected
…emantic diagnostics for a specific tree, which are categorized by each analyzer that reported the diagnostic. We have existing APIs on this type that return the same diagnostics, but as a single group instead of categorized by analyzer. Latter is required by the IDE analyzer host as we cache diagnostics from each analyzer.
A workspace can customize which changes are allowed to be applied
through TryApplyChanges. There's a CanApplyChanges that generally
is called with each type of change which you can opt in for. There is
also a specific overloads for filtering specific changes to
CompilationOptions or ParseOptions, since a host may support changing
some of those but not all of them.

This documents our existing behavior and adds tests to confirm the
behavior. There were some Debug.Asserts() that are incorrect and are
now fixed.
So we don't need to process extension methods with receiver type we know wouldn't match
Today, we realize ConstantValues of nodes as soon as an IOperation is created. This means that for things like constant string addition, we immediately use O(n^2) memory when an IOperation tree is fully realized. Internally the compiler uses an approach to only realize the final string when necessary, and this ports IOperation to use that representation under the hood for strings. When an IOperation.ConstantValue that is a string is realized, we take a WeakReference to that string. If a subsequent request comes in and the reference has not yet expired, we return that same string to avoid duplication, but avoid rooting the object if one user requests the constant value and then immediately gets rid of it. Fixes #43019.
…framework

Set ignoreAssemblyKey to true during SymbolKey resolution
The perf with ignoreAssemblyKey = true doesn't meet the bar
…AnalysisResultAsync APIs as an outcome of design change in #45347
@dotnet-bot
Copy link
Collaborator Author

Reset HEAD of merges/master-to-master-vs-deps to ced84c0cc12061c4b358634dc74fd5937e28742d

sharwell and others added 9 commits June 26, 2020 14:24
Fix inconsistencies in handling CompilerVisibleItemMetadata
* Additional tests for nested function contexts.
* Override VisitFunctionPointerLoad in MethodToClassRewriter.
* Adjust debug asserts.
…626.2 (#45482)

Microsoft.DotNet.Arcade.Sdk
 From Version 1.0.0-beta.20302.3 -> To Version 1.0.0-beta.20326.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
We have two members in TypeKind that point to the same value, Struct
and Structure. Because of this, Enum.ToString(), which under the covers
uses a binary search, isn't stable which one it will pick and it can
change if other TypeKinds are added. This ensures we keep using the
same string consistently.

We also have a few members in MethodKind that are also duplicates, but
it appears those have kept stable. To be safe, we now serialize
explicitly.

Fixes #44714
@dotnet-bot
Copy link
Collaborator Author

Reset HEAD of merges/master-to-master-vs-deps to 076c90fa6ca528c4340aadcbd59a1712a50d4e4e

@dotnet-bot
Copy link
Collaborator Author

Reset HEAD of merges/master-to-master-vs-deps to fa69a8c9567246576fadcb13dc7eaccb748868e5

Reduce memory required for document change processing queues
@dotnet-bot
Copy link
Collaborator Author

Reset HEAD of merges/master-to-master-vs-deps to 4e102e1fa657964eb89c16c560a2185211b87ab6

@dotnet-bot
Copy link
Collaborator Author

Reset HEAD of merges/master-to-master-vs-deps to febdd084360a495b29a239b89ae5637948022d22

…nsistency

Fix up nondeterminism in serializing naming style preferences
@dotnet-bot
Copy link
Collaborator Author

Reset HEAD of merges/master-to-master-vs-deps to 327c010d408fd0c08c29ab9f952c74e02c165736

* Move SymbolSearch down to EditorFeatures

* RemoteControl package reference
@dotnet-bot
Copy link
Collaborator Author

Reset HEAD of merges/master-to-master-vs-deps to f755e8a8ed1d5200153990a099e6ad4c461eb592

@dotnet-bot dotnet-bot requested a review from a team June 29, 2020 06:03
@dibarbet dibarbet merged commit 1f3fa3f into master-vs-deps Jun 29, 2020
@ghost ghost added this to the Next milestone Jun 29, 2020
@dibarbet dibarbet modified the milestones: Next, 16.7.P4 Jun 30, 2020
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.