Add ImmutableCollectionsMarshal type and AsImmutableArray/AsArray APIs (#85526)
authorSergio Pedri <sergio0694@live.com>
Fri, 28 Apr 2023 16:38:49 +0000 (09:38 -0700)
committerGitHub <noreply@github.com>
Fri, 28 Apr 2023 16:38:49 +0000 (12:38 -0400)
commitf1c9771a9b8a9cf40e0cca6163a2706bcb6dc033
tree9d3363443f2661962c899642e8cbdce7c438b8f9
parentd1209554328d7514113805be26d954c560eb83c8
Add ImmutableCollectionsMarshal type and AsImmutableArray/AsArray APIs (#85526)

* Add ImmutableCollectionsMarshal type

* Add ImmutableCollectionsMarshal to ref assembly

* Add ImmutableCollectionsMarshal unit tests

* Use ImmutableCollectionsMarshal in System.Reflection.Metadata

* Remove ImmutableArrayFactory and use new API

* Leverage internal members in ImmutableCollectionsMarshal

* Remove leftover unsafe modifier in ImmutableCollectionsMarshal
18 files changed:
src/libraries/System.Collections.Immutable/ref/System.Collections.Immutable.cs
src/libraries/System.Collections.Immutable/src/System.Collections.Immutable.csproj
src/libraries/System.Collections.Immutable/src/System/Collections/Frozen/FrozenDictionary.cs
src/libraries/System.Collections.Immutable/src/System/Collections/Frozen/FrozenSet.cs
src/libraries/System.Collections.Immutable/src/System/Collections/Frozen/ImmutableArrayFactory.cs [deleted file]
src/libraries/System.Collections.Immutable/src/System/Runtime.InteropServices/ImmutableCollectionsMarshal.cs [new file with mode: 0644]
src/libraries/System.Collections.Immutable/tests/ImmutableCollectionsMarshal.cs [new file with mode: 0644]
src/libraries/System.Collections.Immutable/tests/System.Collections.Immutable.Tests.csproj
src/libraries/System.Reflection.Metadata/src/System.Reflection.Metadata.csproj
src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/MemoryBlocks/ByteArrayMemoryProvider.cs
src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/Utilities/ImmutableByteArrayInterop.cs [deleted file]
src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobBuilder.cs
src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/IL/MethodBodyBlock.cs
src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs
src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEReader.cs
src/libraries/System.Reflection.Metadata/tests/System.Reflection.Metadata.Tests.csproj
src/libraries/System.Reflection.Metadata/tests/TestUtilities/PinnedBlob.cs
src/libraries/System.Reflection.Metadata/tests/Utilities/ImmutableByteArrayInteropTest.cs [deleted file]