- 31 10月, 2020 1 次提交
-
-
由 Julien Couvreur 提交于
-
- 30 10月, 2020 3 次提交
-
-
由 David Wengier 提交于
-
由 Julien Couvreur 提交于
* Fix SyntaxGenerator.InsertMembers for records * Address feedback from Cyrus * Add WorkItem
-
由 Youssef Victor 提交于
-
- 28 10月, 2020 6 次提交
-
-
由 AlekseyTs 提交于
Add an enforcement for a layering separation between Cci instances used for metadata emit and compiler symbols. (#48838) We implement Cci interfaces directly on compiler symbols, but primary motivation for this is performance, i.e. reduction of allocations. Support for identity conversion between symbols and Cci instances throughout the code base was not part of the design. Instead the intent was that symbols go through an explicit “translation” process, which is responsible for deciding if it is appropriate to return the symbol itself, or an appropriate wrapper should be created. Unfortunately, there was no mechanism of enforcement for the intent and it was violated on multiple occasions. Even, when identity conversion outside of “translation” process was appropriate, those places in code were hard to spot because they all looked like a regular explicit/implicit conversions or type checks, which were always succeeding at runtime because instances indeed were identity convertible. Another issue caused by the same optimization was around comparing Cci instances in various components. Majority of comparisons were simply relying on default object equality of Cci instances, which effectively often was default symbol equality, or a reference equality, when a wrapper was created by “translation” process. However, the default symbol equality wasn’t specifically designed to be appropriate for all those components. In fact, different components have different requirements for equality implementation. In an attempt to address the issues outlined above, the following changes are made: 1) Symbols no longer implement Cci interfaces directly for DEBUG configuration (at the moment only for C# symbols, VB will follow). This prevents ability to implicitly/explicitly use identity conversions and type checks. 2) A helper APIs are added that allow explicit transition between symbols and Cci instances, that works equally well for all build configurations. They allow relatively easy to spot places where a transition between layers occurs, even when identity of objects doesn’t change in the process. 3) Use of default equality for Cci entities is disallowed. That is achieved by throwing from Equals/GetHashCode overrides. All components relying on comparison between Cci entities should explicitly use appropriate comparers. Related to #45758.
-
由 Sam Harwell 提交于
-
由 Sam Harwell 提交于
-
由 Sam Harwell 提交于
-
由 Tomáš Matoušek 提交于
* Change Microsoft.CodeAnalysis.Test.Utilities solution folder * Remove workaround for fixed NuGet bug. * Remove unnecessary project references * Rename Roslyn.Services.UnitTests.Utilities to Microsoft.CodeAnalysis.Workspaces.Test.Utilities * Remove unneccessary project references * Remove unnecessary references * Rename Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities to Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities2 * Rename Roslyn.Services.Test.Utilities to Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities * Fixes * Update Compilers.sln
-
由 Chris Sienkiewicz 提交于
-
- 27 10月, 2020 6 次提交
-
-
由 Charles Stoner 提交于
-
由 Sam Harwell 提交于
-
由 Fredric Silberberg 提交于
We noticed some perf regressions when SymbolDisplayVisitor was calling IsRecord for a lot of types. This attempts to reduce the memory impact by having PEMethodSymbol.IsRecord first check to see if any member is named <Clone>$, and not loading the full signatures of all members.
-
由 Jared Parsons 提交于
-
由 Jared Parsons 提交于
Co-authored-by: NRikki Gibson <rikkigibson@gmail.com>
-
由 Jared Parsons 提交于
The `GetOutputFileName` consumption code requires the return to be non-null yet the implementation appeared to allow `null` returns. This change flips the return to be `string!` as well as reworking the code a bit to make the guarantees the compilers are providing much clearer
-
- 26 10月, 2020 1 次提交
-
-
由 Charles Stoner 提交于
-
- 25 10月, 2020 1 次提交
-
-
由 Kai Jellinghaus 提交于
-
- 24 10月, 2020 7 次提交
-
-
由 Sam Harwell 提交于
-
由 Julien Couvreur 提交于
-
由 Sam Harwell 提交于
-
由 Tomas Matousek 提交于
-
由 Tomas Matousek 提交于
-
由 Tomas Matousek 提交于
-
由 Tomas Matousek 提交于
-
- 23 10月, 2020 3 次提交
-
-
由 Allison Chou 提交于
-
由 Allison Chou 提交于
-
由 Julien Couvreur 提交于
-
- 22 10月, 2020 1 次提交
-
-
由 Cyrus Najmabadi 提交于
-
- 20 10月, 2020 7 次提交
-
-
由 Charles Stoner 提交于
-
由 Allison Chou 提交于
-
由 Rastislav Novotný 提交于
-
由 Youssef Victor 提交于
Co-authored-by: NJulien Couvreur <jcouv@users.noreply.github.com>
-
由 Tomáš Matoušek 提交于
* Add ValueTaskFactory helpers * Update src/Compilers/Core/Portable/InternalUtilities/ValueTaskFactory.cs
-
由 Rikki Gibson 提交于
-
由 Manish Vasani 提交于
-
- 17 10月, 2020 4 次提交
-
-
由 Julien Couvreur 提交于
-
由 Tomáš Matoušek 提交于
-
由 Youssef Victor 提交于
-
由 Charles Stoner 提交于
-