From b07696f8b40a605043f81868a4d7be604359da7e Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 10 Jul 2019 21:14:35 -0700 Subject: [PATCH] Simplify --- .../SymbolKey/SymbolKey.PooledArrayBuilder.cs | 58 +++++++++++++++++++ .../Core/Portable/SymbolKey/SymbolKey.cs | 48 --------------- 2 files changed, 58 insertions(+), 48 deletions(-) create mode 100644 src/Workspaces/Core/Portable/SymbolKey/SymbolKey.PooledArrayBuilder.cs diff --git a/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.PooledArrayBuilder.cs b/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.PooledArrayBuilder.cs new file mode 100644 index 00000000000..cd0db8d9357 --- /dev/null +++ b/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.PooledArrayBuilder.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Collections.Generic; +using System.Collections.Immutable; +using Microsoft.CodeAnalysis.PooledObjects; + +namespace Microsoft.CodeAnalysis +{ + internal partial struct SymbolKey + { + private ref struct PooledArrayBuilder + { + public readonly ArrayBuilder Builder; + + private PooledArrayBuilder(ArrayBuilder builder) + => Builder = builder; + + public int Count => Builder.Count; + public T this[int index] => Builder[index]; + + public void AddIfNotNull(T value) + { + if (value != null) + { + Builder.Add(value); + } + } + + public void Dispose() => Builder.Free(); + + public ImmutableArray ToImmutable() => Builder.ToImmutable(); + + public ArrayBuilder.Enumerator GetEnumerator() => Builder.GetEnumerator(); + + public static PooledArrayBuilder GetInstance() + => new PooledArrayBuilder(ArrayBuilder.GetInstance()); + + public static PooledArrayBuilder GetInstance(int capacity) + => new PooledArrayBuilder(ArrayBuilder.GetInstance(capacity)); + + public void AddValuesIfNotNull(IEnumerable values) + { + foreach (var value in values) + { + AddIfNotNull(value); + } + } + + public void AddValuesIfNotNull(ImmutableArray values) + { + foreach (var value in values) + { + AddIfNotNull(value); + } + } + } + } +} diff --git a/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.cs b/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.cs index 1df3e11138c..7537214d1a9 100644 --- a/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.cs +++ b/src/Workspaces/Core/Portable/SymbolKey/SymbolKey.cs @@ -5,7 +5,6 @@ using System.Collections.Immutable; using System.Diagnostics; using System.Threading; -using Microsoft.CodeAnalysis.PooledObjects; using Microsoft.CodeAnalysis.Shared.Utilities; namespace Microsoft.CodeAnalysis @@ -247,52 +246,5 @@ private static string GetName(string metadataName) return true; } - - private ref struct PooledArrayBuilder - { - public readonly ArrayBuilder Builder; - - private PooledArrayBuilder(ArrayBuilder builder) - => Builder = builder; - - public int Count => Builder.Count; - public T this[int index] => Builder[index]; - - public void AddIfNotNull(T value) - { - if (value != null) - { - Builder.Add(value); - } - } - - public void Dispose() => Builder.Free(); - - public ImmutableArray ToImmutable() => Builder.ToImmutable(); - - public ArrayBuilder.Enumerator GetEnumerator() => Builder.GetEnumerator(); - - public static PooledArrayBuilder GetInstance() - => new PooledArrayBuilder(ArrayBuilder.GetInstance()); - - public static PooledArrayBuilder GetInstance(int capacity) - => new PooledArrayBuilder(ArrayBuilder.GetInstance(capacity)); - - public void AddValuesIfNotNull(IEnumerable values) - { - foreach (var value in values) - { - AddIfNotNull(value); - } - } - - public void AddValuesIfNotNull(ImmutableArray values) - { - foreach (var value in values) - { - AddIfNotNull(value); - } - } - } } } -- GitLab