CommandLine\AnalyzerConfigSet.cs (21)
128var sortedAnalyzerConfigs = ArrayBuilder<AnalyzerConfig>.GetInstance(analyzerConfigs.Count);
141var allMatchers = ArrayBuilder<ImmutableArray<SectionNameMatcher?>>.GetInstance(_analyzerConfigs.Length);
147var builder = ArrayBuilder<SectionNameMatcher?>.GetInstance(config.NamedSections.Length);
245var diagnosticBuilder = ArrayBuilder<Diagnostic>.GetInstance();
373var diagnosticBuilder = ArrayBuilder<Diagnostic>.GetInstance();
395private static void ParseSectionOptions(Section section, TreeOptions.Builder treeBuilder, AnalyzerOptions.Builder analyzerBuilder, ArrayBuilder<Diagnostic> diagnosticBuilder, string analyzerConfigPath, ConcurrentDictionary<ReadOnlyMemory<char>, string> diagIdCache)
450/// <param name="analyzerConfigs">An <see cref="ArrayBuilder{T}"/> of <see cref="AnalyzerConfig"/> containing a mix of regular and unmerged partial global configs</param>
453internal static GlobalAnalyzerConfig MergeGlobalConfigs(ArrayBuilder<AnalyzerConfig> analyzerConfigs, out ImmutableArray<Diagnostic> diagnostics)
478private ImmutableDictionary<string, ImmutableDictionary<string, (int globalLevel, ArrayBuilder<string> configPaths)>.Builder>.Builder? _duplicates;
488_duplicates = ImmutableDictionary.CreateBuilder<string, ImmutableDictionary<string, (int, ArrayBuilder<string>)>.Builder>(Section.NameEqualityComparer);
524foreach ((var keyName, (_, var configPaths)) in keys)
540ArrayBuilder<Section> namedSectionBuilder = new ArrayBuilder<Section>(_values.Count);
582(int globalLevel, ArrayBuilder<string> configPaths) duplicateValue = default;
608duplicateDict = ImmutableDictionary.CreateBuilder<string, (int, ArrayBuilder<string>)>(Section.PropertiesKeyComparer);
613ArrayBuilder<string> configList = duplicateValue.configPaths ?? ArrayBuilder<string>.GetInstance();
CommandLine\CommandLineParser.cs (21)
223var parts = ArrayBuilder<ReadOnlyMemory<char>>.GetInstance();
356var pathMapBuilder = ArrayBuilder<KeyValuePair<string, string>>.GetInstance();
402var result = ArrayBuilder<string>.GetInstance();
503ArrayBuilder<string> processedArgs,
512var args = ArrayBuilder<string>.GetInstance();
842var parts = ArrayBuilder<ReadOnlyMemory<char>>.GetInstance();
1043var builder = ArrayBuilder<ReadOnlyMemory<char>>.GetInstance();
1048internal static void ParseSeparatedPathsEx(ReadOnlyMemory<char>? str, ArrayBuilder<ReadOnlyMemory<char>> builder)
1060internal static void ParseSeparatedStrings(ReadOnlyMemory<char>? strMemory, char[] separators, bool removeEmptyEntries, ArrayBuilder<ReadOnlyMemory<char>> builder)
1131internal void ParseFileArgument(ReadOnlyMemory<char> arg, string? baseDirectory, ArrayBuilder<string> filePathBuilder, IList<Diagnostic> errors)
1163private protected void ParseSeparatedFileArgument(ReadOnlyMemory<char> value, string? baseDirectory, ArrayBuilder<string> filePathBuilder, IList<Diagnostic> errors)
1165var pathBuilder = ArrayBuilder<ReadOnlyMemory<char>>.GetInstance();
1181var builder = ArrayBuilder<string>.GetInstance();
DiagnosticAnalyzer\AnalyzerDriver.cs (39)
900var builder = ArrayBuilder<(DiagnosticDescriptor Descriptor, DiagnosticDescriptorErrorLoggerInfo Info)>.GetInstance();
1064var builder = ArrayBuilder<Diagnostic>.GetInstance(reportedDiagnostics.Length);
1098var tasks = ArrayBuilder<Task>.GetInstance();
1153var programmaticSuppressionsBuilder = PooledDictionary<Diagnostic, ArrayBuilder<Suppression>>.GetInstance();
1157if (!programmaticSuppressionsBuilder.TryGetValue(programmaticSuppression.SuppressedDiagnostic, out var array))
1159array = ArrayBuilder<Suppression>.GetInstance();
1327var declarationInfoBuilder = ArrayBuilder<DeclarationInfo>.GetInstance();
1454var builder = ArrayBuilder<(DiagnosticAnalyzer, ImmutableArray<ImmutableArray<SymbolAnalyzerAction>>)>.GetInstance();
1456var actionsByKindBuilder = ArrayBuilder<ArrayBuilder<SymbolAnalyzerAction>>.GetInstance();
1468actionsByKindBuilder.Add(ArrayBuilder<SymbolAnalyzerAction>.GetInstance());
1486var builder = ArrayBuilder<(DiagnosticAnalyzer, ImmutableArray<TAnalyzerAction>)>.GetInstance();
1827var completedAnalyzers = ArrayBuilder<DiagnosticAnalyzer>.GetInstance();
2543var builder = ArrayBuilder<DeclarationInfo>.GetInstance();
2555private static void ComputeDeclarationsInNode(SemanticModel semanticModel, ISymbol declaredSymbol, SyntaxNode declaringReferenceSyntax, SyntaxNode topmostNodeForAnalysis, ArrayBuilder<DeclarationInfo> builder, CancellationToken cancellationToken)
2605var nodesToAnalyze = declarationAnalysisData.DescendantNodesToAnalyze;
2611void executeNodeActionsByKind(ArrayBuilder<SyntaxNode> nodesToAnalyze, GroupedAnalyzerActions groupedActions, bool arePerSymbolActions)
2644var filteredNodesToAnalyze = ArrayBuilder<SyntaxNode>.GetInstance(nodesToAnalyze.Count);
2665ArrayBuilder<SyntaxNode> filteredNodesToAnalyze)
2684var executableCodeBlockActionsBuilder = ArrayBuilder<ExecutableCodeBlockAnalyzerActions>.GetInstance();
2784void executeOperationsBlockActions(ImmutableArray<IOperation> operationBlocksToAnalyze, ImmutableArray<IOperation> operationsToAnalyze, ArrayBuilder<ExecutableCodeBlockAnalyzerActions> codeBlockActions)
2812void executeCodeBlockActions(ImmutableArray<SyntaxNode> executableCodeBlocks, ArrayBuilder<ExecutableCodeBlockAnalyzerActions> codeBlockActions)
2843ArrayBuilder<ExecutableCodeBlockAnalyzerActions> builder)
2861ArrayBuilder<SyntaxNode> nodesToAnalyze,
2937ArrayBuilder<IOperation> operationBlocksToAnalyze = ArrayBuilder<IOperation>.GetInstance();
2953ArrayBuilder<IOperation> operationsToAnalyze = ArrayBuilder<IOperation>.GetInstance();
Emit\EditAndContinue\DeltaMetadataWriter.cs (30)
36private readonly IReadOnlyDictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>> _deletedMethodDefs;
54private readonly ArrayBuilder<int> _customAttributeRowIds;
114_customAttributeRowIds = ArrayBuilder<int>.GetInstance();
287public void GetUpdatedMethodTokens(ArrayBuilder<MethodDefinitionHandle> methods)
302public void GetChangedTypeTokens(ArrayBuilder<TypeDefinitionHandle> types)
505internal static IReadOnlyDictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>> CreateDeletedMethodsDefs(EmitContext context, SymbolChanges changes)
507var result = new Dictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>>(ReferenceEqualityComparer.Instance);
521var deletedMethodDefs = getDeletedMethodDefs(typeDef);
533ArrayBuilder<IMethodDefinition>? getDeletedMethodDefs(ITypeDefinition typeDef)
541var newMethodDefs = ArrayBuilder<IMethodDefinition>.GetInstance();
669if (_deletedMethodDefs.TryGetValue(typeDef, out var newMethodDefs))
691var implementingMethods = ArrayBuilder<int>.GetInstance();
868var encInfos = ArrayBuilder<EncLocalInfo>.GetInstance();
1086var paramEncMapRows = ArrayBuilder<int>.GetInstance();
1095private void PopulateEncLogTableRows(ImmutableArray<int> rowCounts, ArrayBuilder<int> paramEncMapRows)
1191private void PopulateEncLogTableParameters(ArrayBuilder<int> paramEncMapRows)
1250private void PopulateEncMapTableRows(ImmutableArray<int> rowCounts, ArrayBuilder<int> paramEncMapRows)
1256var tokens = ArrayBuilder<EntityHandle>.GetInstance();
1333var debugTokens = ArrayBuilder<EntityHandle>.GetInstance();
1400ArrayBuilder<EntityHandle> builder,
1408private static void AddReferencedTokens(ArrayBuilder<EntityHandle> tokens, TableIndex tableIndex, int firstRowId, int nTokens)
1416private static void AddDefinitionTokens<T>(ArrayBuilder<EntityHandle> tokens, TableIndex tableIndex, DefinitionIndex<T> index)
1425private static void AddRowNumberTokens(ArrayBuilder<EntityHandle> tokens, TableIndex tableIndex, ArrayBuilder<int> rowNumbers)
Operations\ControlFlowGraphBuilder.cs (78)
33private readonly ArrayBuilder<BasicBlockBuilder> _blocks;
41private readonly ArrayBuilder<(EvalStackFrame? frameOpt, IOperation? operationOpt)> _evalStack;
63private ControlFlowGraphBuilder(Compilation compilation, CaptureIdDispenser? captureIdDispenser, ArrayBuilder<BasicBlockBuilder> blocks)
70_evalStack = ArrayBuilder<(EvalStackFrame? frameOpt, IOperation? operationOpt)>.GetInstance();
113var blocks = ArrayBuilder<BasicBlockBuilder>.GetInstance();
149var localFunctions = ArrayBuilder<IMethodSymbol>.GetInstance();
172private static ImmutableArray<BasicBlock> ToImmutableBlocks(ArrayBuilder<BasicBlockBuilder> blockBuilders)
174var builder = ArrayBuilder<BasicBlock>.GetInstance(blockBuilders.Count);
223private static void MarkReachableBlocks(ArrayBuilder<BasicBlockBuilder> blocks)
240ArrayBuilder<BasicBlockBuilder> blocks,
243ArrayBuilder<BasicBlockBuilder>? outOfRangeBlocksToVisit,
249var toVisit = ArrayBuilder<BasicBlockBuilder>.GetInstance();
494private static void Pack(ArrayBuilder<BasicBlockBuilder> blocks, RegionBuilder root, PooledDictionary<BasicBlockBuilder, RegionBuilder> regionMap)
511private static bool PackRegions(RegionBuilder root, ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<BasicBlockBuilder, RegionBuilder> regionMap)
614private static void MergeSubRegionAndFree(RegionBuilder subRegion, ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<BasicBlockBuilder, RegionBuilder> regionMap, bool canHaveEmptyRegion = false)
670private static bool PackBlocks(ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<BasicBlockBuilder, RegionBuilder> regionMap)
672ArrayBuilder<RegionBuilder>? fromCurrent = null;
673ArrayBuilder<RegionBuilder>? fromDestination = null;
674ArrayBuilder<RegionBuilder>? fromPredecessor = null;
675ArrayBuilder<BasicBlockBuilder>? predecessorsBuilder = null;
893predecessorsBuilder = ArrayBuilder<BasicBlockBuilder>.GetInstance();
1101bool checkBranchesFromPredecessors(ArrayBuilder<BasicBlockBuilder> predecessors, RegionBuilder currentRegion, RegionBuilder? destinationRegionOpt)
1148void collectAncestorsAndSelf([DisallowNull] RegionBuilder? from, [NotNull] ref ArrayBuilder<RegionBuilder>? builder)
1152builder = ArrayBuilder<RegionBuilder>.GetInstance();
1170int getIndexOfLastLeftRegion(ArrayBuilder<RegionBuilder> from, ArrayBuilder<RegionBuilder> to)
1186private static void CheckUnresolvedBranches(ArrayBuilder<BasicBlockBuilder> blocks, PooledDictionary<ILabelSymbol, BasicBlockBuilder>? labeledBlocks)
2007var builder = ArrayBuilder<T>.GetInstance(numElements);
2047ArrayBuilder<IInterpolatedStringHandlerCreationOperation>? interpolatedStringBuilder = null;
2055interpolatedStringBuilder ??= ArrayBuilder<IInterpolatedStringHandlerCreationOperation>.GetInstance();
2204var stack = ArrayBuilder<(IBinaryOperation, EvalStackFrame)>.GetInstance();
2794var stack = ArrayBuilder<(IOperation? condition, BasicBlockBuilder dest, bool jumpIfTrue)>.GetInstance();
3369var operations = ArrayBuilder<IOperation>.GetInstance();
3741var predecessors = ArrayBuilder<BasicBlockBuilder>.GetInstance();
3969var resourceQueue = ArrayBuilder<(IVariableDeclarationOperation, IVariableDeclaratorOperation)>.GetInstance(declarationGroup.Declarations.Length);
4008void processQueue(ArrayBuilder<(IVariableDeclarationOperation, IVariableDeclaratorOperation)>? resourceQueueOpt)
4030void processResource(IOperation resource, ArrayBuilder<(IVariableDeclarationOperation, IVariableDeclaratorOperation)>? resourceQueueOpt)
4793var builder = ArrayBuilder<IOperation>.GetInstance(--parametersCount, fillWithValue: null!);
4806var builder = ArrayBuilder<IArgumentOperation>.GetInstance(parametersCount, fillWithValue: null!);
6386var initializerBuilder = ArrayBuilder<IOperation>.GetInstance(operation.Initializers.Length);
6519var builder = ArrayBuilder<IOperation>.GetInstance(initializer.ElementValues.Length);
6697var elementBuilder = ArrayBuilder<IOperation>.GetInstance(numElements);
6849var appendCalls = ArrayBuilder<IInterpolatedStringAppendOperation>.GetInstance();
6892static void collectAppendCalls(IInterpolatedStringHandlerCreationOperation creation, ArrayBuilder<IInterpolatedStringAppendOperation> appendCalls)
6901var stack = ArrayBuilder<IInterpolatedStringAdditionOperation>.GetInstance();
6933static void appendStringCalls(IInterpolatedStringOperation interpolatedString, ArrayBuilder<IInterpolatedStringAppendOperation> appendCalls)
6941static void pushLeftNodes(IInterpolatedStringAdditionOperation addition, ArrayBuilder<IInterpolatedStringAdditionOperation> stack)
7045var partsBuilder = ArrayBuilder<IInterpolatedStringContentOperation>.GetInstance(operation.Parts.Length);
7247var builder = ArrayBuilder<IArgumentOperation>.GetInstance(propertySymbol.Parameters.Length);
7445var children = ArrayBuilder<IOperation>.GetInstance();
7574var stack = ArrayBuilder<IBinaryPatternOperation>.GetInstance();
7818ArrayBuilder<IOperation> statementsBuilder = ArrayBuilder<IOperation>.GetInstance(statements.Length);
7819ArrayBuilder<IOperation>? localFunctionsBuilder = null;
7825(localFunctionsBuilder ??= ArrayBuilder<IOperation>.GetInstance()).Add(statement);
7976var initializerBuilder = ArrayBuilder<IOperation>.GetInstance(initializers.Length);
SourceGeneration\ISyntaxHelper.cs (6)
20void AddAttributeTargets(SyntaxNode node, ArrayBuilder<SyntaxNode> targets);
32void AddAliases(GreenNode node, ArrayBuilder<(string aliasName, string symbolName)> aliases, bool global);
33void AddAliases(CompilationOptions options, ArrayBuilder<(string aliasName, string symbolName)> aliases);
53public abstract void AddAttributeTargets(SyntaxNode node, ArrayBuilder<SyntaxNode> targets);
57public abstract void AddAliases(GreenNode node, ArrayBuilder<(string aliasName, string symbolName)> aliases, bool global);
58public abstract void AddAliases(CompilationOptions options, ArrayBuilder<(string aliasName, string symbolName)> aliases);
src\Dependencies\PooledObjects\ArrayBuilder.cs (34)
16[DebuggerTypeProxy(typeof(ArrayBuilder<>.DebuggerProxy))]
31private readonly ArrayBuilder<T> _builder;
33public DebuggerProxy(ArrayBuilder<T> builder)
58private readonly ObjectPool<ArrayBuilder<T>>? _pool;
69private ArrayBuilder(ObjectPool<ArrayBuilder<T>> pool)
395var tmp = ArrayBuilder<U>.GetInstance(Count);
443public void FreeAll(Func<T, ArrayBuilder<T>?> getNested)
489private static readonly ObjectPool<ArrayBuilder<T>> s_poolInstance = CreatePool();
490public static ArrayBuilder<T> GetInstance()
492var builder = s_poolInstance.Allocate();
497public static ArrayBuilder<T> GetInstance(int capacity)
499var builder = GetInstance();
504public static ArrayBuilder<T> GetInstance(int capacity, T fillWithValue)
506var builder = GetInstance();
517public static ObjectPool<ArrayBuilder<T>> CreatePool()
522public static ObjectPool<ArrayBuilder<T>> CreatePool(int size)
524ObjectPool<ArrayBuilder<T>>? pool = null;
525pool = new ObjectPool<ArrayBuilder<T>>(() => new ArrayBuilder<T>(pool!), size);
564var accumulator = new Dictionary<K, ArrayBuilder<T>>(Count, comparer);
569if (!accumulator.TryGetValue(key, out var bucket))
571bucket = ArrayBuilder<T>.GetInstance();
589public void AddRange(ArrayBuilder<T> items)
594public void AddRange<U>(ArrayBuilder<U> items, Func<U, T> selector)
602public void AddRange<U>(ArrayBuilder<U> items) where U : T
607public void AddRange<U>(ArrayBuilder<U> items, int start, int length) where U : T
733var result = ArrayBuilder<S>.GetInstance(Count);
823var builder = ArrayBuilder<TResult>.GetInstance(Count);
861var builder = ArrayBuilder<TResult>.GetInstance(Count);
899var builder = ArrayBuilder<TResult>.GetInstance(Count);
FlowAnalysis\NullableWalker.cs (37)
253/// The delegate is invoked by <see cref="VisitConversion(BoundConversion, BoundExpression, Conversion, TypeWithAnnotations, TypeWithState, bool, bool, bool, AssignmentKind, ParameterSymbol, bool, bool, bool, bool, Optional<LocalState>,bool, Location, ArrayBuilder<VisitResult>)"/>.
967var builder = ArrayBuilder<Symbol>.GetInstance(members.Length + baseRequiredMembers.Count);
2844var members = ArrayBuilder<(VariableIdentifier, int)>.GetInstance();
2904var members = ArrayBuilder<(VariableIdentifier, int)>.GetInstance();
3228var localFuncs = ArrayBuilder<BoundLocalFunctionStatement?>.GetInstance();
3852var resultBuilder = ArrayBuilder<VisitResult>.GetInstance(node.Elements.Length);
3853var elementConversionCompletions = ArrayBuilder<Func<TypeWithAnnotations, TypeWithState>>.GetInstance();
4549var builder = ArrayBuilder<VisitResult>.GetInstance(argumentResults.Length);
4729var expressions = ArrayBuilder<BoundExpression>.GetInstance(initialization.Initializers.Length);
4754var expressionsNoConversions = ArrayBuilder<BoundExpression>.GetInstance(n);
4755var conversions = ArrayBuilder<Conversion>.GetInstance(n);
4756var expressionTypes = ArrayBuilder<TypeWithState>.GetInstance(n);
4757var placeholderBuilder = ArrayBuilder<BoundExpression>.GetInstance(n);
4884var resultTypes = ArrayBuilder<TypeWithAnnotations>.GetInstance(n);
4885var placeholdersBuilder = ArrayBuilder<BoundExpression>.GetInstance(n);
5438var slotBuilder = ArrayBuilder<int>.GetInstance();
5579var slotBuilder = ArrayBuilder<int>.GetInstance();
6337var calls = ArrayBuilder<BoundCall>.GetInstance();
6531var builder = ArrayBuilder<RefKind>.GetInstance(argumentCount + 1, fillWithValue: RefKind.None);
6561var builder = ArrayBuilder<int>.GetInstance(argsToParamsOpt.Length + 1);
7139var notNullParametersBuilder = parameterHasNotNullIfNotNull ? ArrayBuilder<ParameterSymbol>.GetInstance() : null;
7140var conversionResultsBuilder = ArrayBuilder<VisitResult>.GetInstance(results.Length);
7333var argumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(arguments.Length + elements.Length - 1);
7341var argsToParamsBuilder = ArrayBuilder<int>.GetInstance(argsToParamsOpt.Length + elements.Length - 1);
7350var refKindsBuilder = ArrayBuilder<RefKind>.GetInstance(refKindsOpt.Length + elements.Length - 1);
7537var resultsBuilder = ArrayBuilder<VisitResult>.GetInstance(n);
8049var argumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(n);
8050var conversionsBuilder = ArrayBuilder<Conversion>.GetInstance(n);
8135var refKinds = ArrayBuilder<RefKind>.GetInstance();
8246var builder = ArrayBuilder<BoundExpression>.GetInstance(n);
8275var elementsBuilder = ArrayBuilder<BoundNode>.GetInstance(collectionExpressionVisitResults.Length);
8322var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
8323var nullabilityBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
8353var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
8354var nullabilityBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
10166var arguments = ArrayBuilder<BoundExpression>.GetInstance();
10726var builder = ArrayBuilder<DeconstructionVariable>.GetInstance(arguments.Length);