- 20 10月, 2018 6 次提交
-
-
由 Dustin Campbell 提交于
-
由 dotnet-automerge-bot 提交于
Merge dev16.0.x to master
-
由 Rikki Gibson 提交于
* Handle collection initializers which lower to an extension method call with a `ref this` parameter * Simplify RefKind check * Add more tests for combinations of in params and implicit temporaries * Replace methodOrIndexer.Parameters usages with @params * Add asserts about parameter RefKinds and comments * Add tests for more combinations of ref and in parameters * Add WorkItem attributes to tests * Take master version of LocalRewriter_Call * Check that ImplicitReceiver valueKind is not RefAssignable * Fix conventions in diagnostics tests * Change RefAssignableVariable check to debug assert This assertion and return statement expresses that we expect the BoundImplicitReceiver to be lowered into a temporary local (not ref-assignable) if needed to satisfy the BindValueKind of the usage. This assertion ensures that if a new usage down the line requires the BoundImplicitReceiver to be ref-assignable, we reexamine our assumptions here and specify when the BoundImplicitReceiver can be ref-assignable. * Disable GenericBaseTypeHasNonVirtualFinalize on Mono
-
由 Dustin Campbell 提交于
-
由 Sam Harwell 提交于
Do not convert mutable value type fields to properties
-
由 CyrusNajmabadi 提交于
-
- 19 10月, 2018 20 次提交
-
-
由 Manish Vasani 提交于
Fix for perf issues in CompilationWithAnalyzers found from perf traces
-
由 Charles Stoner 提交于
-
由 Manish Vasani 提交于
-
由 Jason Malinowski 提交于
This produces a new free-threaded, well factored API for adding projects to the VisualStudioWorkspace. The core type is the VisualStudioProject which is a free-threaded API that you can use to push information over. CSharpProjectShim, VisualBasicProject and CPSProject each have an instance of VisualStudioProject that they push things through. This also introduces a proper batching API: any consumer of VisualStudioProject may call CreateBatchScope() which means all future operations are put a single batch that will be applied at once in a single workspace change. Multiple calls to CreateBatchScope just stack: it only applies when all scopes are closed. You could think of the behavior as roughly analogous to an SQL transaction, except with no rollback capabilities. A batch is only per-project: a batch started on one project doesn't impact another project. There is no concept of a cross-project batch, short of just starting two independent batches and completing them at the same time (which creates two workspace changes.) The inheritance model here is now smaller. CSharpProjectShim and VisualBasicProject inherit from AbstractLegacyProject, but that's it. CPSProject now inherits nothing, and AbstractProject is here purely for TypeScript back-compat until they're moved onto the new APIs. The expectation is F# and TypeScript both move to VisualStudioProject, which we make public in some form. Then AbstractProject will go away. AbstractLegacyProject (which is used for csproj and vbproj) still is tied to the UI thread, but the ties should now be more limited and better understood. The primary tangles right now are having to fetch a few things from IVsHierarchies, namely some project properties and the folder structure. The plan for now is AbstractLegacyProject-derived projects will still be called on the UI thread, and we'll determine a new API to remove those remaining issues for them (or just move them onto VisualStudioProject.) The threading guarantee given to all consumers of VisualStudioProject is it can be called from any thread, and no synchronous calls to the UI thread may be done at that time. There are a few places where we asynchronously kick off work to inspect the running document table, but those are async and should never block. There is a lock hierarchy now instituted: each VisualStudioProject has a lock which it takes when any method is called on it, this is to ensure straightforward synchronization of it's data for things like batch start/stopping, what's in the batch, etc. There is also a lock in VisualStudioWorkspaceImpl that is acquired when actually modifying the workspace, which is done through an internal ApplyChangeToWorkspace method so it can be called from VisualStudioProject more easily. It is permissible for a VisualStudioProject to call ApplyChangeToWorkspace to acquire the VisualStudioWorkspaceImpl lock. It is _not_ permissible for a lock holder of VisualStudioWorkspaceImpl's lock to acquire any project lock. To this end, some project-to-project tracking information is held in VisualStudioWorkspaceImpl to avoid mistakes -- although the data is a "per project" concept, putting it in the project would cause people to take a project lock and risk deadlocks.
-
由 Charles Stoner 提交于
-
由 Heejae Chang 提交于
This adds an API for the project system to notify us about files that can generate .cs files in the workspace. The rest of the implementation is still coming but this unblocks the project system side of things.
-
由 Jason Malinowski 提交于
This test was broken prior to my change: it never waited for CPS to have completed design time builds before it asserted that everything was done. But before, there was no window where the UI thread was idle and the file wasn't associated with Miscellaneous Files. Now that we're more async, I think it is the case where it can be, and that trips things up.
-
由 Jason Malinowski 提交于
-
由 Manish Vasani 提交于
-
由 Charles Stoner 提交于
Merge 'features/NullableReferenceTypes' into 'dev16.0.x'
-
由 CyrusNajmabadi 提交于
Do not crash ExtractMethod when we run into a dataflowanalysis result we didn't account for. (#30554) * Do not crash when we run into a dataflowanalysis result we didn't account for. * Add comment. * remove * Improve error strings. * Simplify. * Assume the variable is read. * Add test. * KeyValueMessage.
-
由 Sam Harwell 提交于
Merge pull request #30242 from Scott-Caldwell/26947-Include-volatile-in-tool-tips-for-volatile-fields Include static, readonly, and volatile in tool tips for fields
-
由 Jason Malinowski 提交于
We might disconnect/reconnect on background threads now, so be ready for that.
-
由 Jason Malinowski 提交于
Since we're checking the RDT asynchronously, we need a way for integration tests to confirm that.
-
由 Charles Stoner 提交于
-
由 Manish Vasani 提交于
-
由 Charles Stoner 提交于
-
由 Manish Vasani 提交于
1. Check cancellation at multiple places. 2. Run partial tree completion logic sequentially when `AnalysisOptions.ConcurrentAnalysis = false`
-
由 dotnet-automerge-bot 提交于
Merge dev16.0.x to master
-
-
- 18 10月, 2018 12 次提交
-
-
由 Julien Couvreur 提交于
-
由 Jason Malinowski 提交于
Two bugs being fixed here: 1. When we remove a document in a non-batch scenario, we close any information related to the open document. If we were in a batch scenario, the SetCurrentSolution we do to apply the new Solution snapshot didn't go through that. Now we do. 2. UpdateSolutionForBatch wasn't calling the delegates given; this would have meant that additional files being added in a batch would have been added a regular source files.
-
由 Julien Couvreur 提交于
-
由 Jason Malinowski 提交于
This would have never worked: we would have been closing documents after we had already removed them.
-
由 Brett V. Forsgren 提交于
-
由 Jason Malinowski 提交于
A few places we might try to remove something that we shouldn't.
-
由 Jason Malinowski 提交于
I should have overriden this from the start -- the ExplicitBinPath didn't give you a way to specify you really did want it to be null.
-
由 Dustin Campbell 提交于
Ensure that MSBuildWorkspace is resilient against malformed paths
-
由 Jinu 提交于
Infer return type of bool when generating methods in when clauses
-
由 Dustin Campbell 提交于
-
由 Dustin Campbell 提交于
-
由 Dustin Campbell 提交于
-
- 17 10月, 2018 2 次提交
-
-
由 Sam Harwell 提交于
Fixing bugs in C# TypeInferrer
-
由 Sam Harwell 提交于
Refactor ISyntaxFactsService.IsQueryKeyword
-