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 (19)
223var parts = ArrayBuilder<ReadOnlyMemory<char>>.GetInstance();
356var pathMapBuilder = ArrayBuilder<KeyValuePair<string, string>>.GetInstance();
402var result = ArrayBuilder<string>.GetInstance();
503ArrayBuilder<string> processedArgs,
835var parts = ArrayBuilder<ReadOnlyMemory<char>>.GetInstance();
1062var builder = ArrayBuilder<ReadOnlyMemory<char>>.GetInstance();
1067internal static void ParseSeparatedPathsEx(ReadOnlyMemory<char>? str, ArrayBuilder<ReadOnlyMemory<char>> builder)
1079internal static void ParseSeparatedStrings(ReadOnlyMemory<char>? strMemory, char[] separators, bool removeEmptyEntries, ArrayBuilder<ReadOnlyMemory<char>> builder)
1150internal void ParseFileArgument(ReadOnlyMemory<char> arg, string? baseDirectory, ArrayBuilder<string> filePathBuilder, IList<Diagnostic> errors)
1182private protected void ParseSeparatedFileArgument(ReadOnlyMemory<char> value, string? baseDirectory, ArrayBuilder<string> filePathBuilder, IList<Diagnostic> errors)
1184var pathBuilder = ArrayBuilder<ReadOnlyMemory<char>>.GetInstance();
1200var builder = ArrayBuilder<string>.GetInstance();
DiagnosticAnalyzer\AnalyzerDriver.cs (39)
899var builder = ArrayBuilder<(DiagnosticDescriptor Descriptor, DiagnosticDescriptorErrorLoggerInfo Info)>.GetInstance();
1063var builder = ArrayBuilder<Diagnostic>.GetInstance(reportedDiagnostics.Length);
1097var tasks = ArrayBuilder<Task>.GetInstance();
1152var programmaticSuppressionsBuilder = PooledDictionary<Diagnostic, ArrayBuilder<Suppression>>.GetInstance();
1156if (!programmaticSuppressionsBuilder.TryGetValue(programmaticSuppression.SuppressedDiagnostic, out var array))
1158array = ArrayBuilder<Suppression>.GetInstance();
1326var declarationInfoBuilder = ArrayBuilder<DeclarationInfo>.GetInstance();
1453var builder = ArrayBuilder<(DiagnosticAnalyzer, ImmutableArray<ImmutableArray<SymbolAnalyzerAction>>)>.GetInstance();
1455var actionsByKindBuilder = ArrayBuilder<ArrayBuilder<SymbolAnalyzerAction>>.GetInstance();
1467actionsByKindBuilder.Add(ArrayBuilder<SymbolAnalyzerAction>.GetInstance());
1485var builder = ArrayBuilder<(DiagnosticAnalyzer, ImmutableArray<TAnalyzerAction>)>.GetInstance();
1826var completedAnalyzers = ArrayBuilder<DiagnosticAnalyzer>.GetInstance();
2542var builder = ArrayBuilder<DeclarationInfo>.GetInstance();
2554private static void ComputeDeclarationsInNode(SemanticModel semanticModel, ISymbol declaredSymbol, SyntaxNode declaringReferenceSyntax, SyntaxNode topmostNodeForAnalysis, ArrayBuilder<DeclarationInfo> builder, CancellationToken cancellationToken)
2604var nodesToAnalyze = declarationAnalysisData.DescendantNodesToAnalyze;
2610void executeNodeActionsByKind(ArrayBuilder<SyntaxNode> nodesToAnalyze, GroupedAnalyzerActions groupedActions, bool arePerSymbolActions)
2643var filteredNodesToAnalyze = ArrayBuilder<SyntaxNode>.GetInstance(nodesToAnalyze.Count);
2664ArrayBuilder<SyntaxNode> filteredNodesToAnalyze)
2683var executableCodeBlockActionsBuilder = ArrayBuilder<ExecutableCodeBlockAnalyzerActions>.GetInstance();
2783void executeOperationsBlockActions(ImmutableArray<IOperation> operationBlocksToAnalyze, ImmutableArray<IOperation> operationsToAnalyze, ArrayBuilder<ExecutableCodeBlockAnalyzerActions> codeBlockActions)
2811void executeCodeBlockActions(ImmutableArray<SyntaxNode> executableCodeBlocks, ArrayBuilder<ExecutableCodeBlockAnalyzerActions> codeBlockActions)
2842ArrayBuilder<ExecutableCodeBlockAnalyzerActions> builder)
2860ArrayBuilder<SyntaxNode> nodesToAnalyze,
2936ArrayBuilder<IOperation> operationBlocksToAnalyze = ArrayBuilder<IOperation>.GetInstance();
2952ArrayBuilder<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);
Binder\Binder.ValueChecks.cs (45)
421var argumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(accessorForDefaultArguments.ParameterCount);
424ArrayBuilder<RefKind>? refKindsBuilderOpt;
427refKindsBuilderOpt = ArrayBuilder<RefKind>.GetInstance(accessorForDefaultArguments.ParameterCount);
453ArrayBuilder<(string Name, Location Location)?>? namesBuilder = null;
457namesBuilder = ArrayBuilder<(string Name, Location Location)?>.GetInstance(argumentNamesOpt.Length);
1967var arguments = ArrayBuilder<BoundExpression>.GetInstance();
2030var escapeValues = ArrayBuilder<EscapeValue>.GetInstance();
2100var argsAndParamsAll = ArrayBuilder<EscapeValue>.GetInstance();
2173var argsToParamsBuilder = ArrayBuilder<int>.GetInstance(argsToParamsOpt.Length + 1);
2242var escapeArguments = ArrayBuilder<EscapeArgument>.GetInstance();
2316var argsAndParamsAll = ArrayBuilder<EscapeValue>.GetInstance();
2381ArrayBuilder<MixableDestination>? mixableArguments,
2382ArrayBuilder<EscapeArgument> escapeArguments)
2526ArrayBuilder<MixableDestination>? mixableArguments,
2527ArrayBuilder<EscapeArgument> escapeArguments)
2559ArrayBuilder<EscapeValue> escapeValues)
2628ArrayBuilder<MixableDestination>? mixableArguments,
2629ArrayBuilder<EscapeValue> escapeValues)
2683ArrayBuilder<MixableDestination>? mixableArguments,
2684ArrayBuilder<EscapeValue> escapeValues)
2692var escapeArguments = ArrayBuilder<EscapeArgument>.GetInstance();
2759ArrayBuilder<MixableDestination>? mixableArguments,
2760ArrayBuilder<EscapeValue> escapeValues)
2768var escapeArguments = ArrayBuilder<EscapeArgument>.GetInstance();
2905var escapeArguments = ArrayBuilder<EscapeArgument>.GetInstance();
2986var mixableArguments = ArrayBuilder<MixableDestination>.GetInstance();
2987var escapeValues = ArrayBuilder<EscapeValue>.GetInstance();
3038void inferDeclarationExpressionValEscape(ImmutableArray<BoundExpression> argsOpt, SafeContext localScopeDepth, ArrayBuilder<EscapeValue> escapeValues)
4798var escapeValues = ArrayBuilder<EscapeValue>.GetInstance();
5797var arguments = ArrayBuilder<BoundExpression>.GetInstance();
5814private void GetInterpolatedStringHandlerArgumentsForEscape(BoundExpression expression, ArrayBuilder<BoundExpression> arguments)
Binder\Binder_Constraints.cs (21)
55var results = ArrayBuilder<TypeParameterConstraintClause?>.GetInstance(n, fillWithValue: null);
56var syntaxNodes = ArrayBuilder<ArrayBuilder<TypeConstraintSyntax>?>.GetInstance(n, fillWithValue: null);
69(TypeParameterConstraintClause constraintClause, ArrayBuilder<TypeConstraintSyntax>? typeConstraintNodes) = this.BindTypeParameterConstraints(typeParameterList.Parameters[ordinal], clause, isForOverride, diagnostics);
105foreach (var typeConstraintsSyntaxes in syntaxNodes)
118private (TypeParameterConstraintClause, ArrayBuilder<TypeConstraintSyntax>?) BindTypeParameterConstraints(
122ArrayBuilder<TypeWithAnnotations>? constraintTypes = null;
123ArrayBuilder<TypeConstraintSyntax>? syntaxBuilder = null;
250constraintTypes = ArrayBuilder<TypeWithAnnotations>.GetInstance();
251syntaxBuilder = ArrayBuilder<TypeConstraintSyntax>.GetInstance();
367var builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(typeParameterList.Parameters.Count);
387ArrayBuilder<TypeParameterConstraintClause> constraintClauses,
388ArrayBuilder<ArrayBuilder<TypeConstraintSyntax>?> syntaxNodes,
404ArrayBuilder<TypeConstraintSyntax>? syntaxNodesOpt,
413var constraintTypeBuilder = ArrayBuilder<TypeWithAnnotations>.GetInstance();
488ArrayBuilder<TypeWithAnnotations> constraintTypes,
Binder\Binder_Deconstruct.cs (31)
116ArrayBuilder<DeconstructionVariable> checkedVariables,
208private BoundExpression FixTupleLiteral(ArrayBuilder<DeconstructionVariable> checkedVariables, BoundExpression boundRHS, CSharpSyntaxNode syntax, BindingDiagnosticBag diagnostics)
247ArrayBuilder<DeconstructionVariable> variables,
295var nestedConversions = ArrayBuilder<(BoundValuePlaceholder?, BoundExpression?)>.GetInstance(count);
349private void SetInferredTypes(ArrayBuilder<DeconstructionVariable> variables, ImmutableArray<TypeSymbol> foundTypes, BindingDiagnosticBag diagnostics)
391private void FailRemainingInferences(ArrayBuilder<DeconstructionVariable> variables, BindingDiagnosticBag diagnostics)
433internal readonly ArrayBuilder<DeconstructionVariable>? NestedVariables;
443internal DeconstructionVariable(ArrayBuilder<DeconstructionVariable> variables, SyntaxNode syntax)
450internal static void FreeDeconstructionVariables(ArrayBuilder<DeconstructionVariable> variables)
471private TypeSymbol? MakeMergedTupleType(ArrayBuilder<DeconstructionVariable> lhsVariables, BoundTupleLiteral rhsLiteral, CSharpSyntaxNode syntax, BindingDiagnosticBag? diagnostics)
476var typesWithAnnotationsBuilder = ArrayBuilder<TypeWithAnnotations>.GetInstance(leftLength);
477var locationsBuilder = ArrayBuilder<Location?>.GetInstance(leftLength);
545private BoundTupleExpression DeconstructionVariablesAsTuple(CSharpSyntaxNode syntax, ArrayBuilder<DeconstructionVariable> variables,
549var valuesBuilder = ArrayBuilder<BoundExpression>.GetInstance(count);
550var typesWithAnnotationsBuilder = ArrayBuilder<TypeWithAnnotations>.GetInstance(count);
551var locationsBuilder = ArrayBuilder<Location?>.GetInstance(count);
552var namesBuilder = ArrayBuilder<string?>.GetInstance(count);
618ArrayBuilder<DeconstructionVariable>? variablesOpt = null)
632var outVars = ArrayBuilder<OutDeconstructVarPendingInference>.GetInstance(numCheckedVariables);
777var builder = ArrayBuilder<DeconstructionVariable>.GetInstance(component.Arguments.Count);
840var builder = ArrayBuilder<DeconstructionVariable>.GetInstance();
Binder\Binder_Expressions.cs (108)
219ArrayBuilder<Symbol> symbols = ArrayBuilder<Symbol>.GetInstance();
337var boundArgs = ArrayBuilder<BoundExpression>.GetInstance(sourceTuple.Arguments.Length);
965var builder = ArrayBuilder<BoundExpression>.GetInstance(count);
966var namesBuilder = ArrayBuilder<string>.GetInstance(count);
1021var boundArguments = ArrayBuilder<BoundExpression>.GetInstance(arguments.Count);
1022var elementTypesWithAnnotations = ArrayBuilder<TypeWithAnnotations>.GetInstance(arguments.Count);
1023var elementLocations = ArrayBuilder<Location>.GetInstance(arguments.Count);
1091ArrayBuilder<string> elementNames = null;
1092ArrayBuilder<string> inferredElementNames = null;
1130ArrayBuilder<string> elementNames, ArrayBuilder<string> inferredElementNames)
1151var builder = ArrayBuilder<bool>.GetInstance(elementNames.Count);
1172private static void RemoveDuplicateInferredTupleNamesAndFreeIfEmptied(ref ArrayBuilder<string> inferredElementNames, HashSet<string> uniqueFieldNames)
1641var members = ArrayBuilder<Symbol>.GetInstance();
1767void reportPrimaryConstructorParameterShadowing(SimpleNameSyntax node, Symbol symbol, string name, bool invoked, LookupResult lookupResult, ArrayBuilder<Symbol> members, BindingDiagnosticBag diagnostics)
1879private BoundExpression SynthesizeMethodGroupReceiver(CSharpSyntaxNode syntax, ArrayBuilder<Symbol> members)
3437ArrayBuilder<BoundExpression>? paramsArgsBuilder = null;
3438var arguments = analyzedArguments.Arguments;
3488ArrayBuilder<BoundExpression>? argumentsForInterpolationConversion,
3541static ArrayBuilder<BoundExpression> collectParamsArgs(
3544ArrayBuilder<BoundExpression> arguments,
3549var paramsArgsBuilder = ArrayBuilder<BoundExpression>.GetInstance();
3579ArrayBuilder<BoundExpression> paramsArgsBuilder,
3609var arguments = analyzedArguments.Arguments;
3614ArrayBuilder<int>? argsToParamsBuilder = null;
3617argsToParamsBuilder = ArrayBuilder<int>.GetInstance(argsToParamsOpt.Length);
3668ArrayBuilder<BoundExpression>? arguments,
3745var handlerArgumentIndexesBuilder = ArrayBuilder<int>.GetInstance(handlerParameterIndexes.Length, fillWithValue: BoundInterpolatedStringArgumentPlaceholder.UnspecifiedParameter);
3773var argumentPlaceholdersBuilder = ArrayBuilder<BoundInterpolatedStringArgumentPlaceholder>.GetInstance(handlerArgumentIndexes.Length);
3774var argumentRefKindsBuilder = ArrayBuilder<RefKind>.GetInstance(handlerArgumentIndexes.Length);
4055ArrayBuilder<BoundExpression> sizes = ArrayBuilder<BoundExpression>.GetInstance();
4191var exprBuilder = ArrayBuilder<BoundExpression>.GetInstance();
4206private void BindArrayInitializerExpressions(InitializerExpressionSyntax initializer, ArrayBuilder<BoundExpression> exprBuilder, BindingDiagnosticBag diagnostics, int dimension, int rank)
4283ArrayBuilder<BoundExpression> initializers = ArrayBuilder<BoundExpression>.GetInstance();
4540var builder = ArrayBuilder<BoundExpression>.GetInstance();
5267var builder = ArrayBuilder<BoundNode>.GetInstance(syntax.Elements.Count);
5557ArrayBuilder<BoundExpression> arguments,
5558ArrayBuilder<RefKind> refKinds,
5602var children = ArrayBuilder<BoundExpression>.GetInstance();
5702var initializers = ArrayBuilder<BoundExpression>.GetInstance(initializerSyntax.Expressions.Count);
6267var initializerBuilder = ArrayBuilder<BoundExpression>.GetInstance();
6393var exprBuilder = ArrayBuilder<BoundExpression>.GetInstance();
6617ArrayBuilder<MethodSymbol> builder = null;
6627builder = ArrayBuilder<MethodSymbol>.GetInstance();
6902ArrayBuilder<Symbol> symbols = ArrayBuilder<Symbol>.GetInstance();
6907var childNodes = ArrayBuilder<BoundExpression>.GetInstance();
7831ArrayBuilder<Symbol> symbols = lookupResult.Symbols;
8116var members = ArrayBuilder<Symbol>.GetInstance();
8292var builder = ArrayBuilder<MethodSymbol>.GetInstance();
8419var members = ArrayBuilder<Symbol>.GetInstance();
8806ArrayBuilder<PropertySymbol>? properties = null;
8811properties ??= ArrayBuilder<PropertySymbol>.GetInstance();
9191private Symbol GetSymbolOrMethodOrPropertyGroup(LookupResult result, SyntaxNode node, string plainName, int arity, ArrayBuilder<Symbol> methodOrPropertyGroup, BindingDiagnosticBag diagnostics, out bool wasError, NamespaceOrTypeSymbol qualifierOpt)
9273private static bool IsMethodOrPropertyGroup(ArrayBuilder<Symbol> members)
9883ArrayBuilder<BoundExpression> arguments = analyzedArguments.Arguments;
9956ArrayBuilder<PropertySymbol> indexerGroup = ArrayBuilder<PropertySymbol>.GetInstance();
10027var properties = ArrayBuilder<PropertySymbol>.GetInstance();
10082ArrayBuilder<PropertySymbol> propertyGroup,
10122ArrayBuilder<PropertySymbol> propertyGroup,
10387var properties = ArrayBuilder<PropertySymbol>.GetInstance();
10815var methods = ArrayBuilder<MethodSymbol>.GetInstance(capacity: node.Methods.Length);
10859var singleLookupResults = ArrayBuilder<SingleLookupResult>.GetInstance();
11007var methods = ArrayBuilder<MethodSymbol>.GetInstance(capacity: node.Methods.Length);
11072var singleLookupResults = ArrayBuilder<SingleLookupResult>.GetInstance();
11080var methods = ArrayBuilder<MethodSymbol>.GetInstance(capacity: singleLookupResults.Count);
11156var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
11157ArrayBuilder<TypeParameterDiagnosticInfo>? useSiteDiagnosticsBuilder = null;
11246var fieldsBuilder = ArrayBuilder<AnonymousTypeField>.GetInstance(parameterTypes.Length + 1);
11268var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
11271ArrayBuilder<TypeParameterDiagnosticInfo>? useSiteDiagnosticsBuilder = null;
Binder\Binder_InterpolatedString.cs (29)
40var builder = ArrayBuilder<BoundExpression>.GetInstance();
375var expressions = ArrayBuilder<BoundExpression>.GetInstance(n + 1);
465var partsArrayBuilder = ArrayBuilder<ImmutableArray<BoundExpression>>.GetInstance();
469static (BoundUnconvertedInterpolatedString unconvertedInterpolatedString, ArrayBuilder<ImmutableArray<BoundExpression>> partsArrayBuilder) =>
610var partsArrayBuilder = ArrayBuilder<ImmutableArray<BoundExpression>>.GetInstance();
613static (BoundUnconvertedInterpolatedString unconvertedInterpolatedString, ArrayBuilder<ImmutableArray<BoundExpression>> partsArrayBuilder) =>
713var argumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(constructorArgumentLength);
715var refKindsBuilder = ArrayBuilder<RefKind>.GetInstance(constructorArgumentLength);
817static void populateArguments(SyntaxNode syntax, ImmutableArray<BoundInterpolatedStringArgumentPlaceholder> additionalConstructorArguments, int baseStringLength, int numFormatHoles, NamedTypeSymbol intType, ArrayBuilder<BoundExpression> argumentsBuilder)
852ArrayBuilder<BoundExpression>? partsBuilder = null;
874partsBuilder = ArrayBuilder<BoundExpression>.GetInstance(unconvertedInterpolatedString.Parts.Length);
907var builderAppendCallsArray = ArrayBuilder<ImmutableArray<BoundExpression>>.GetInstance(partsArray.Length);
908var builderAppendCalls = ArrayBuilder<BoundExpression>.GetInstance(firstPartsLength);
909var positionInfoArray = ArrayBuilder<ImmutableArray<(bool IsLiteral, bool HasAlignment, bool HasFormat)>>.GetInstance(partsArray.Length);
910var positionInfo = ArrayBuilder<(bool IsLiteral, bool HasAlignment, bool HasFormat)>.GetInstance(firstPartsLength);
911var argumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(3);
912var parameterNamesAndLocationsBuilder = ArrayBuilder<(string, Location)?>.GetInstance(3);
Binder\Binder_Invocation.cs (25)
54var builder = ArrayBuilder<MethodSymbol>.GetInstance();
203var invocations = ArrayBuilder<InvocationExpressionSyntax>.GetInstance();
527var builder = ArrayBuilder<BoundExpression>.GetInstance(arguments.Arguments.Count);
872private bool IsAmbiguousDynamicParamsArgument<TMethodOrPropertySymbol>(ArrayBuilder<BoundExpression> arguments, MemberResolutionResult<TMethodOrPropertySymbol> candidate, out SyntaxNode argumentSyntax)
996var finalCandidates = ArrayBuilder<MemberResolutionResult<TMethodOrPropertySymbol>>.GetInstance();
1524ArrayBuilder<BoundExpression> argumentsBuilder,
1525ArrayBuilder<RefKind>? argumentRefKindsBuilder,
1526ArrayBuilder<(string Name, Location Location)?>? namesBuilder,
1571ArrayBuilder<int>? argsToParamsBuilder = null;
1574argsToParamsBuilder = ArrayBuilder<int>.GetInstance(argsToParamsOpt.Length);
1655BoundExpression bindDefaultArgument(SyntaxNode syntax, ParameterSymbol parameter, Symbol? containingMember, bool enableCallerInfo, BindingDiagnosticBag diagnostics, ArrayBuilder<BoundExpression> argumentsBuilder, int argumentsCount, ImmutableArray<int> argsToParamsOpt)
1984var constructedMethods = ArrayBuilder<MethodSymbol>.GetInstance();
2049var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2069var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2091ArrayBuilder<BoundExpression> newArguments = ArrayBuilder<BoundExpression>.GetInstance(argumentCount);
2455var methodsBuilder = ArrayBuilder<FunctionPointerMethodSymbol>.GetInstance(1);
Binder\Binder_Operators.cs (47)
385ArrayBuilder<MethodSymbol>? methods = LookupUserDefinedInstanceOperators(
418ArrayBuilder<MethodSymbol> methods,
424var typeArguments = ArrayBuilder<TypeWithAnnotations>.GetInstance();
577var extensionDeclarationsInSingleScope = ArrayBuilder<NamedTypeSymbol>.GetInstance();
621ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope,
631ArrayBuilder<MethodSymbol>? methods = LookupUserDefinedInstanceExtensionOperatorsInSingleScope(
858var syntaxNodes = ArrayBuilder<BinaryExpressionSyntax>.GetInstance();
1217var stack = ArrayBuilder<BoundBinaryOperator>.GetInstance();
1837var extensions = ArrayBuilder<NamedTypeSymbol>.GetInstance();
1874ArrayBuilder<NamedTypeSymbol> extensions,
1903var operators = ArrayBuilder<MethodSymbol>.GetInstance();
2023var extensionDeclarationsInSingleScope = ArrayBuilder<NamedTypeSymbol>.GetInstance();
2080var builder = ArrayBuilder<MethodSymbol>.GetInstance();
2226var builder = ArrayBuilder<MethodSymbol>.GetInstance();
2311var extensionDeclarationsInSingleScope = ArrayBuilder<NamedTypeSymbol>.GetInstance();
3345ArrayBuilder<MethodSymbol>? methods = LookupUserDefinedInstanceOperators(
3377ArrayBuilder<MethodSymbol> methods,
3386var typeArguments = ArrayBuilder<TypeWithAnnotations>.GetInstance();
3536var extensionDeclarationsInSingleScope = ArrayBuilder<NamedTypeSymbol>.GetInstance();
3581ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope,
3593ArrayBuilder<MethodSymbol>? methods = LookupUserDefinedInstanceExtensionOperatorsInSingleScope(
3609private ArrayBuilder<MethodSymbol>? LookupUserDefinedInstanceOperators(TypeSymbol lookupInType, string? checkedName, string ordinaryName, int parameterCount, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
3614ArrayBuilder<MethodSymbol>? methods = null;
3622methods = ArrayBuilder<MethodSymbol>.GetInstance(lookupResult.Symbols.Count);
3635methods = ArrayBuilder<MethodSymbol>.GetInstance(lookupResult.Symbols.Count);
3661static void appendViableMethods(LookupResult lookupResult, int parameterCount, ArrayBuilder<MethodSymbol> methods)
3680private ArrayBuilder<MethodSymbol>? LookupUserDefinedInstanceExtensionOperatorsInSingleScope(
3681ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope,
3687ArrayBuilder<MethodSymbol>? checkedMethods = null;
3695ArrayBuilder<MethodSymbol>? ordinaryMethods = null;
3722ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope,
3725ref ArrayBuilder<MethodSymbol>? methods)
3727ArrayBuilder<MethodSymbol>? typeOperators = null;
3740typeOperators ??= ArrayBuilder<MethodSymbol>.GetInstance();
3752methods ??= ArrayBuilder<MethodSymbol>.GetInstance();
Binder\Binder_Symbols.cs (14)
689var types = ArrayBuilder<TypeWithAnnotations>.GetInstance(numElements);
690var locations = ArrayBuilder<Location>.GetInstance(numElements);
691ArrayBuilder<string> elementNames = null;
773private static void CollectTupleFieldMemberName(string name, int elementIndex, int tupleSize, ref ArrayBuilder<string> elementNames)
786elementNames = ArrayBuilder<string>.GetInstance(tupleSize);
1348var args = ArrayBuilder<TypeWithAnnotations>.GetInstance(typeArguments.Count);
1429ArrayBuilder<Symbol> members,
1473ImmutableArray<TypeWithAnnotations> typeArguments, bool invoked, ArrayBuilder<Symbol> members, BindingDiagnosticBag diagnostics)
1542ArrayBuilder<Symbol> members, TypeSymbol receiverType,
1993var symbols = result.Symbols;
2522private BestSymbolInfo GetBestSymbolInfo(ArrayBuilder<Symbol> symbols, out BestSymbolInfo secondBest)
Binder\DecisionDagBuilder.cs (71)
200var bindingsBuilder = ArrayBuilder<BoundPatternBinding>.GetInstance();
209ArrayBuilder<BoundPatternBinding> bindingsBuilder)
235var newSequence = ArrayBuilder<Tests>.GetInstance(length);
271ArrayBuilder<BoundPatternBinding> bindings)
285ArrayBuilder<BoundPatternBinding> bindings)
322ArrayBuilder<BoundPatternBinding> bindings)
332var tests = ArrayBuilder<Tests>.GetInstance(4 + patternLength * 2);
395ArrayBuilder<BoundPatternBinding> bindings)
398var tests = ArrayBuilder<Tests>.GetInstance(1);
425var tests = ArrayBuilder<Tests>.GetInstance(4);
434ArrayBuilder<Tests> tests)
453ArrayBuilder<Tests> tests)
499var tests = ArrayBuilder<Tests>.GetInstance(2);
520ArrayBuilder<BoundPatternBinding> bindings)
524var tests = ArrayBuilder<Tests>.GetInstance(5);
636private Tests MakeTestsAndBindingsForNegatedPattern(BoundDagTemp input, BoundNegatedPattern neg, ArrayBuilder<BoundPatternBinding> bindings)
646ArrayBuilder<BoundPatternBinding> bindings)
650var binaryPatternStack = ArrayBuilder<BoundBinaryPattern>.GetInstance();
671static Tests makeTestsAndBindingsForBinaryPattern(DecisionDagBuilder @this, Tests leftTests, BoundDagTemp leftOutput, BoundDagTemp input, BoundBinaryPattern bin, out BoundDagTemp output, ArrayBuilder<BoundPatternBinding> bindings)
673var builder = ArrayBuilder<Tests>.GetInstance(2);
686builder = ArrayBuilder<Tests>.GetInstance(2);
711var tests = ArrayBuilder<Tests>.GetInstance(2);
874var rewrittenCases = ArrayBuilder<StateForCase>.GetInstance(casesForRootNode.Count);
1094var whenTrueBuilder = ArrayBuilder<StateForCase>.GetInstance(cases.Count);
1095var whenFalseBuilder = ArrayBuilder<StateForCase>.GetInstance(cases.Count);
1208var builder = ArrayBuilder<StateForCase>.GetInstance(cases.Count);
1440ArrayBuilder<Tests>? conditions = null;
1502(conditions ??= ArrayBuilder<Tests>.GetInstance()).Add(new Tests.One(new BoundDagValueTest(syntax, ConstantValue.Create(lengthValue), s1LengthTemp)));
1770private static FrozenArrayBuilder<T> AsFrozen<T>(ArrayBuilder<T> builder)
1779private readonly ArrayBuilder<T> _arrayBuilder;
1781public FrozenArrayBuilder(ArrayBuilder<T> arrayBuilder)
1784if (arrayBuilder.Capacity >= ArrayBuilder<T>.PooledArrayLengthLimitExclusive
1785&& arrayBuilder.Count < ArrayBuilder<T>.PooledArrayLengthLimitExclusive
1820public ArrayBuilder<T>.Enumerator GetEnumerator() => _arrayBuilder.GetEnumerator();
1824var builder = ArrayBuilder<T>.GetInstance(this.Count - 1);
1880/// <see cref="ArrayBuilder{StateForCase}"/> will be returned to its pool when <see cref="ClearAndFree"/> is
2291private static ArrayBuilder<Tests> NegateSequenceElements(ImmutableArray<Tests> seq)
2293var builder = ArrayBuilder<Tests>.GetInstance(seq.Length);
2329public abstract Tests Update(ArrayBuilder<Tests> remainingTests);
2340var trueBuilder = ArrayBuilder<Tests>.GetInstance(RemainingTests.Length);
2341var falseBuilder = ArrayBuilder<Tests>.GetInstance(RemainingTests.Length);
2354var builder = ArrayBuilder<Tests>.GetInstance(RemainingTests.Length);
2362var builder = ArrayBuilder<Tests>.GetInstance(RemainingTests.Length);
2386public override Tests Update(ArrayBuilder<Tests> remainingTests) => Create(remainingTests);
2392var builder = ArrayBuilder<Tests>.GetInstance(2);
2397public static Tests Create(ArrayBuilder<Tests> remainingTests)
2466public override Tests Update(ArrayBuilder<Tests> remainingTests) => Create(remainingTests);
2472var builder = ArrayBuilder<Tests>.GetInstance(2);
2477public static Tests Create(ArrayBuilder<Tests> remainingTests)
Binder\PatternExplainer.cs (16)
73var result = ArrayBuilder<BoundDecisionDagNode>.GetInstance(capacity: distanceToNode);
113var pathBuilder = ArrayBuilder<BoundDecisionDagNode>.GetInstance();
245out Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest, bool)>> constraints,
246out Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluations)
248constraints = new Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest, bool)>>();
249evaluations = new Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>>();
268if (!constraints.TryGetValue(temp, out var constraintBuilder))
279if (!evaluations.TryGetValue(temp, out var evaluationBuilder))
293Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest test, bool sense)>> constraintMap,
294Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluationMap,
311static ImmutableArray<T> getArray<T>(Dictionary<BoundDagTemp, ArrayBuilder<T>> map, BoundDagTemp temp)
313return map.TryGetValue(temp, out var builder) ? builder.ToImmutable() : ImmutableArray<T>.Empty;
424var subpatterns = new ArrayBuilder<string>(lengthValue);
475var subpatterns = new ArrayBuilder<string>(cardinality);
Binder\RefSafetyAnalysis.cs (27)
154private readonly ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)> _placeholders;
156public PlaceholderRegion(RefSafetyAnalysis analysis, ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)> placeholders)
346var placeholders = ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)>.GetInstance();
363var placeholders = ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)>.GetInstance();
707var placeholders = ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)>.GetInstance();
738ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)> placeholders,
853var escapeValues = ArrayBuilder<EscapeValue>.GetInstance();
949var placeholders = ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)>.GetInstance();
956private void GetAwaitableInstancePlaceholders(ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)> placeholders, BoundAwaitableInfo awaitableInfo, SafeContext valEscapeScope)
980var variables = GetDeconstructionAssignmentVariables(left);
986private void VisitDeconstructionArguments(ArrayBuilder<DeconstructionVariable> variables, SyntaxNode syntax, Conversion conversion, BoundExpression right)
1010var placeholders = ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)>.GetInstance();
1021var nestedVariables = variable.NestedVariables;
1046var nestedVariables = variable.NestedVariables;
1060internal readonly ArrayBuilder<DeconstructionVariable>? NestedVariables;
1062internal DeconstructionVariable(BoundExpression expression, SafeContext valEscape, ArrayBuilder<DeconstructionVariable>? nestedVariables)
1070private ArrayBuilder<DeconstructionVariable> GetDeconstructionAssignmentVariables(BoundTupleExpression tuple)
1073var builder = ArrayBuilder<DeconstructionVariable>.GetInstance(arguments.Length);
1146var placeholders = ArrayBuilder<(BoundValuePlaceholderBase, SafeContext)>.GetInstance();
Binder\Semantics\Conversions\UserDefinedExplicitConversions.cs (13)
36var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance();
40var ubuild = ArrayBuilder<UserDefinedConversionAnalysis>.GetInstance();
74private static void ComputeUserDefinedExplicitConversionTypeSet(TypeSymbol source, TypeSymbol target, ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
90ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d,
91ArrayBuilder<UserDefinedConversionAnalysis> u,
133ArrayBuilder<UserDefinedConversionAnalysis> u,
145ArrayBuilder<UserDefinedConversionAnalysis> u,
220var operators = ArrayBuilder<MethodSymbol>.GetInstance();
236var operators2 = ArrayBuilder<MethodSymbol>.GetInstance();
Binder\Semantics\Conversions\UserDefinedImplicitConversions.cs (14)
80var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance();
84var ubuild = ArrayBuilder<UserDefinedConversionAnalysis>.GetInstance();
118private static void ComputeUserDefinedImplicitConversionTypeSet(TypeSymbol s, TypeSymbol t, ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
146ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)> d,
147ArrayBuilder<UserDefinedConversionAnalysis> u,
285ArrayBuilder<UserDefinedConversionAnalysis> u,
289var operators = ArrayBuilder<MethodSymbol>.GetInstance();
961var d = ArrayBuilder<(NamedTypeSymbol ParticipatingType, TypeParameterSymbol ConstrainedToTypeOpt)>.GetInstance();
967var ubuild = ArrayBuilder<UserDefinedConversionAnalysis>.GetInstance();
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (50)
121var rightOperators = ArrayBuilder<BinaryOperatorAnalysisResult>.GetInstance();
171var rightOperators = ArrayBuilder<BinaryOperatorAnalysisResult>.GetInstance();
225Dictionary<TypeSymbol, bool> lookedInInterfaces, ArrayBuilder<BinaryOperatorAnalysisResult> candidates)
243var operators = ArrayBuilder<BinaryOperatorSignature>.GetInstance();
265var operators = ArrayBuilder<BinaryOperatorSignature>.GetInstance();
266var results = ArrayBuilder<BinaryOperatorAnalysisResult>.GetInstance();
319ArrayBuilder<BinaryOperatorSignature> operators)
337ArrayBuilder<BinaryOperatorSignature> operators, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
477private void GetEnumOperation(BinaryOperatorKind kind, TypeSymbol enumType, BoundExpression right, ArrayBuilder<BinaryOperatorSignature> operators)
556ArrayBuilder<BinaryOperatorSignature> operators)
585ArrayBuilder<BinaryOperatorSignature> operators)
601private void GetEnumOperations(BinaryOperatorKind kind, BoundExpression left, BoundExpression right, ArrayBuilder<BinaryOperatorSignature> results)
690ArrayBuilder<BinaryOperatorSignature> results)
719private void GetAllBuiltInOperators(BinaryOperatorKind kind, bool isChecked, BoundExpression left, BoundExpression right, ArrayBuilder<BinaryOperatorAnalysisResult> results, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
724var operators = ArrayBuilder<BinaryOperatorSignature>.GetInstance();
796private void GetReferenceEquality(BinaryOperatorKind kind, ArrayBuilder<BinaryOperatorSignature> operators)
804ArrayBuilder<BinaryOperatorSignature> operators,
807ArrayBuilder<BinaryOperatorAnalysisResult> results,
828private static void AddDistinctOperators(ArrayBuilder<BinaryOperatorAnalysisResult> result, ArrayBuilder<BinaryOperatorAnalysisResult> additionalOperators)
872ArrayBuilder<BinaryOperatorAnalysisResult> results,
899var operators = ArrayBuilder<BinaryOperatorSignature>.GetInstance();
953ArrayBuilder<BinaryOperatorSignature> operators)
961var operators2 = ArrayBuilder<BinaryOperatorSignature>.GetInstance();
989private static void GetDeclaredUserDefinedBinaryOperators(TypeSymbol? constrainedToTypeOpt, NamedTypeSymbol type, BinaryOperatorKind kind, string name, ArrayBuilder<BinaryOperatorSignature> operators)
991var typeOperators = ArrayBuilder<MethodSymbol>.GetInstance();
1012void AddLiftedUserDefinedBinaryOperators(TypeSymbol? constrainedToTypeOpt, BinaryOperatorKind kind, ArrayBuilder<BinaryOperatorSignature> operators)
1108var candidates = result.Results;
1164ArrayBuilder<BinaryOperatorAnalysisResult> candidates,
1424ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope,
1436var operators = ArrayBuilder<BinaryOperatorSignature>.GetInstance();
1451var results = result.Results;
1464static void getDeclaredUserDefinedBinaryOperatorsInScope(ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope, BinaryOperatorKind kind, string name1, string? name2Opt, ArrayBuilder<BinaryOperatorSignature> operators)
1475var operators2 = ArrayBuilder<BinaryOperatorSignature>.GetInstance();
1495static void getDeclaredUserDefinedBinaryOperators(ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope, BinaryOperatorKind kind, string name, ArrayBuilder<BinaryOperatorSignature> operators)
1510void inferTypeArgumentsAndRemoveInapplicableToReceiverType(BinaryOperatorKind kind, BoundExpression left, BoundExpression right, ArrayBuilder<BinaryOperatorSignature> operators, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1544if (!FailsConstraintChecks(method, out ArrayBuilder<TypeParameterDiagnosticInfo> constraintFailureDiagnosticsOpt, template: CompoundUseSiteInfo<AssemblySymbol>.Discarded))
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (32)
73ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope,
85var operators = ArrayBuilder<UnaryOperatorSignature>.GetInstance();
100var results = result.Results;
113static void getDeclaredUserDefinedUnaryOperatorsInScope(ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope, UnaryOperatorKind kind, string name1, string? name2Opt, ArrayBuilder<UnaryOperatorSignature> operators)
124var operators2 = ArrayBuilder<UnaryOperatorSignature>.GetInstance();
144static void getDeclaredUserDefinedUnaryOperators(ArrayBuilder<NamedTypeSymbol> extensionDeclarationsInSingleScope, UnaryOperatorKind kind, string name, ArrayBuilder<UnaryOperatorSignature> operators)
159void inferTypeArgumentsAndRemoveInapplicableToReceiverType(UnaryOperatorKind kind, BoundExpression operand, ArrayBuilder<UnaryOperatorSignature> operators, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
193if (!FailsConstraintChecks(method, out ArrayBuilder<TypeParameterDiagnosticInfo> constraintFailureDiagnosticsOpt, template: CompoundUseSiteInfo<AssemblySymbol>.Discarded))
312var candidates = result.Results;
367ArrayBuilder<UnaryOperatorAnalysisResult> candidates,
489private void GetAllBuiltInOperators(UnaryOperatorKind kind, bool isChecked, BoundExpression operand, ArrayBuilder<UnaryOperatorAnalysisResult> results, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
504var operators = ArrayBuilder<UnaryOperatorSignature>.GetInstance();
520private bool CandidateOperators(bool isChecked, ArrayBuilder<UnaryOperatorSignature> operators, BoundExpression operand, ArrayBuilder<UnaryOperatorAnalysisResult> results, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
540private void GetEnumOperations(UnaryOperatorKind kind, BoundExpression operand, ArrayBuilder<UnaryOperatorSignature> operators)
601ArrayBuilder<UnaryOperatorAnalysisResult> results,
643var operators = ArrayBuilder<UnaryOperatorSignature>.GetInstance();
687var resultsFromInterface = ArrayBuilder<UnaryOperatorAnalysisResult>.GetInstance();
749ArrayBuilder<UnaryOperatorSignature> operators)
757var operators2 = ArrayBuilder<UnaryOperatorSignature>.GetInstance();
785private static void GetDeclaredUserDefinedUnaryOperators(TypeSymbol? constrainedToTypeOpt, NamedTypeSymbol type, UnaryOperatorKind kind, string name, ArrayBuilder<UnaryOperatorSignature> operators)
787var typeOperators = ArrayBuilder<MethodSymbol>.GetInstance();
807private void AddLiftedUserDefinedUnaryOperators(TypeSymbol? constrainedToTypeOpt, UnaryOperatorKind kind, ArrayBuilder<UnaryOperatorSignature> operators)
Binder\Semantics\OverloadResolution\OverloadResolution.cs (96)
65private static bool AnyValidResult<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results)
79private static bool SingleValidResult<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results)
105var results = result.ResultsBuilder;
138ArrayBuilder<MethodSymbol> methods,
139ArrayBuilder<TypeWithAnnotations> typeArguments,
165ArrayBuilder<PropertySymbol> indexers,
175ArrayBuilder<TypeWithAnnotations> typeArguments = ArrayBuilder<TypeWithAnnotations>.GetInstance();
186ArrayBuilder<TMember> members,
187ArrayBuilder<TypeWithAnnotations> typeArguments,
198var results = result.ResultsBuilder;
226internal bool FilterMethodsForUniqueSignature(ArrayBuilder<MethodSymbol> methods, out bool useParams)
236var results = result.ResultsBuilder;
240var typeArguments = ArrayBuilder<TypeWithAnnotations>.GetInstance(0);
246var unreducedMethods = methods;
249unreducedMethods = ArrayBuilder<MethodSymbol>.GetInstance(methods.Count);
295var applicableMethods = ArrayBuilder<MethodSymbol>.GetInstance(methods.Count);
320private static bool OverloadResolutionResultIsValid<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results, bool hasDynamicArgument)
352ArrayBuilder<MemberResolutionResult<TMember>> results,
353ArrayBuilder<TMember> members,
354ArrayBuilder<TypeWithAnnotations> typeArguments,
370Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> containingTypeMapOpt = null;
428ArrayBuilder<MemberResolutionResult<TMember>> results,
429ArrayBuilder<TMember> members,
430ArrayBuilder<TypeWithAnnotations> typeArguments,
494private static void RemoveHiddenMembers<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results)
557ArrayBuilder<FunctionPointerMethodSymbol> funcPtrBuilder,
564var typeArgumentsBuilder = ArrayBuilder<TypeWithAnnotations>.GetInstance();
581ArrayBuilder<MemberResolutionResult<TMember>> results,
608private static void RemoveStaticInstanceMismatches<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results, bool requireStatic) where TMember : Symbol
626private static void RemoveMethodsNotDeclaredStatic<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results) where TMember : Symbol
642private void RemoveConstraintViolations<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results, CompoundUseSiteInfo<AssemblySymbol> template) where TMember : Symbol
654FailsConstraintChecks(member, out ArrayBuilder<TypeParameterDiagnosticInfo> constraintFailureDiagnosticsOpt, template))
663private void RemoveCallingConventionMismatches<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results, in CallingConventionInfo expectedConvention) where TMember : Symbol
792private bool FailsConstraintChecks<TMember>(TMember member, out ArrayBuilder<TypeParameterDiagnosticInfo> constraintFailureDiagnosticsOpt, CompoundUseSiteInfo<AssemblySymbol> template) where TMember : Symbol
801var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
802ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder = null;
848ArrayBuilder<MemberResolutionResult<TMember>> results,
900private static Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> PartitionMembersByContainingType<TMember>(ArrayBuilder<TMember> members) where TMember : Symbol
902Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> containingTypeMap = new Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>>();
907ArrayBuilder<TMember> builder;
910builder = ArrayBuilder<TMember>.GetInstance();
918private static void ClearContainingTypeMap<TMember>(ref Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> containingTypeMapOpt) where TMember : Symbol
922foreach (ArrayBuilder<TMember> builder in containingTypeMapOpt.Values)
930private void AddConstructorToCandidateSet(MethodSymbol constructor, ArrayBuilder<MemberResolutionResult<MethodSymbol>> results,
1058ArrayBuilder<MemberResolutionResult<TMember>> results,
1059ArrayBuilder<TMember> members,
1060ArrayBuilder<TypeWithAnnotations> typeArguments,
1063Dictionary<NamedTypeSymbol, ArrayBuilder<TMember>> containingTypeMapOpt,
1133ArrayBuilder<TMember> others = pair.Value;
1409ArrayBuilder<TMember> members,
1436private static bool MemberGroupHidesByName<TMember>(ArrayBuilder<TMember> members, TMember member, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1470private void RemoveInaccessibleTypeArguments<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1496private static void RemoveLessDerivedMembers<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1619private static bool IsLessDerivedThanAny<TMember>(int index, TypeSymbol type, ArrayBuilder<MemberResolutionResult<TMember>> results, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1662private static void RemoveAllInterfaceMembers<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results)
1738ArrayBuilder<MemberResolutionResult<MethodSymbol>> results,
1780private static void ReportUseSiteInfo<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1789private int GetTheBestCandidateIndex<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results, AnalyzedArguments arguments, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1849private void RemoveLowerPriorityMembers<TMemberResolution, TMember>(ArrayBuilder<TMemberResolution> results)
1878var inapplicableMembers = ArrayBuilder<TMemberResolution>.GetInstance();
1941private void RemoveWorseMembers<TMember>(ArrayBuilder<MemberResolutionResult<TMember>> results, AnalyzedArguments arguments, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1990var worse = ArrayBuilder<int>.GetInstance(results.Count, unknown);
2091ArrayBuilder<BoundExpression> arguments,
2130ArrayBuilder<BoundExpression> arguments,
2608ArrayBuilder<BoundExpression> arguments,
2698private static void GetParameterCounts<TMember>(MemberResolutionResult<TMember> m, ArrayBuilder<BoundExpression> arguments, out int declaredParameterCount, out int parametersUsedIncludingExpansionAndOptional) where TMember : Symbol
3327var returnStatements = ArrayBuilder<BoundReturnStatement>.GetInstance();
3394private readonly ArrayBuilder<BoundReturnStatement> _returns;
3396public ReturnStatements(ArrayBuilder<BoundReturnStatement> returns)
3834ArrayBuilder<RefKind> argumentRefKinds,
3873ArrayBuilder<RefKind> argumentRefKinds,
3904var types = ArrayBuilder<TypeWithAnnotations>.GetInstance();
3905ArrayBuilder<RefKind> refs = null;
3926refs = ArrayBuilder<RefKind>.GetInstance(arg, RefKind.None);
4023ArrayBuilder<RefKind> argumentRefKinds,
4034ArrayBuilder<RefKind> argumentRefKinds,
4041var types = ArrayBuilder<TypeWithAnnotations>.GetInstance();
4042var refs = ArrayBuilder<RefKind>.GetInstance();
4090ArrayBuilder<TypeWithAnnotations> typeArguments,
4168ArrayBuilder<TypeWithAnnotations> typeArguments,
4231ArrayBuilder<TypeWithAnnotations> typeArgumentsBuilder,
4527ArrayBuilder<Conversion> conversions = null;
4640conversions = ArrayBuilder<Conversion>.GetInstance(paramCount);
BoundTree\UnboundLambda.cs (26)
144var returnTypes = ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)>.GetInstance();
185internal static InferredLambdaReturnType InferReturnType(ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)> returnTypes,
192internal static InferredLambdaReturnType InferReturnType(ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)> returnTypes,
202private static InferredLambdaReturnType InferReturnTypeImpl(ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)> returnTypes,
205var types = ArrayBuilder<(BoundExpression expr, TypeWithAnnotations resultType, bool isChecked)>.GetInstance();
246ArrayBuilder<(BoundExpression expr, TypeWithAnnotations resultType, bool isChecked)> returns,
340private readonly ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)> _builder;
342private BlockReturns(ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)> builder)
347public static void GetReturnTypes(ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)> builder, BoundBlock block)
670internal (ImmutableArray<RefKind>, ArrayBuilder<ScopedKind>, ImmutableArray<TypeWithAnnotations>, bool) CollectParameterProperties()
672var parameterRefKindsBuilder = ArrayBuilder<RefKind>.GetInstance(ParameterCount);
673var parameterScopesBuilder = ArrayBuilder<ScopedKind>.GetInstance(ParameterCount);
674var parameterTypesBuilder = ArrayBuilder<TypeWithAnnotations>.GetInstance(ParameterCount);
740var returnTypes = ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)>.GetInstance();
975var returnTypes = ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)>.GetInstance();
1127var typesBuilder = ArrayBuilder<TypeWithAnnotations>.GetInstance(parameterCount);
1128var refKindsBuilder = ArrayBuilder<RefKind>.GetInstance(parameterCount);
Compilation\CSharpSemanticModel.cs (37)
1639var results = ArrayBuilder<ISymbol>.GetInstance(info.Count);
1698private void AppendSymbolsWithName(ArrayBuilder<ISymbol> results, string name, Binder binder, NamespaceOrTypeSymbol container, LookupOptions options, LookupSymbolsInfo info)
1732ArrayBuilder<ISymbol> results,
1876Constraint = "Provide " + nameof(ArrayBuilder<Symbol>) + " capacity to reduce number of allocations.")]
1966var builder = ArrayBuilder<Symbol>.GetInstance(symbols.Count);
2003private static void AddUnwrappingErrorTypes(ArrayBuilder<Symbol> builder, Symbol s)
2387ArrayBuilder<Symbol> builder = ArrayBuilder<Symbol>.GetInstance();
3629var builder = ArrayBuilder<Symbol>.GetInstance();
4105var symbols = ArrayBuilder<ISymbol>.GetInstance();
4120private static ImmutableArray<IPropertySymbol> FilterOverriddenOrHiddenIndexers(ArrayBuilder<ISymbol> symbols)
4153var builder = ArrayBuilder<IPropertySymbol>.GetInstance();
4528var symbols = ArrayBuilder<ISymbol>.GetInstance();
4575var members = ArrayBuilder<Symbol>.GetInstance();
4576var filteredMembers = ArrayBuilder<Symbol>.GetInstance();
4640var singleLookupResults = ArrayBuilder<SingleLookupResult>.GetInstance();
4682ArrayBuilder<Symbol> members,
4683ArrayBuilder<Symbol> filteredMembers,
4708ArrayBuilder<Symbol> members,
4709ArrayBuilder<Symbol> filteredMembers,
4773var methodBuilder = ArrayBuilder<Symbol>.GetInstance();
4774var filteredMethodBuilder = ArrayBuilder<Symbol>.GetInstance();
5252internal override void ComputeDeclarationsInSpan(TextSpan span, bool getSymbol, ArrayBuilder<DeclarationInfo> builder, CancellationToken cancellationToken)
5257internal override void ComputeDeclarationsInNode(SyntaxNode node, ISymbol associatedSymbol, bool getSymbol, ArrayBuilder<DeclarationInfo> builder, CancellationToken cancellationToken, int? levelsToCompute = null)
5413var builder = ArrayBuilder<IImportScope>.GetInstance();
FlowAnalysis\NullableWalker.cs (104)
210private ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)>? _returnTypesOpt;
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>)"/>.
472ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)>? returnTypesOpt,
973var builder = ArrayBuilder<Symbol>.GetInstance(members.Length + baseRequiredMembers.Count);
1784ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)>? returnTypesOpt)
1832ArrayBuilder<(BoundReturnStatement, TypeWithAnnotations)>? returnTypesOpt,
2850var members = ArrayBuilder<(VariableIdentifier, int)>.GetInstance();
2910var members = ArrayBuilder<(VariableIdentifier, int)>.GetInstance();
3234var localFuncs = ArrayBuilder<BoundLocalFunctionStatement?>.GetInstance();
3415var oldReturnTypes = _returnTypesOpt;
3858var resultBuilder = ArrayBuilder<VisitResult>.GetInstance(node.Elements.Length);
3859var elementConversionCompletions = ArrayBuilder<Func<TypeWithAnnotations /*targetElementType*/, TypeSymbol /*targetCollectionType*/, TypeWithState>>.GetInstance();
3887void visitElement(BoundNode element, BoundCollectionExpression node, TypeWithAnnotations targetElementType, ArrayBuilder<Func<TypeWithAnnotations, TypeSymbol, TypeWithState>> elementConversionCompletions)
3979TypeWithState convertCollection(BoundCollectionExpression node, TypeWithAnnotations targetCollectionType, ArrayBuilder<Func<TypeWithAnnotations, TypeSymbol, TypeWithState>> completions)
4610var builder = ArrayBuilder<VisitResult>.GetInstance(argumentResults.Length);
4790var expressions = ArrayBuilder<BoundExpression>.GetInstance(initialization.Initializers.Length);
4815var expressionsNoConversions = ArrayBuilder<BoundExpression>.GetInstance(n);
4816var conversions = ArrayBuilder<Conversion>.GetInstance(n);
4817var expressionTypes = ArrayBuilder<TypeWithState>.GetInstance(n);
4818var placeholderBuilder = ArrayBuilder<BoundExpression>.GetInstance(n);
4922ArrayBuilder<(BoundExpression expr, TypeWithAnnotations resultType, bool isChecked)> returns,
4945var resultTypes = ArrayBuilder<TypeWithAnnotations>.GetInstance(n);
4946var placeholdersBuilder = ArrayBuilder<BoundExpression>.GetInstance(n);
4987private static void GetArrayElements(BoundArrayInitialization node, ArrayBuilder<BoundExpression> builder)
5105protected override void VisitBinaryOperatorChildren(ArrayBuilder<BoundBinaryOperator> stack)
5561var slotBuilder = ArrayBuilder<int>.GetInstance();
5591private void GetSlotsToMarkAsNotNullable(BoundExpression operand, ArrayBuilder<int> slotBuilder)
5677private void MarkSlotsAsNotNull(ArrayBuilder<int> slots, ref LocalState stateToUpdate)
5702var slotBuilder = ArrayBuilder<int>.GetInstance();
6460var calls = ArrayBuilder<BoundCall>.GetInstance();
6687var builder = ArrayBuilder<RefKind>.GetInstance(argumentCount + 1, fillWithValue: RefKind.None);
6717var builder = ArrayBuilder<int>.GetInstance(argsToParamsOpt.Length + 1);
7290var notNullParametersBuilder = parameterHasNotNullIfNotNull ? ArrayBuilder<ParameterSymbol>.GetInstance() : null;
7291var conversionResultsBuilder = ArrayBuilder<VisitResult>.GetInstance(results.Length);
7484var argumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(arguments.Length + elements.Length - 1);
7492var argsToParamsBuilder = ArrayBuilder<int>.GetInstance(argsToParamsOpt.Length + elements.Length - 1);
7501var refKindsBuilder = ArrayBuilder<RefKind>.GetInstance(refKindsOpt.Length + elements.Length - 1);
7688var resultsBuilder = ArrayBuilder<VisitResult>.GetInstance(n);
7809ArrayBuilder<VisitResult>? conversionResultsBuilder,
7946ArrayBuilder<ParameterSymbol>? notNullParametersOpt,
8037FlowAnalysisAnnotations notNullBasedOnParameters(FlowAnalysisAnnotations parameterAnnotations, ArrayBuilder<ParameterSymbol>? notNullParametersOpt, ParameterSymbol parameter)
8200var argumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(n);
8201var conversionsBuilder = ArrayBuilder<Conversion>.GetInstance(n);
8286var refKinds = ArrayBuilder<RefKind>.GetInstance();
8397var builder = ArrayBuilder<BoundExpression>.GetInstance(n);
8426var elementsBuilder = ArrayBuilder<BoundNode>.GetInstance(collectionExpressionVisitResults.Length);
8473var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
8474var nullabilityBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
8475ArrayBuilder<TypeParameterDiagnosticInfo>? useSiteDiagnosticsBuilder = null;
8504var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
8505var nullabilityBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
8506ArrayBuilder<TypeParameterDiagnosticInfo>? useSiteDiagnosticsBuilder = null;
9290ArrayBuilder<VisitResult>? previousArgumentConversionResults = null)
10326var arguments = ArrayBuilder<BoundExpression>.GetInstance();
10639var variables = GetDeconstructionAssignmentVariables(left);
10663private void VisitDeconstructionArguments(ArrayBuilder<DeconstructionVariable> variables, Conversion conversion, BoundExpression right, TypeWithState? rightResultOpt = null)
10677private void VisitDeconstructMethodArguments(ArrayBuilder<DeconstructionVariable> variables, Conversion conversion, BoundExpression right, TypeWithState? rightResultOpt)
10711ArrayBuilder<BoundExpression> placeholderArgs = ArrayBuilder<BoundExpression>.GetInstance(n + 1);
10748var nestedVariables = variable.NestedVariables;
10766var nestedVariables = variable.NestedVariables;
10778private void VisitTupleDeconstructionArguments(ArrayBuilder<DeconstructionVariable> variables, ImmutableArray<(BoundValuePlaceholder? placeholder, BoundExpression? conversion)> deconstructConversionInfo, BoundExpression right, TypeWithState? rightResultOpt)
10790var nestedVariables = variable.NestedVariables;
10866internal readonly ArrayBuilder<DeconstructionVariable>? NestedVariables;
10875internal DeconstructionVariable(BoundExpression expression, ArrayBuilder<DeconstructionVariable> nestedVariables)
10883private ArrayBuilder<DeconstructionVariable> GetDeconstructionAssignmentVariables(BoundTupleExpression tuple)
10886var builder = ArrayBuilder<DeconstructionVariable>.GetInstance(arguments.Length);
12085protected override void VisitBinaryLogicalOperatorChildren(ArrayBuilder<BoundExpression> stack)
Lowering\ClosureConversion\ClosureConversion.cs (59)
105private readonly ArrayBuilder<EncLambdaInfo> _lambdaDebugInfoBuilder;
106private readonly ArrayBuilder<LambdaRuntimeRudeEditInfo> _lambdaRuntimeRudeEditsBuilder;
133private ArrayBuilder<LocalSymbol> _addedLocals;
137private ArrayBuilder<BoundStatement> _addedStatements;
143private ArrayBuilder<TypeCompilationState.MethodWithBody> _synthesizedMethods;
168ArrayBuilder<EncLambdaInfo> lambdaDebugInfoBuilder,
169ArrayBuilder<LambdaRuntimeRudeEditInfo> lambdaRuntimeRudeEditsBuilder,
238ArrayBuilder<EncLambdaInfo> lambdaDebugInfoBuilder,
239ArrayBuilder<LambdaRuntimeRudeEditInfo> lambdaRuntimeRudeEditsBuilder,
240ArrayBuilder<EncClosureInfo> closureDebugInfoBuilder,
343private void SynthesizeClosureEnvironments(ArrayBuilder<EncClosureInfo> closureDebugInfo)
486var environments = ArrayBuilder<SynthesizedClosureEnvironment>.GetInstance();
640private static void InsertAndFreePrologue<T>(ArrayBuilder<BoundStatement> result, ArrayBuilder<T> prologue) where T : BoundNode
664private BoundNode IntroduceFrame(BoundNode node, Analysis.ClosureEnvironment env, Func<ArrayBuilder<BoundExpression>, ArrayBuilder<LocalSymbol>, BoundNode> F)
677var prologue = ArrayBuilder<BoundExpression>.GetInstance();
726var addedLocals = ArrayBuilder<LocalSymbol>.GetInstance();
749private void InitVariableProxy(SyntaxNode syntax, Symbol symbol, LocalSymbol framePointer, ArrayBuilder<BoundExpression> prologue)
895var argumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(loweredSymbol.ParameterCount);
920var refkindsBuilder = ArrayBuilder<RefKind>.GetInstance(argumentsBuilder.Count);
989var builder = ArrayBuilder<TypeWithAnnotations>.GetInstance(typeArguments.Length);
1139private BoundSequence RewriteSequence(BoundSequence node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals)
1160return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) =>
1165return RewriteBlock(node, ArrayBuilder<BoundExpression>.GetInstance(), ArrayBuilder<LocalSymbol>.GetInstance());
1169private BoundBlock RewriteBlock(BoundBlock node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals)
1173var newStatements = ArrayBuilder<BoundStatement>.GetInstance();
1222return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) =>
1229return RewriteCatch(node, ArrayBuilder<BoundExpression>.GetInstance(), ArrayBuilder<LocalSymbol>.GetInstance());
1233private BoundNode RewriteCatch(BoundCatchBlock node, ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals)
1260var prologueBuilder = ArrayBuilder<BoundStatement>.GetInstance(prologue.Count);
1296return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) =>
1303return RewriteSequence(node, ArrayBuilder<BoundExpression>.GetInstance(), ArrayBuilder<LocalSymbol>.GetInstance());
1313return IntroduceFrame(node, frame, (ArrayBuilder<BoundExpression> prologue, ArrayBuilder<LocalSymbol> newLocals) =>
1315var newStatements = ArrayBuilder<BoundStatement>.GetInstance();
1565var oldAddedStatements = _addedStatements;
1566var oldAddedLocals = _addedLocals;
1611_synthesizedMethods = ArrayBuilder<TypeCompilationState.MethodWithBody>.GetInstance();
1723if (_addedLocals == null) _addedLocals = ArrayBuilder<LocalSymbol>.GetInstance();
1725if (_addedStatements == null) _addedStatements = ArrayBuilder<BoundStatement>.GetInstance();
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (21)
32protected abstract ArrayBuilder<BoundStatement> BuilderForSection(SyntaxNode section);
38private ArrayBuilder<BoundStatement> _loweredDecisionDag;
340ArrayBuilder<BoundStatement> result,
371_loweredDecisionDag = ArrayBuilder<BoundStatement>.GetInstance();
589var cases = ArrayBuilder<(ConstantValue value, LabelSymbol label)>.GetInstance();
646var whenTrueBuilder = ArrayBuilder<(ConstantValue value, LabelSymbol label)>.GetInstance();
647var whenFalseBuilder = ArrayBuilder<(ConstantValue value, LabelSymbol label)>.GetInstance();
1002var whenExpressionMap = PooledDictionary<BoundExpression, (LabelSymbol LabelToWhenExpression, ArrayBuilder<BoundWhenDecisionDagNode> WhenNodes)>.GetInstance();
1020var list = ArrayBuilder<BoundWhenDecisionDagNode>.GetInstance();
1063ArrayBuilder<BoundStatement> sectionBuilder = BuilderForSection(whenNode.Syntax);
1079void lowerWhenExpressionIfShared(BoundExpression whenExpression, LabelSymbol labelToWhenExpression, ArrayBuilder<BoundWhenDecisionDagNode> whenNodes)
1094ArrayBuilder<BoundStatement> sectionBuilder = BuilderForSection(whenClauseSyntax);
1099var whenFalseSwitchSections = ArrayBuilder<SyntheticSwitchSection>.GetInstance();
1123void addConditionalGoto(BoundExpression whenExpression, SyntaxNode whenClauseSyntax, LabelSymbol whenTrueLabel, ArrayBuilder<BoundStatement> sectionBuilder)
1155ArrayBuilder<BoundStatement> sectionBuilder = BuilderForSection(whenClause.Syntax);
1177void lowerBindings(ImmutableArray<BoundPatternBinding> bindings, ArrayBuilder<BoundStatement> sectionBuilder)
Lowering\LocalRewriter\LocalRewriter_Call.cs (43)
141ref ArrayBuilder<LocalSymbol> temps,
169var typeArgumentsBuilder = ArrayBuilder<TypeWithAnnotations>.GetInstance();
345var calls = ArrayBuilder<BoundCall>.GetInstance();
394ArrayBuilder<LocalSymbol>? temps = null;
656ArrayBuilder<BoundExpression>? storesOpt,
657ref ArrayBuilder<LocalSymbol>? tempsOpt,
713tempsOpt ??= ArrayBuilder<LocalSymbol>.GetInstance();
726var visitedArgumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(arguments.Length);
730var saveTempsOpt = tempsOpt;
811void ensureTempTrackingSetup([NotNull] ref ArrayBuilder<LocalSymbol>? tempsOpt, ref BitVector positionsAssignedToTemp)
813tempsOpt ??= ArrayBuilder<LocalSymbol>.GetInstance();
823ArrayBuilder<BoundExpression> visitedArgumentsBuilder,
826ref ArrayBuilder<LocalSymbol>? tempsOpt,
927private void ReferToTempIfReferenceTypeReceiver(BoundLocal receiverTemp, ref BoundAssignmentOperator assignmentToTemp, out BoundAssignmentOperator? extraRefInitialization, ArrayBuilder<LocalSymbol> temps)
1000[NotNull] ref ArrayBuilder<LocalSymbol>? temps,
1012temps ??= ArrayBuilder<LocalSymbol>.GetInstance();
1081ArrayBuilder<BoundAssignmentOperator> storesToTemps = ArrayBuilder<BoundAssignmentOperator>.GetInstance(rewrittenArguments.Length);
1082ArrayBuilder<RefKind> refKinds = ArrayBuilder<RefKind>.GetInstance(parameters.Length, RefKind.None);
1154ArrayBuilder<RefKind>? refKindsBuilder = null;
1187static void fillRefKindsBuilder(ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<ParameterSymbol> parameters, [NotNull] ref ArrayBuilder<RefKind>? refKindsBuilder)
1194refKindsBuilder = ArrayBuilder<RefKind>.GetInstance(parameters.Length);
1199refKindsBuilder = ArrayBuilder<RefKind>.GetInstance(parameters.Length, fillWithValue: RefKind.None);
1254private static ImmutableArray<RefKind> GetRefKindsOrNull(ArrayBuilder<RefKind> refKinds)
1273ArrayBuilder<BoundExpression>? elementsBuilder = null;
1284elementsBuilder = ArrayBuilder<BoundExpression>.GetInstance(elements.Length);
1320/* out */ ArrayBuilder<RefKind> refKinds,
1321/* out */ ArrayBuilder<BoundAssignmentOperator> storesToTemps)
1353(LocalRewriter rewriter, bool forceLambdaSpilling, ArrayBuilder<BoundAssignmentOperator> storesToTemps) arg = (rewriter: this, forceLambdaSpilling, storesToTemps);
1356static (BoundExpression element, ref (LocalRewriter rewriter, bool forceLambdaSpilling, ArrayBuilder<BoundAssignmentOperator> storesToTemps) arg) =>
1386private BoundExpression StoreArgumentToTempIfNecessary(bool forceLambdaSpilling, ArrayBuilder<BoundAssignmentOperator> storesToTemps, BoundExpression argument, RefKind argRefKind, RefKind paramRefKind)
1465ArrayBuilder<BoundAssignmentOperator> storesToTemps,
1466ArrayBuilder<LocalSymbol> temporariesBuilder)
1495ArrayBuilder<BoundAssignmentOperator> tempStores)
1523(ArrayBuilder<BoundAssignmentOperator> tempStores, int tempsRemainedInUse, int firstUnclaimedStore) arg = (tempStores, tempsRemainedInUse, firstUnclaimedStore);
1526static (BoundExpression element, ref (ArrayBuilder<BoundAssignmentOperator> tempStores, int tempsRemainedInUse, int firstUnclaimedStore) arg) =>
1541static BoundExpression mergeArgumentAndSideEffect(BoundExpression argument, ArrayBuilder<BoundAssignmentOperator> tempStores, ref int tempsRemainedInUse, ref int firstUnclaimedStore)
1613ArrayBuilder<RefKind> argsRefKindsBuilder,
1614ArrayBuilder<LocalSymbol> temporariesBuilder)
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (29)
343var sideEffects = ArrayBuilder<BoundExpression>.GetInstance(elements.Length + 1);
581var sideEffects = ArrayBuilder<BoundExpression>.GetInstance();
758var localsBuilder = ArrayBuilder<BoundLocal>.GetInstance();
759var sideEffects = ArrayBuilder<BoundExpression>.GetInstance();
786addElement: (ArrayBuilder<BoundExpression> expressions, BoundExpression arrayTemp, BoundExpression rewrittenValue, bool isLastElement) =>
814tryOptimizeSpreadElement: (ArrayBuilder<BoundExpression> sideEffects, BoundExpression arrayTemp, BoundCollectionExpressionSpreadElement spreadElement, BoundExpression rewrittenSpreadOperand) =>
981ArrayBuilder<BoundExpression> sideEffects,
982ArrayBuilder<BoundLocal> localsBuilder,
1027var localsBuilder = ArrayBuilder<BoundLocal>.GetInstance();
1028var sideEffects = ArrayBuilder<BoundExpression>.GetInstance(elements.Length + 1);
1122addElement: (ArrayBuilder<BoundExpression> expressions, BoundExpression spanTemp, BoundExpression rewrittenValue, bool isLastElement) =>
1150tryOptimizeSpreadElement: (ArrayBuilder<BoundExpression> sideEffects, BoundExpression spanTemp, BoundCollectionExpressionSpreadElement spreadElement, BoundExpression rewrittenSpreadOperand) =>
1169addElement: (ArrayBuilder<BoundExpression> expressions, BoundExpression listTemp, BoundExpression rewrittenValue, bool isLastElement) =>
1175tryOptimizeSpreadElement: (ArrayBuilder<BoundExpression> sideEffects, BoundExpression listTemp, BoundCollectionExpressionSpreadElement spreadElement, BoundExpression rewrittenSpreadOperand) =>
1214ArrayBuilder<BoundLocal> locals,
1215ArrayBuilder<BoundExpression> sideEffects)
1230ArrayBuilder<BoundLocal> rewrittenExpressions,
1232ArrayBuilder<BoundExpression> sideEffects,
1233Action<ArrayBuilder<BoundExpression>, BoundExpression, BoundExpression, bool> addElement,
1234Func<ArrayBuilder<BoundExpression>, BoundExpression, BoundCollectionExpressionSpreadElement, BoundExpression, bool> tryOptimizeSpreadElement)
1254var builder = ArrayBuilder<BoundExpression>.GetInstance();
1273private BoundExpression GetKnownLengthExpression(ImmutableArray<BoundNode> elements, int numberIncludingLastSpread, ArrayBuilder<BoundLocal> rewrittenExpressions)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (32)
85var temps = ArrayBuilder<LocalSymbol>.GetInstance();
86var stores = ArrayBuilder<BoundExpression>.GetInstance();
118var eventTemps = ArrayBuilder<LocalSymbol>.GetInstance();
119var sequence = ArrayBuilder<BoundExpression>.GetInstance();
249private BoundExpression? TransformPropertyOrEventReceiver(Symbol propertyOrEvent, BoundExpression? receiverOpt, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps)
327private BoundDynamicMemberAccess TransformDynamicMemberAccess(BoundDynamicMemberAccess memberAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps)
344private BoundIndexerAccess TransformIndexerAccess(BoundIndexerAccess indexerAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps)
415ArrayBuilder<BoundExpression> stores,
416ArrayBuilder<LocalSymbol> temps)
427ArrayBuilder<BoundAssignmentOperator> storesToTemps = ArrayBuilder<BoundAssignmentOperator>.GetInstance(rewrittenArguments.Length);
428ArrayBuilder<RefKind> refKinds = ArrayBuilder<RefKind>.GetInstance(parameters.Length, RefKind.None);
503ArrayBuilder<BoundExpression> stores,
504ArrayBuilder<LocalSymbol> temps,
518private BoundExpression TransformIndexPatternIndexerAccess(BoundImplicitIndexerAccess implicitIndexerAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps, bool isDynamicAssignment)
554private bool TransformCompoundAssignmentFieldOrEventAccessReceiver(Symbol fieldOrEvent, ref BoundExpression? receiver, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps)
597private BoundDynamicIndexerAccess TransformDynamicIndexerAccess(BoundDynamicIndexerAccess indexerAccess, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps)
656private BoundExpression TransformCompoundAssignmentLHS(BoundExpression originalLHS, ArrayBuilder<BoundExpression> stores, ArrayBuilder<LocalSymbol> temps, bool isDynamicAssignment)
874ArrayBuilder<BoundExpression> stores,
875ArrayBuilder<LocalSymbol> temps)
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (39)
39var lhsTemps = ArrayBuilder<LocalSymbol>.GetInstance();
40var lhsEffects = ArrayBuilder<BoundExpression>.GetInstance();
41ArrayBuilder<Binder.DeconstructionVariable> lhsTargets = GetAssignmentTargetsAndSideEffects(left, lhsTemps, lhsEffects);
56ArrayBuilder<Binder.DeconstructionVariable> lhsTargets,
77var temps = ArrayBuilder<LocalSymbol>.GetInstance();
152static bool canReorderTargetAssignments(ArrayBuilder<Binder.DeconstructionVariable> targets, ref PooledHashSet<Symbol>? visitedSymbols)
211ArrayBuilder<Binder.DeconstructionVariable> leftTargets,
214ArrayBuilder<LocalSymbol> temps,
226var builder = isUsed ? ArrayBuilder<BoundExpression>.GetInstance(leftTargets.Count) : null;
278ArrayBuilder<LocalSymbol> temps, DeconstructionSideEffects effects, ref bool inInit)
334private ImmutableArray<BoundExpression> AccessTupleFields(BoundExpression expression, ArrayBuilder<LocalSymbol> temps,
335ArrayBuilder<BoundExpression> effects)
361var builder = ArrayBuilder<BoundExpression>.GetInstance(numElements);
371ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> effects)
382ArrayBuilder<BoundExpression> effects, ArrayBuilder<LocalSymbol> temps)
387var outLocals = ArrayBuilder<BoundExpression>.GetInstance(outputPlaceholders.Length);
420ArrayBuilder<BoundExpression> effects,
421ArrayBuilder<LocalSymbol> temps)
443private ArrayBuilder<Binder.DeconstructionVariable> GetAssignmentTargetsAndSideEffects(BoundTupleExpression variables, ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> effects)
445var assignmentTargets = ArrayBuilder<Binder.DeconstructionVariable>.GetInstance(variables.Arguments.Length);
475internal ArrayBuilder<BoundExpression> init = null!;
476internal ArrayBuilder<BoundExpression> deconstructions = null!;
477internal ArrayBuilder<BoundExpression> conversions = null!;
478internal ArrayBuilder<BoundExpression> assignments = null!;
483result.init = ArrayBuilder<BoundExpression>.GetInstance();
484result.deconstructions = ArrayBuilder<BoundExpression>.GetInstance();
485result.conversions = ArrayBuilder<BoundExpression>.GetInstance();
486result.assignments = ArrayBuilder<BoundExpression>.GetInstance();
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (23)
159ArrayBuilder<LocalSymbol>? temps = null;
251var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance();
252var sideEffectsBuilder = ArrayBuilder<BoundExpression>.GetInstance();
456var locals = ArrayBuilder<LocalSymbol>.GetInstance(2);
457var sideeffects = ArrayBuilder<BoundExpression>.GetInstance(2);
476ArrayBuilder<BoundExpression> sideeffects,
477ArrayBuilder<LocalSymbol> locals)
758var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance();
759var sideEffectsBuilder = ArrayBuilder<BoundExpression>.GetInstance();
769private BoundExpression VisitRangePatternIndexerAccess(BoundImplicitIndexerAccess node, ArrayBuilder<LocalSymbol> localsBuilder, ArrayBuilder<BoundExpression> sideEffectsBuilder, bool cacheAllArgumentsOnly)
815var argumentsBuilder = ArrayBuilder<BoundExpression>.GetInstance(2);
996private BoundExpression MakeRangeSize(ref BoundExpression startExpr, BoundExpression endExpr, ArrayBuilder<LocalSymbol> localsBuilder, ArrayBuilder<BoundExpression> sideEffectsBuilder)
1027private void DeconstructRange(BoundExpression rewrittenRangeArg, BoundExpression lengthAccess, ArrayBuilder<LocalSymbol> localsBuilder, ArrayBuilder<BoundExpression> sideEffectsBuilder, out BoundExpression startExpr, out BoundExpression rangeSizeExpr)
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (36)
32ref ArrayBuilder<BoundExpression>? dynamicSiteInitializers,
33ref ArrayBuilder<LocalSymbol>? temps,
34ArrayBuilder<BoundExpression> result,
76var result = ArrayBuilder<BoundExpression>.GetInstance();
84void addCollectionInitializersForExpressionTree(ArrayBuilder<BoundExpression> result, ImmutableArray<BoundExpression> initializers)
127private void AddCollectionInitializers(ArrayBuilder<BoundExpression> result, BoundExpression rewrittenReceiver, ImmutableArray<BoundExpression> initializers)
208var builder = ArrayBuilder<RefKind>.GetInstance(addMethod.Parameters.Length, RefKind.None);
214ArrayBuilder<LocalSymbol>? temps = null;
245private BoundExpression VisitObjectInitializerMember(BoundObjectInitializerMember node, ref BoundExpression rewrittenReceiver, ArrayBuilder<BoundExpression> sideEffects, ref ArrayBuilder<LocalSymbol>? temps)
253ArrayBuilder<LocalSymbol>? constructionTemps = null;
283ref ArrayBuilder<BoundExpression>? dynamicSiteInitializers,
284ref ArrayBuilder<LocalSymbol>? temps,
285ArrayBuilder<BoundExpression> result,
303ref ArrayBuilder<BoundExpression>? dynamicSiteInitializers,
304ref ArrayBuilder<LocalSymbol>? temps,
305ArrayBuilder<BoundExpression> result,
364dynamicSiteInitializers = ArrayBuilder<BoundExpression>.GetInstance();
414dynamicSiteInitializers = ArrayBuilder<BoundExpression>.GetInstance();
457temps ??= ArrayBuilder<LocalSymbol>.GetInstance();
493temps = ArrayBuilder<LocalSymbol>.GetInstance();
515temps ??= ArrayBuilder<LocalSymbol>.GetInstance();
568void addIndexes(ArrayBuilder<BoundExpression> result, BoundAssignmentOperator assignment)
623ArrayBuilder<BoundExpression> sideeffects,
624ref ArrayBuilder<LocalSymbol>? temps)
626ArrayBuilder<BoundExpression>? newArgs = null;
638(LocalRewriter rewriter, ArrayBuilder<BoundExpression> sideeffects, ArrayBuilder<LocalSymbol>? temps) elementArg = (rewriter: this, sideeffects, temps);
641static (BoundExpression element, ref (LocalRewriter rewriter, ArrayBuilder<BoundExpression> sideeffects, ArrayBuilder<LocalSymbol>? temps) elementArg) =>
655newArgs = ArrayBuilder<BoundExpression>.GetInstance(args.Length);
670private BoundExpression EvaluateSideEffects(BoundExpression arg, RefKind refKind, ArrayBuilder<BoundExpression> sideeffects, ref ArrayBuilder<LocalSymbol>? temps)
679temps = ArrayBuilder<LocalSymbol>.GetInstance();
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (14)
28ArrayBuilder<BoundExpression> arguments;
36arguments = ArrayBuilder<BoundExpression>.GetInstance();
58CollectAndVisitConcatArguments(originalOperator, visitedCompoundAssignmentLeftRead: null, out var arguments);
72private BoundExpression CreateStringConcat(SyntaxNode originalSyntax, ArrayBuilder<BoundExpression> visitedArguments)
205/// <see cref="CreateStringConcat(SyntaxNode, ArrayBuilder{BoundExpression})"/> and performs any optimizations on the arguments that can be done. This
208private void CollectAndVisitConcatArguments(BoundBinaryOperator originalOperator, BoundExpression? visitedCompoundAssignmentLeftRead, out ArrayBuilder<BoundExpression> destinationArguments)
211destinationArguments = ArrayBuilder<BoundExpression>.GetInstance();
229static void pushArguments(LocalRewriter self, BoundBinaryOperator binaryOperator, ArrayBuilder<BoundExpression> arguments, ref WellKnownConcatRelatedMethods concatMethods)
278private void VisitAndAddConcatArgumentInReverseOrder(BoundExpression argument, bool argumentAlreadyVisited, ArrayBuilder<BoundExpression> finalArguments, ref WellKnownConcatRelatedMethods wellKnownConcatOptimizationMethods)
467ArrayBuilder<BoundExpression> args)
469var localsBuilder = ArrayBuilder<LocalSymbol>.GetInstance();
533var stack = ArrayBuilder<BoundBinaryOperator>.GetInstance();
Lowering\LocalRewriter\LocalRewriter_TupleBinaryOperator.cs (32)
31var initEffects = ArrayBuilder<BoundExpression>.GetInstance();
32var temps = ArrayBuilder<LocalSymbol>.GetInstance();
64var builder = ArrayBuilder<BoundExpression>.GetInstance(tuple.Arguments.Length);
100ArrayBuilder<BoundExpression> initEffects,
101ArrayBuilder<LocalSymbol> temps)
112var fieldAccessorsBuilder = ArrayBuilder<BoundExpression>.GetInstance(numElements);
141ArrayBuilder<BoundExpression> initEffects,
142ArrayBuilder<LocalSymbol> temps)
152var builder = ArrayBuilder<BoundExpression>.GetInstance(tuple.Arguments.Length);
182ArrayBuilder<BoundExpression> effects,
183ArrayBuilder<LocalSymbol> temps,
247ArrayBuilder<LocalSymbol> temps, BinaryOperatorKind operatorKind)
267TypeSymbol boolType, ArrayBuilder<LocalSymbol> temps, BinaryOperatorKind operatorKind)
288var outerEffects = ArrayBuilder<BoundExpression>.GetInstance();
289var innerEffects = ArrayBuilder<BoundExpression>.GetInstance();
353private void MakeNullableParts(BoundExpression expr, ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> innerEffects,
354ArrayBuilder<BoundExpression> outerEffects, bool saveHasValue, out BoundExpression hasValue, out BoundExpression value, out bool isNullable)
416private BoundLocal MakeTemp(BoundExpression loweredExpression, ArrayBuilder<LocalSymbol> temps, ArrayBuilder<BoundExpression> effects)
429ArrayBuilder<LocalSymbol> temps,
430ArrayBuilder<BoundExpression> effects)
449var argumentBuilder = ArrayBuilder<BoundExpression>.GetInstance(tupleCardinality);
486ArrayBuilder<LocalSymbol> temps, BinaryOperatorKind operatorKind)
Parser\Lexer_StringLiteral.cs (6)
286ArrayBuilder<Interpolation>? interpolations,
376ArrayBuilder<Interpolation>? interpolations,
635InterpolatedStringKind kind, int startingDollarSignCount, int startingQuoteCount, ArrayBuilder<Interpolation>? interpolations)
836private void HandleOpenBraceInContent(InterpolatedStringKind kind, int startingDollarSignCount, ArrayBuilder<Interpolation>? interpolations)
848private void HandleOpenBraceInNormalOrVerbatimContent(InterpolatedStringKind kind, ArrayBuilder<Interpolation>? interpolations)
877private void HandleOpenBraceInRawContent(InterpolatedStringKind kind, int startingDollarSignCount, ArrayBuilder<Interpolation>? interpolations)
Symbols\Compilation_WellKnownMembers.cs (21)
417var builder = new ArrayBuilder<KeyValuePair<string, TypedConstant>>(namedArguments.Length);
829var namesBuilder = ArrayBuilder<string?>.GetInstance();
842var namesBuilder = ArrayBuilder<string?>.GetInstance();
856internal static bool TryGetNames(TypeSymbol type, ArrayBuilder<string?> namesBuilder)
862private static bool AddNames(TypeSymbol type, ArrayBuilder<string?> namesBuilder)
893var flagsBuilder = ArrayBuilder<bool>.GetInstance();
905var builder = ArrayBuilder<bool>.GetInstance();
912var builder = ArrayBuilder<bool>.GetInstance();
917internal static void Encode(TypeSymbol type, int customModifiersCount, RefKind refKind, ArrayBuilder<bool> transformFlagsBuilder, bool addCustomModifierFlags)
939private static bool AddFlags(TypeSymbol type, ArrayBuilder<bool> transformFlagsBuilder, bool isNestedNamedType, bool addCustomModifierFlags)
996static void handleFunctionPointerType(FunctionPointerTypeSymbol funcPtr, ArrayBuilder<bool> transformFlagsBuilder, bool addCustomModifierFlags)
998Func<TypeSymbol, (ArrayBuilder<bool>, bool), bool, bool> visitor =
999(TypeSymbol type, (ArrayBuilder<bool> builder, bool addCustomModifierFlags) param, bool isNestedNamedType) => AddFlags(type, param.builder, isNestedNamedType, param.addCustomModifierFlags);
1034private static void HandleCustomModifiers(int customModifiersCount, ArrayBuilder<bool> transformFlagsBuilder)
1043internal static void Encode(ArrayBuilder<bool> builder, TypeSymbol type)
1049private static bool AddFlags(TypeSymbol type, ArrayBuilder<bool> builder)
Symbols\ConstraintsHelper.cs (55)
80var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
81ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder = null;
135ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder,
136ref ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder,
152var constraintTypesBuilder = ArrayBuilder<TypeWithAnnotations>.GetInstance();
153var interfacesBuilder = ArrayBuilder<NamedTypeSymbol>.GetInstance();
423ArrayBuilder<TypeParameterConstraintClause> builder = null;
447builder = ArrayBuilder<TypeParameterConstraintClause>.GetInstance(constraintClauses.Length);
467ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder)
623var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
624var nullabilityDiagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
625var underlyingTupleTypeChain = ArrayBuilder<NamedTypeSymbol>.GetInstance();
631ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder = null;
649void populateDiagnosticsAndClear(ArrayBuilder<TypeParameterDiagnosticInfo> builder, BindingDiagnosticBag bag)
690var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
691ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder = null;
727var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
728ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder = null;
819var diagnosticsBuilder = ArrayBuilder<TypeParameterDiagnosticInfo>.GetInstance();
820ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder = null;
846ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder,
847ArrayBuilder<TypeParameterDiagnosticInfo> nullabilityDiagnosticsBuilderOpt,
848ref ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder)
864ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder,
865ArrayBuilder<TypeParameterDiagnosticInfo> nullabilityDiagnosticsBuilderOpt,
866ref ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder,
903ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder,
904ArrayBuilder<TypeParameterDiagnosticInfo> nullabilityDiagnosticsBuilderOpt,
905ref ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder,
954ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder,
955ArrayBuilder<TypeParameterDiagnosticInfo> nullabilityDiagnosticsBuilderOpt,
956ref ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder)
1061ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder,
1062ArrayBuilder<TypeParameterDiagnosticInfo> nullabilityDiagnosticsBuilderOpt,
1063ref ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder,
1086var constraintTypes = ArrayBuilder<TypeWithAnnotations>.GetInstance();
1120static bool errorIfNotSatisfiesConstructorConstraint(Symbol containingSymbol, TypeParameterSymbol typeParameter, TypeWithAnnotations typeArgument, ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder)
1147ArrayBuilder<TypeParameterDiagnosticInfo> nullabilityDiagnosticsBuilderOpt)
1171ArrayBuilder<TypeParameterDiagnosticInfo> diagnosticsBuilder,
1172ArrayBuilder<TypeParameterDiagnosticInfo> nullabilityDiagnosticsBuilderOpt,
1303ref ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder)
1340static ArrayBuilder<TypeParameterDiagnosticInfo> ensureUseSiteDiagnosticsBuilder(ref ArrayBuilder<TypeParameterDiagnosticInfo> useSiteDiagnosticsBuilder)
1457private static void AddInterfaces(ArrayBuilder<NamedTypeSymbol> builder, ImmutableArray<NamedTypeSymbol> interfaces)
1465private static void AddInterface(ArrayBuilder<NamedTypeSymbol> builder, NamedTypeSymbol @interface)
Symbols\NamedTypeSymbol.cs (23)
208internal void AddOperators(string name, ArrayBuilder<MethodSymbol> operators)
217internal static void AddOperators(ArrayBuilder<MethodSymbol> operators, ImmutableArray<Symbol> candidates)
277ArrayBuilder<MethodSymbol> constructors = ArrayBuilder<MethodSymbol>.GetInstance();
316ArrayBuilder<PropertySymbol> indexers = ArrayBuilder<PropertySymbol>.GetInstance();
338internal void GetExtensionMethods(ArrayBuilder<MethodSymbol> methods, string nameOpt, int arity, LookupOptions options)
346internal void DoGetExtensionMethods(ArrayBuilder<MethodSymbol> methods, string nameOpt, int arity, LookupOptions options)
928internal override void AddNullableTransforms(ArrayBuilder<byte> transforms)
946var allTypeArguments = ArrayBuilder<TypeWithAnnotations>.GetInstance();
979var allTypeArguments = ArrayBuilder<TypeWithAnnotations>.GetInstance();
1015var allTypeParameters = ArrayBuilder<TypeParameterSymbol>.GetInstance();
1016var allTypeArguments = ArrayBuilder<TypeWithAnnotations>.GetInstance();
1046ArrayBuilder<TypeParameterSymbol> allTypeParameters,
1047ArrayBuilder<TypeWithAnnotations> allTypeArguments)
1296ArrayBuilder<TypeWithAnnotations> builder = ArrayBuilder<TypeWithAnnotations>.GetInstance();
1301internal void GetAllTypeArguments(ArrayBuilder<TypeWithAnnotations> builder, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1312internal void GetAllTypeArgumentsNoUseSiteDiagnostics(ArrayBuilder<TypeWithAnnotations> builder)
Symbols\Source\SourceMemberContainerSymbol.cs (81)
1328var symbols = ArrayBuilder<NamedTypeSymbol>.GetInstance();
1671dictionary.Add(pair.Key, pair.Value is ArrayBuilder<Symbol> arrayBuilder
2492var membersBuilder = ArrayBuilder<Symbol>.GetInstance(existingMembers.Length + newMembers.Length);
2493var membersUnorderedBuilder = ArrayBuilder<Symbol>.GetInstance(membersUnordered.Length + newMembers.Length);
2797var ops1 = ArrayBuilder<MethodSymbol>.GetInstance();
2802var ops2 = ArrayBuilder<MethodSymbol>.GetInstance();
2810var ops2 = ArrayBuilder<MethodSymbol>.GetInstance();
2834string operatorName1, ArrayBuilder<MethodSymbol> ops1)
2845ArrayBuilder<MethodSymbol> ops1,
2846ArrayBuilder<MethodSymbol> ops2,
2914var ops = ArrayBuilder<MethodSymbol>.GetInstance();
3205public ArrayBuilder<Symbol> NonTypeMembersWithPartialImplementations = ArrayBuilder<Symbol>.GetInstance();
3206public readonly ArrayBuilder<ArrayBuilder<FieldOrPropertyInitializer>> StaticInitializers = ArrayBuilder<ArrayBuilder<FieldOrPropertyInitializer>>.GetInstance();
3207public readonly ArrayBuilder<ArrayBuilder<FieldOrPropertyInitializer>> InstanceInitializers = ArrayBuilder<ArrayBuilder<FieldOrPropertyInitializer>>.GetInstance();
3250foreach (var group in StaticInitializers)
3256foreach (var group in InstanceInitializers)
3357private ArrayBuilder<Symbol>? NonTypeMembers;
3358private ArrayBuilder<FieldOrPropertyInitializer>? InstanceInitializersForPositionalMembers;
3415ArrayBuilder<ImmutableArray<FieldOrPropertyInitializer>> groupsBuilder;
3423var insertedInitializers = InstanceInitializersForPositionalMembers;
3432groupsBuilder = ArrayBuilder<ImmutableArray<FieldOrPropertyInitializer>>.GetInstance(groupCount);
3442groupsBuilder = ArrayBuilder<ImmutableArray<FieldOrPropertyInitializer>>.GetInstance(groupCount + 1);
3460InstanceInitializersForPositionalMembers = ArrayBuilder<FieldOrPropertyInitializer>.GetInstance();
3476NonTypeMembers = ArrayBuilder<Symbol>.GetInstance(declaredNonTypeMembers.Length + 1);
3483public void SetNonTypeMembers(ArrayBuilder<Symbol> members)
3500internal static ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> ToReadOnlyAndFree(ArrayBuilder<ArrayBuilder<FieldOrPropertyInitializer>> initializers)
3508var builder = ArrayBuilder<ImmutableArray<FieldOrPropertyInitializer>>.GetInstance(initializers.Count);
3509foreach (ArrayBuilder<FieldOrPropertyInitializer> group in initializers)
3642var nonTypeMembersBuilder = ArrayBuilder<Symbol>.GetInstance(nonTypeMembersWithPartialImplementations.Length);
3682ArrayBuilder<SynthesizedSimpleProgramEntryPointSymbol>? builder = null;
3690builder = ArrayBuilder<SynthesizedSimpleProgramEntryPointSymbol>.GetInstance();
3831ArrayBuilder<Symbol>? memberBuilder = null;
3842memberBuilder ??= ArrayBuilder<Symbol>.GetInstance(types.Length + 1);
4023ArrayBuilder<Symbol> nonTypeMembers,
4033if (pair.Value is ArrayBuilder<Symbol> arrayBuilder)
4142if (pair.Value is ArrayBuilder<Symbol> arrayBuilder)
4164static void mergePartialMethods(ArrayBuilder<Symbol> nonTypeMembers, SourceOrdinaryMethodSymbol currentMethod, SourceOrdinaryMethodSymbol prevMethod, BindingDiagnosticBag diagnostics)
4184static void mergePartialProperties(ArrayBuilder<Symbol> nonTypeMembers, SourcePropertySymbol currentProperty, SourcePropertySymbol prevProperty, BindingDiagnosticBag diagnostics)
4208void mergeAccessors(ArrayBuilder<Symbol> nonTypeMembers, SourcePropertyAccessorSymbol? currentAccessor, SourcePropertyAccessorSymbol? prevAccessor)
4233static void mergePartialConstructors(ArrayBuilder<Symbol> nonTypeMembers, SourceConstructorSymbol currentConstructor, SourceConstructorSymbol prevConstructor, BindingDiagnosticBag diagnostics)
4253static void mergePartialEvents(ArrayBuilder<Symbol> nonTypeMembers, SourceEventSymbol currentEvent, SourceEventSymbol prevEvent, BindingDiagnosticBag diagnostics)
4274static void mergeAccessors(ArrayBuilder<Symbol> nonTypeMembers, SourceEventAccessorSymbol? currentAccessor, SourceEventAccessorSymbol? prevAccessor)
4289private static void FixPartialMethod(ArrayBuilder<Symbol> nonTypeMembers, SourceOrdinaryMethodSymbol part1, SourceOrdinaryMethodSymbol part2)
4311private static void FixPartialProperty(ArrayBuilder<Symbol> nonTypeMembers, SourcePropertySymbol part1, SourcePropertySymbol part2)
4339private static void FixPartialConstructor(ArrayBuilder<Symbol> nonTypeMembers, SourceConstructorSymbol part1, SourceConstructorSymbol part2)
4361private static void FixPartialEvent(ArrayBuilder<Symbol> nonTypeMembers, SourceEventSymbol part1, SourceEventSymbol part2)
4382private static void Remove(ArrayBuilder<Symbol> symbols, Symbol symbol)
4586private static void AddInitializer(ref ArrayBuilder<FieldOrPropertyInitializer>? initializers, FieldSymbol? fieldOpt, CSharpSyntaxNode node)
4590initializers = ArrayBuilder<FieldOrPropertyInitializer>.GetInstance();
4603ArrayBuilder<ArrayBuilder<FieldOrPropertyInitializer>> allInitializers,
4604ArrayBuilder<FieldOrPropertyInitializer>? siblingsOpt)
4731ArrayBuilder<Symbol> members,
4772foreach (var initializers in builder.InstanceInitializers)
4805var members = ArrayBuilder<Symbol>.GetInstance(membersSoFar.Count + 1);
5163var existingOrAddedMembers = ArrayBuilder<Symbol>.GetInstance(recordParameters.Length);
5518var synthesizedMembers = this.MakeSynthesizedTupleMembers(declaredMembersAndInitializers.GetNonTypeMembers(this));
5545ArrayBuilder<FieldOrPropertyInitializer>? staticInitializers = null;
5546ArrayBuilder<FieldOrPropertyInitializer>? instanceInitializers = null;
5902private void AddAccessorIfAvailable(ArrayBuilder<Symbol> symbols, MethodSymbol? accessorOpt)
5963internal override void AddSynthesizedAttributes(PEModuleBuilder moduleBuilder, ref ArrayBuilder<CSharpAttributeData> attributes)
6045internal void DiscoverInterceptors(ArrayBuilder<NamespaceOrTypeSymbol> toSearch)
Symbols\Synthesized\SynthesizedEmbeddedNullableAttributeSymbol.cs (5)
76private void GenerateByteArrayConstructorBody(SyntheticBoundNodeFactory factory, ArrayBuilder<BoundStatement> statements, ImmutableArray<ParameterSymbol> parameters)
90private void GenerateSingleByteConstructorBody(SyntheticBoundNodeFactory factory, ArrayBuilder<BoundStatement> statements, ImmutableArray<ParameterSymbol> parameters)
114private readonly Action<SyntheticBoundNodeFactory, ArrayBuilder<BoundStatement>, ImmutableArray<ParameterSymbol>> _getConstructorBody;
119Action<SyntheticBoundNodeFactory, ArrayBuilder<BoundStatement>, ImmutableArray<ParameterSymbol>> getConstructorBody) :
133internal override void GenerateMethodBodyStatements(SyntheticBoundNodeFactory factory, ArrayBuilder<BoundStatement> statements, BindingDiagnosticBag diagnostics) => _getConstructorBody(factory, statements, _parameters);