Skip to content

Commit 5b2c379

Browse files
authored
Move more collections and collection related extensions to MS.CA.Collections source package (#78379)
1 parent 93fe2ee commit 5b2c379

File tree

59 files changed

+59
-65
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+59
-65
lines changed

Roslyn.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2152,6 +2152,7 @@ Global
21522152
src\RoslynAnalyzers\Utilities\Compiler\Analyzer.Utilities.projitems*{0a1267e9-52ff-b8de-8522-802be55f41da}*SharedItemsImports = 5
21532153
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis.Utilities.projitems*{0a1267e9-52ff-b8de-8522-802be55f41da}*SharedItemsImports = 5
21542154
src\Dependencies\Contracts\Microsoft.CodeAnalysis.Contracts.projitems*{0c2e1633-1462-4712-88f4-a0c945bad3a8}*SharedItemsImports = 5
2155+
src\Dependencies\PooledObjects\Microsoft.CodeAnalysis.PooledObjects.projitems*{0c2e1633-1462-4712-88f4-a0c945bad3a8}*SharedItemsImports = 5
21552156
src\Analyzers\Core\CodeFixes\CodeFixes.projitems*{1b6c4a1a-413b-41fb-9f85-5c09118e541b}*SharedItemsImports = 13
21562157
src\Compilers\Core\AnalyzerDriver\AnalyzerDriver.projitems*{1ee8cad3-55f9-4d91-96b2-084641da9a6c}*SharedItemsImports = 5
21572158
src\Dependencies\CodeAnalysis.Debugging\Microsoft.CodeAnalysis.Debugging.projitems*{1ee8cad3-55f9-4d91-96b2-084641da9a6c}*SharedItemsImports = 5

src/Compilers/Core/Portable/InternalUtilities/EnumerableExtensions.cs renamed to src/Dependencies/Collections/Extensions/EnumerableExtensions.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
using System.Threading.Tasks;
1515
using Microsoft.CodeAnalysis;
1616
using Microsoft.CodeAnalysis.PooledObjects;
17-
using Roslyn.Utilities;
1817

1918
namespace Roslyn.Utilities
2019
{
@@ -791,8 +790,7 @@ internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IE
791790
var groups = data.GroupBy(keySelector, comparer);
792791
foreach (var grouping in groups)
793792
{
794-
var items = grouping.AsImmutable();
795-
dictionary.Add(grouping.Key, items);
793+
dictionary.Add(grouping.Key, [.. grouping]);
796794
}
797795

798796
return dictionary;
@@ -861,8 +859,6 @@ internal static class EnumerableExtensions
861859
{
862860
public static bool SequenceEqual<T>(this IEnumerable<T>? first, IEnumerable<T>? second, Func<T, T, bool> comparer)
863861
{
864-
RoslynDebug.Assert(comparer != null);
865-
866862
if (first == second)
867863
{
868864
return true;

src/Compilers/Core/Portable/Collections/ImmutableArrayExtensions.cs renamed to src/Dependencies/Collections/Extensions/ImmutableArrayExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
using System.Threading.Tasks;
1515
using Microsoft.CodeAnalysis.PooledObjects;
1616
using Microsoft.CodeAnalysis.Collections;
17-
using Microsoft.CodeAnalysis.Shared.Collections;
1817
using Roslyn.Utilities;
18+
using Microsoft.CodeAnalysis.Shared.Collections;
1919

2020
#if DEBUG
2121
using System.Linq;

src/Dependencies/Collections/Microsoft.CodeAnalysis.Collections.Package.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
</PropertyGroup>
2323
<ItemGroup>
2424
<PackageReference Include="System.Collections.Immutable" />
25+
<PackageReference Include="System.Threading.Tasks.Extensions" />
2526
</ItemGroup>
2627
<ItemGroup>
2728
<EmbeddedResource Update="Internal\Strings.resx" GenerateSource="true" ClassName="Microsoft.CodeAnalysis.Collections.Internal.SR" />
@@ -51,4 +52,5 @@
5152
</Target>
5253

5354
<Import Project="..\Contracts\Microsoft.CodeAnalysis.Contracts.projitems" Label="Shared" />
55+
<Import Project="..\PooledObjects\Microsoft.CodeAnalysis.PooledObjects.projitems" Label="Shared" />
5456
</Project>

src/Dependencies/Collections/Microsoft.CodeAnalysis.Collections.projitems

Lines changed: 54 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,40 @@
1010
<Import_RootNamespace>Microsoft.CodeAnalysis.Collections</Import_RootNamespace>
1111
</PropertyGroup>
1212
<ItemGroup>
13-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary.cs" />
14-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+Builder+KeyCollection.cs" />
15-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+Builder+PrivateMarshal.cs" />
16-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+Builder+ValueCollection.cs" />
17-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+Builder.cs" />
18-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+Enumerator.cs" />
19-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+KeyCollection+Enumerator.cs" />
20-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+KeyCollection.cs" />
21-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+PrivateMarshal.cs" />
22-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+ValueBuilder.cs" />
23-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+ValueCollection+Enumerator.cs" />
24-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2+ValueCollection.cs" />
25-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedDictionary`2.cs" />
26-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedHashSet.cs" />
27-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedHashSet`1+Builder.cs" />
28-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedHashSet`1+Enumerator.cs" />
29-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedHashSet`1+PrivateMarshal.cs" />
30-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedHashSet`1+ValueBuilder.cs" />
31-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedHashSet`1.cs" />
32-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedList.cs" />
33-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedListExtensions.cs" />
34-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedList`1+Builder.cs" />
35-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedList`1+Enumerator.cs" />
36-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedList`1+PrivateMarshal.cs" />
37-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedList`1+ValueBuilder.cs" />
38-
<Compile Include="$(MSBuildThisFileDirectory)ImmutableSegmentedList`1.cs" />
13+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary.cs" />
14+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+Builder+KeyCollection.cs" />
15+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+Builder+PrivateMarshal.cs" />
16+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+Builder+ValueCollection.cs" />
17+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+Builder.cs" />
18+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+Enumerator.cs" />
19+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+KeyCollection+Enumerator.cs" />
20+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+KeyCollection.cs" />
21+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+PrivateMarshal.cs" />
22+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs" />
23+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+ValueCollection+Enumerator.cs" />
24+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2+ValueCollection.cs" />
25+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedDictionary`2.cs" />
26+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedHashSet.cs" />
27+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedHashSet`1+Builder.cs" />
28+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedHashSet`1+Enumerator.cs" />
29+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedHashSet`1+PrivateMarshal.cs" />
30+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs" />
31+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedHashSet`1.cs" />
32+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedList.cs" />
33+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedListExtensions.cs" />
34+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedList`1+Builder.cs" />
35+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedList`1+Enumerator.cs" />
36+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedList`1+PrivateMarshal.cs" />
37+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedList`1+ValueBuilder.cs" />
38+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\ImmutableSegmentedList`1.cs" />
39+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\SegmentedArray.cs" />
40+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\SegmentedArray`1+PrivateMarshal.cs" />
41+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\SegmentedArray`1.cs" />
42+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\SegmentedCollectionsMarshal.cs" />
43+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\SegmentedDictionary`2+PrivateMarshal.cs" />
44+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\SegmentedDictionary`2.cs" />
45+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\SegmentedHashSet`1.cs" />
46+
<Compile Include="$(MSBuildThisFileDirectory)Segmented\SegmentedList`1.cs" />
3947
<Compile Include="$(MSBuildThisFileDirectory)Internal\ArraySortHelper.cs" />
4048
<Compile Include="$(MSBuildThisFileDirectory)Internal\BitHelper.cs" />
4149
<Compile Include="$(MSBuildThisFileDirectory)Internal\HashHelpers.cs" />
@@ -55,14 +63,26 @@
5563
<Compile Include="$(MSBuildThisFileDirectory)Internal\ThrowHelper.cs" />
5664
<Compile Include="$(MSBuildThisFileDirectory)RoslynEnumerable.cs" />
5765
<Compile Include="$(MSBuildThisFileDirectory)RoslynImmutableInterlocked.cs" />
58-
<Compile Include="$(MSBuildThisFileDirectory)SegmentedArray.cs" />
59-
<Compile Include="$(MSBuildThisFileDirectory)SegmentedArray`1+PrivateMarshal.cs" />
60-
<Compile Include="$(MSBuildThisFileDirectory)SegmentedArray`1.cs" />
61-
<Compile Include="$(MSBuildThisFileDirectory)SegmentedCollectionsMarshal.cs" />
62-
<Compile Include="$(MSBuildThisFileDirectory)SegmentedDictionary`2+PrivateMarshal.cs" />
63-
<Compile Include="$(MSBuildThisFileDirectory)SegmentedDictionary`2.cs" />
64-
<Compile Include="$(MSBuildThisFileDirectory)SegmentedHashSet`1.cs" />
65-
<Compile Include="$(MSBuildThisFileDirectory)SegmentedList`1.cs" />
66+
<Compile Include="$(MSBuildThisFileDirectory)OneOrMany.cs" />
67+
<Compile Include="$(MSBuildThisFileDirectory)TemporaryArray`1.cs" />
68+
<Compile Include="$(MSBuildThisFileDirectory)TemporaryArrayExtensions.cs" />
69+
<Compile Include="$(MSBuildThisFileDirectory)Extensions\EnumerableExtensions.cs" />
70+
<Compile Include="$(MSBuildThisFileDirectory)Extensions\ImmutableArrayExtensions.cs" />
71+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.cs" />
72+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Empty.Collection.cs" />
73+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Empty.cs" />
74+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Empty.Dictionary.cs" />
75+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Empty.Enumerable.cs" />
76+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Empty.Enumerator.cs" />
77+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Empty.Enumerator`1.cs" />
78+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Empty.List.cs" />
79+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Empty.Set.cs" />
80+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.ReadOnly.Collection.cs" />
81+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.ReadOnly.Enumerable`1.cs" />
82+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.ReadOnly.Enumerable`2.cs" />
83+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.ReadOnly.Set.cs" />
84+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Singleton.Collection`1.cs" />
85+
<Compile Include="$(MSBuildThisFileDirectory)Specialized\SpecializedCollections.Singleton.Enumerator`1.cs" />
6686
</ItemGroup>
6787
<ItemGroup>
6888
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Internal\Strings.resx" GenerateSource="true" ClassName="Microsoft.CodeAnalysis.Collections.Internal.SR" ManifestResourceName="Microsoft.CodeAnalysis.Internal.Strings" />

src/Compilers/Core/Portable/InternalUtilities/OneOrMany.cs renamed to src/Dependencies/Collections/OneOrMany.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
using System.Linq;
1111
using Microsoft.CodeAnalysis;
1212
using Microsoft.CodeAnalysis.PooledObjects;
13-
using Microsoft.CodeAnalysis.Shared.Collections;
1413

1514
namespace Roslyn.Utilities
1615
{

0 commit comments

Comments
 (0)