src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (22)
88Func<DiagnosticAnalyzer, ImmutableArray<DiagnosticDescriptor>> getSupportedDiagnostics,
158using var _2 = ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)>.GetInstance(out var sortedPragmasWithIds);
230ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
232ImmutableArray<string> userExclusions)
346private static (ImmutableArray<string> userIdExclusions, ImmutableArray<string> userCategoryExclusions, bool analyzerDisabled) ParseUserExclusions(string? userExclusions)
389private static async Task<(ImmutableArray<Diagnostic> reportedDiagnostics, ImmutableArray<string> unhandledIds)> GetReportedDiagnosticsForIdsAsync(
394Func<DiagnosticAnalyzer, ImmutableArray<DiagnosticDescriptor>> getSupportedDiagnostics,
462var analyzers = analyzersBuilder.ToImmutable();
483static void AddAllDiagnostics(ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>> diagnostics, ArrayBuilder<Diagnostic> reportedDiagnostics)
485foreach (var perAnalyzerDiagnostics in diagnostics.Values)
493foreach (var perAnalyzerDiagnostics in analysisResult.CompilationDiagnostics.Values)
507ImmutableArray<Diagnostic> diagnostics,
610ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
632ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
643ImmutableArray<Location> additionalLocations;
679ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
683var idsForPragma = sortedPragmasWithIds[indexOfPragma].ids;
690var intersect = nextPragmaIds.Intersect(idsForPragma).ToImmutableArray();
738ImmutableArray<string> userIdExclusions,
739ImmutableArray<string> userCategoryExclusions,
src\Compilers\Core\Portable\InternalUtilities\InterlockedOperations.cs (14)
154public static ImmutableArray<T> Initialize<T>(ref ImmutableArray<T> target, ImmutableArray<T> initializedValue)
157var oldValue = ImmutableInterlocked.InterlockedCompareExchange(ref target, initializedValue, default(ImmutableArray<T>));
170public static ImmutableArray<T> Initialize<T>(ref ImmutableArray<T> target, Func<ImmutableArray<T>> createArray)
183public static ImmutableArray<T> Initialize<T, TArg>(ref ImmutableArray<T> target, Func<TArg, ImmutableArray<T>> createArray, TArg arg)
193private static ImmutableArray<T> Initialize_Slow<T, TArg>(ref ImmutableArray<T> target, Func<TArg, ImmutableArray<T>> createArray, TArg arg)
src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (28)
67public static ImmutableArray<T> ToImmutableArrayOrEmpty<T>(this IEnumerable<T>? items)
74if (items is ImmutableArray<T> array)
89if (items is ImmutableArray<T> array)
352public static ImmutableArray<T> WhereAsArray<T, TArg>(this IEnumerable<T> values, Func<T, TArg, bool> predicate, TArg arg)
368public static ImmutableArray<TResult> SelectAsArray<TSource, TResult>(this IEnumerable<TSource>? source, Func<TSource, TResult> selector)
372return ImmutableArray<TResult>.Empty;
381public static ImmutableArray<TResult> SelectAsArray<TSource, TResult>(this IEnumerable<TSource>? source, Func<TSource, int, TResult> selector)
384return ImmutableArray<TResult>.Empty;
398public static ImmutableArray<TResult> SelectAsArray<TSource, TResult>(this IReadOnlyCollection<TSource>? source, Func<TSource, TResult> selector)
401return ImmutableArray<TResult>.Empty;
414public static ImmutableArray<TResult> SelectAsArray<TSource, TResult, TArg>(this IReadOnlyCollection<TSource>? source, Func<TSource, TArg, TResult> selector, TArg arg)
417return ImmutableArray<TResult>.Empty;
430public static ImmutableArray<TResult> SelectManyAsArray<TSource, TResult>(this IEnumerable<TSource>? source, Func<TSource, IEnumerable<TResult>> selector)
433return ImmutableArray<TResult>.Empty;
442public static ImmutableArray<TResult> SelectManyAsArray<TItem, TArg, TResult>(this IEnumerable<TItem>? source, Func<TItem, TArg, IEnumerable<TResult>> selector, TArg arg)
445return ImmutableArray<TResult>.Empty;
454public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this IReadOnlyCollection<TItem>? source, Func<TItem, IEnumerable<TResult>> selector)
457return ImmutableArray<TResult>.Empty;
467public static ImmutableArray<TResult> SelectManyAsArray<TItem, TArg, TResult>(this IReadOnlyCollection<TItem>? source, Func<TItem, TArg, IEnumerable<TResult>> selector, TArg arg)
470return ImmutableArray<TResult>.Empty;
480public static ImmutableArray<TResult> SelectManyAsArray<TSource, TResult>(this IEnumerable<TSource>? source, Func<TSource, OneOrMany<TResult>> selector)
483return ImmutableArray<TResult>.Empty;
495public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TResult>(this IEnumerable<TItem> source, Func<TItem, ValueTask<TResult>> selector)
510public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TResult>(this IEnumerable<TItem> source, Func<TItem, CancellationToken, ValueTask<TResult>> selector, CancellationToken cancellationToken)
525public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TArg, TResult>(this IEnumerable<TItem> source, Func<TItem, TArg, CancellationToken, ValueTask<TResult>> selector, TArg arg, CancellationToken cancellationToken)
537public static async ValueTask<ImmutableArray<TResult>> SelectManyAsArrayAsync<TItem, TArg, TResult>(this IEnumerable<TItem> source, Func<TItem, TArg, CancellationToken, ValueTask<IEnumerable<TResult>>> selector, TArg arg, CancellationToken cancellationToken)
801internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
804var dictionary = new Dictionary<K, ImmutableArray<T>>(comparer);
src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (153)
28/// The collection of extension methods for the <see cref="ImmutableArray{T}"/> type
40public static ImmutableArray<T> AsImmutable<T>(this IEnumerable<T> items)
52public static ImmutableArray<T> AsImmutableOrEmpty<T>(this IEnumerable<T>? items)
56return ImmutableArray<T>.Empty;
69public static ImmutableArray<T> AsImmutableOrNull<T>(this IEnumerable<T>? items)
85public static ImmutableArray<T> AsImmutable<T>(this T[] items)
98public static ImmutableArray<T> AsImmutableOrNull<T>(this T[]? items)
114public static ImmutableArray<T> AsImmutableOrEmpty<T>(this T[]? items)
118return ImmutableArray<T>.Empty;
129public static ImmutableArray<byte> ToImmutable(this MemoryStream stream)
142public static ImmutableArray<TResult> SelectAsArray<TItem, TResult>(this ImmutableArray<TItem> items, Func<TItem, TResult> map)
157public static ImmutableArray<TResult> SelectAsArray<TItem, TArg, TResult>(this ImmutableArray<TItem> items, Func<TItem, TArg, TResult> map, TArg arg)
172public static ImmutableArray<TResult> SelectAsArray<TItem, TArg, TResult>(this ImmutableArray<TItem> items, Func<TItem, int, TArg, TResult> map, TArg arg)
177return ImmutableArray<TResult>.Empty;
211public static ImmutableArray<TResult> SelectAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, bool> predicate, Func<TItem, TResult> selector)
215return ImmutableArray<TResult>.Empty;
241public static ImmutableArray<TResult> SelectAsArray<TItem, TArg, TResult>(this ImmutableArray<TItem> array, Func<TItem, TArg, bool> predicate, Func<TItem, TArg, TResult> selector, TArg arg)
245return ImmutableArray<TResult>.Empty;
268public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, IEnumerable<TResult>> selector)
271return ImmutableArray<TResult>.Empty;
288public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, ImmutableArray<TResult>> selector)
291return ImmutableArray<TResult>.Empty;
308public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, OneOrMany<TResult>> selector)
311return ImmutableArray<TResult>.Empty;
331public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, bool> predicate, Func<TItem, IEnumerable<TResult>> selector)
334return ImmutableArray<TResult>.Empty;
355public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, bool> predicate, Func<TItem, ImmutableArray<TResult>> selector)
358return ImmutableArray<TResult>.Empty;
379public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, bool> predicate, Func<TItem, OneOrMany<TResult>> selector)
382return ImmutableArray<TResult>.Empty;
404public static ImmutableArray<TResult> SelectManyAsArray<TItem, TArg, TResult>(this ImmutableArray<TItem> array, Func<TItem, TArg, bool> predicate, Func<TItem, TArg, OneOrMany<TResult>> selector, TArg arg)
407return ImmutableArray<TResult>.Empty;
422public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, CancellationToken, ValueTask<TResult>> selector, CancellationToken cancellationToken)
425return ImmutableArray<TResult>.Empty;
440public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TArg, TResult>(this ImmutableArray<TItem> array, Func<TItem, TArg, CancellationToken, ValueTask<TResult>> selector, TArg arg, CancellationToken cancellationToken)
443return ImmutableArray<TResult>.Empty;
455public static ValueTask<ImmutableArray<TResult>> SelectManyAsArrayAsync<TItem, TArg, TResult>(this ImmutableArray<TItem> source, Func<TItem, TArg, CancellationToken, ValueTask<ImmutableArray<TResult>>> selector, TArg arg, CancellationToken cancellationToken)
459return new ValueTask<ImmutableArray<TResult>>(ImmutableArray<TResult>.Empty);
469async ValueTask<ImmutableArray<TResult>> CreateTaskAsync()
486public static ImmutableArray<TResult> ZipAsArray<T1, T2, TResult>(this ImmutableArray<T1> self, ImmutableArray<T2> other, Func<T1, T2, TResult> map)
492return ImmutableArray<TResult>.Empty;
517public static ImmutableArray<TResult> ZipAsArray<T1, T2, TArg, TResult>(this ImmutableArray<T1> self, ImmutableArray<T2> other, TArg arg, Func<T1, T2, int, TArg, TResult> map)
522return ImmutableArray<TResult>.Empty;
538public static ImmutableArray<T> WhereAsArray<T>(this ImmutableArray<T> array, Func<T, bool> predicate)
546public static ImmutableArray<T> WhereAsArray<T, TArg>(this ImmutableArray<T> array, Func<T, TArg, bool> predicate, TArg arg)
549private static ImmutableArray<T> WhereAsArrayImpl<T, TArg>(ImmutableArray<T> array, Func<T, bool>? predicateWithoutArg, Func<T, TArg, bool>? predicateWithArg, TArg arg)
614return ImmutableArray<T>.Empty;
618public static bool Any<T, TArg>(this ImmutableArray<T> array, Func<T, TArg, bool> predicate, TArg arg)
634public static bool All<T, TArg>(this ImmutableArray<T> array, Func<T, TArg, bool> predicate, TArg arg)
650public static async Task<bool> AnyAsync<T>(this ImmutableArray<T> array, Func<T, Task<bool>> predicateAsync)
666public static async Task<bool> AnyAsync<T, TArg>(this ImmutableArray<T> array, Func<T, TArg, Task<bool>> predicateAsync, TArg arg)
682public static async ValueTask<T?> FirstOrDefaultAsync<T>(this ImmutableArray<T> array, Func<T, Task<bool>> predicateAsync)
698public static TValue? FirstOrDefault<TValue, TArg>(this ImmutableArray<TValue> array, Func<TValue, TArg, bool> predicate, TArg arg)
711public static TValue Single<TValue, TArg>(this ImmutableArray<TValue> array, Func<TValue, TArg, bool> predicate, TArg arg)
741public static ImmutableArray<TBase> Cast<TDerived, TBase>(this ImmutableArray<TDerived> items)
744return ImmutableArray<TBase>.CastUp(items);
755public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer)
796public static ImmutableArray<T> NullToEmpty<T>(this ImmutableArray<T> array)
798return array.IsDefault ? ImmutableArray<T>.Empty : array;
804public static ImmutableArray<T> NullToEmpty<T>(this ImmutableArray<T>? array)
807null or { IsDefault: true } => ImmutableArray<T>.Empty,
815public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null)
834var result = (builder.Count == array.Length) ? array : builder.ToImmutable();
841internal static ImmutableArray<T> ConditionallyDeOrder<T>(this ImmutableArray<T> array)
858internal static ImmutableArray<TValue> Flatten<TKey, TValue>(
859this Dictionary<TKey, ImmutableArray<TValue>> dictionary,
865return ImmutableArray<TValue>.Empty;
884internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second)
889internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second, ImmutableArray<T> third)
912internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second, ImmutableArray<T> third, ImmutableArray<T> fourth)
940internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second, ImmutableArray<T> third, ImmutableArray<T> fourth, ImmutableArray<T> fifth)
973internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second, ImmutableArray<T> third, ImmutableArray<T> fourth, ImmutableArray<T> fifth, ImmutableArray<T> sixth)
1011internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, T second)
1016internal static ImmutableArray<T> AddRange<T>(this ImmutableArray<T> self, in TemporaryArray<T> items)
1049internal static bool HasDuplicates<T>(this ImmutableArray<T> array)
1085internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer)
1111public static int Count<T>(this ImmutableArray<T> items, Func<T, bool> predicate)
1130public static int Sum<T>(this ImmutableArray<T> items, Func<T, int> selector)
1139public static int Sum<T>(this ImmutableArray<T> items, Func<T, int, int> selector)
1176(Dictionary<TKey, object> dictionary, Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> result)
1187static ImmutableArray<TNamespaceOrTypeSymbol> createMembers(object value)
1198return ImmutableArray<TNamespaceOrTypeSymbol>.CastUp(builder.ToDowncastedImmutableAndFree<TNamedTypeSymbol>());
1205: ImmutableArray<TNamespaceOrTypeSymbol>.CastUp(ImmutableArray.Create((TNamedTypeSymbol)symbol));
1210internal static Dictionary<TKey, ImmutableArray<TNamedTypeSymbol>> GetTypesFromMemberMap<TKey, TNamespaceOrTypeSymbol, TNamedTypeSymbol>
1211(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer)
1222var dictionary = new Dictionary<TKey, ImmutableArray<TNamedTypeSymbol>>(capacity, comparer);
1226var namedTypes = getOrCreateNamedTypes(entry.Value);
1233static ImmutableArray<TNamedTypeSymbol> getOrCreateNamedTypes(ImmutableArray<TNamespaceOrTypeSymbol> members)
1240var membersAsNamedTypes = members.As<TNamedTypeSymbol>();
1253return ImmutableArray<TNamedTypeSymbol>.Empty;
1267internal static bool SequenceEqual<TElement, TArg>(this ImmutableArray<TElement> array1, ImmutableArray<TElement> array2, TArg arg, Func<TElement, TElement, TArg, bool> predicate)
1297internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer)
1300internal static bool IsSorted<T>(this ImmutableArray<T> array, Comparison<T> comparison)
1303internal static bool IsSorted<T>(this ImmutableArray<T> array, IComparer<T>? comparer = null)
1319internal static int BinarySearch<TElement, TValue>(this ImmutableArray<TElement> array, TValue value, Func<TElement, TValue, int> comparer)
1378public static bool IsSubsetOf<TElement>(this ImmutableArray<TElement> array, ImmutableArray<TElement> other)
src\Dependencies\PooledObjects\ArrayBuilder.cs (26)
56private readonly ImmutableArray<T>.Builder _builder;
78public ImmutableArray<T> ToImmutable()
86public ImmutableArray<T> ToImmutableAndClear()
88ImmutableArray<T> result;
91result = ImmutableArray<T>.Empty;
374public ImmutableArray<T> ToImmutableOrNull()
387public ImmutableArray<U> ToDowncastedImmutable<U>()
392return ImmutableArray<U>.Empty;
404public ImmutableArray<U> ToDowncastedImmutableAndFree<U>() where U : T
406var result = ToDowncastedImmutable<U>();
414public ImmutableArray<T> ToImmutableAndFree()
418ImmutableArray<T> result;
421result = ImmutableArray<T>.Empty;
546internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
551var dictionary1 = new Dictionary<K, ImmutableArray<T>>(1, comparer);
559return new Dictionary<K, ImmutableArray<T>>(comparer);
578var dictionary = new Dictionary<K, ImmutableArray<T>>(accumulator.Count, comparer);
617public void AddRange(ImmutableArray<T> items)
622public void AddRange(ImmutableArray<T> items, int length)
627public void AddRange(ImmutableArray<T> items, int start, int length)
637public void AddRange<S>(ImmutableArray<S> items) where S : class, T
639AddRange(ImmutableArray<T>.CastUp(items));
731public ImmutableArray<S> SelectDistinct<S>(Func<T, S> selector)
803public ImmutableArray<TResult> SelectAsArray<TResult>(Func<T, TResult> map)
841public ImmutableArray<TResult> SelectAsArray<TArg, TResult>(Func<T, TArg, TResult> map, TArg arg)
879public ImmutableArray<TResult> SelectAsArrayWithIndex<TArg, TResult>(Func<T, int, TArg, TResult> map, TArg arg)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\INamedTypeSymbolExtensions.cs (24)
30public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol)
36public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol)
176public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers(
194static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within)
246public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis(
264public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis(
267Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter,
283public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers(
297private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within)
324private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers(
329Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter,
353var typesToImplement = GetTypesToImplement(classOrStructType, interfacesOrAbstractClasses, allowReimplementation, cancellationToken);
358private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement(
369private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement(
375private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement(
399private static ImmutableArray<ISymbol> GetUnimplementedMembers(
404Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter,
514private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within)
527public static ImmutableArray<ISymbol> GetOverridableMembers(
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ObjectWriterExtensions.cs (3)
13public static void WriteArray<T>(this ObjectWriter writer, ImmutableArray<T> values, Action<ObjectWriter, T> write)
23public static ImmutableArray<T> ReadArray<T>(this ObjectReader reader, Func<ObjectReader, T> read)
26public static ImmutableArray<T> ReadArray<T, TArg>(this ObjectReader reader, Func<ObjectReader, TArg, T> read, TArg arg)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\NamingStylePreferencesEditorConfigSerializer.cs (9)
30ImmutableArray<SymbolSpecification> symbolSpecifications,
31ImmutableArray<NamingStyle> namingStyles,
32ImmutableArray<NamingRule> namingRules,
47ImmutableArray<SymbolSpecification> symbolSpecifications,
48ImmutableArray<NamingStyle> namingStyles,
49ImmutableArray<NamingRule> rules,
120ImmutableArray<SymbolSpecification> symbolSpecifications,
121ImmutableArray<NamingStyle> namingStyles)
170private static ImmutableDictionary<NamingRule, string> AssignNamesToNamingStyleRules(ImmutableArray<NamingRule> namingRules, ImmutableDictionary<Guid, string> serializedNameMap)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (10)
114SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables);
122protected abstract ImmutableArray<TArgumentSyntax> GetArguments(TExpressionSyntax expression);
779GetForEachSymbols(this.OriginalSemanticModel, forEachStatement, out var originalGetEnumerator, out var originalElementType, out var originalLocalVariables);
780GetForEachSymbols(this.SpeculativeSemanticModel, newForEachStatement, out var newGetEnumerator, out var newElementType, out var newLocalVariables);
1064var specifiedArguments = GetArguments(originalInvocation);
1067var symbolParameters = originalSymbol.GetParameters();
1068var newSymbolParameters = newSymbol.GetParameters();
1077ImmutableArray<TArgumentSyntax> specifiedArguments,
1078ImmutableArray<IParameterSymbol> signature1Parameters,
1079ImmutableArray<IParameterSymbol> signature2Parameters)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\IDictionaryExtensions.cs (7)
119public static void MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableArray<TValue>> dictionary, TKey key, TValue value)
123if (!dictionary.TryGetValue(key, out var existingArray))
131public static void MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableArray<TValue>> dictionary, TKey key, TValue value, ImmutableArray<TValue> defaultArray)
135if (!dictionary.TryGetValue(key, out var existingArray))
212public static void MultiRemove<TKey, TValue>(this IDictionary<TKey, ImmutableArray<TValue>> dictionary, TKey key, TValue value)
215if (dictionary.TryGetValue(key, out var collection))
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ProducerConsumer.cs (7)
43Func<ImmutableArray<TItem>, TArgs, CancellationToken, Task> consumeItems,
67Func<ImmutableArray<TItem>, TArgs, CancellationToken, Task> consumeItems,
145Func<ImmutableArray<TItem>, TArgs, CancellationToken, Task> consumeItems,
159Func<ImmutableArray<TItem>, TArgs, CancellationToken, Task> consumeItems,
209public static Task<ImmutableArray<TItem>> RunParallelAsync<TSource, TArgs>(
222public static async Task<ImmutableArray<TItem>> RunParallelAsync<TSource, TArgs>(
302/// but returns value as an <see cref="IAsyncEnumerable{TItem}"/>. Versus an <see cref="ImmutableArray{TItem}"/>.
src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.cs (6)
33protected abstract bool TryInitializeImplicitObjectCreation(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
34protected abstract bool TryInitializeSimpleNameGenerationState(SemanticDocument document, SyntaxNode simpleName, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
35protected abstract bool TryInitializeConstructorInitializerGeneration(SemanticDocument document, SyntaxNode constructorInitializer, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
36protected abstract bool TryInitializeSimpleAttributeNameGenerationState(SemanticDocument document, SyntaxNode simpleName, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
79public async Task<ImmutableArray<CodeAction>> GenerateConstructorAsync(Document document, SyntaxNode node, CancellationToken cancellationToken)
169private ImmutableArray<ParameterName> GenerateParameterNames(
src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.State.cs (26)
41private ImmutableArray<Argument<TExpressionSyntax>> _arguments;
46private ImmutableArray<RefKind> _parameterRefKinds;
47public ImmutableArray<ITypeSymbol> ParameterTypes;
54private ImmutableArray<IParameterSymbol> _parameters;
133var parameterNames = GetParameterNames(_arguments, typeParametersNames, cancellationToken);
140private ImmutableArray<ParameterName> GetParameterNames(
141ImmutableArray<Argument<TExpressionSyntax>> arguments, ImmutableArray<string> typeParametersNames, CancellationToken cancellationToken)
150var parameters = ParameterTypes.Zip(_parameterRefKinds,
164var remainingArguments = _arguments.Skip(argumentCount).ToImmutableArray();
165var remainingParameterNames = _service.GenerateParameterNames(
176var remainingParameterTypes = ParameterTypes.Skip(argumentCount).ToImmutableArray();
187ImmutableArray<IParameterSymbol> allParameters,
188ImmutableArray<TExpressionSyntax?> allExpressions,
196var parameters = allParameters[0..i];
197var expressions = allExpressions[0..i];
208ImmutableArray<IParameterSymbol> parameters,
209ImmutableArray<TExpressionSyntax?> expressions,
210ImmutableArray<IMethodSymbol> constructors,
282internal ImmutableArray<ITypeSymbol> GetParameterTypes(CancellationToken cancellationToken)
304out var token, out var arguments, out var typeToGenerateIn))
322out var token, out var arguments, out var typeToGenerateIn))
341out var token, out var arguments, out var typeToGenerateIn))
435var delegatingArguments = this.GetRequiredLanguageService<SyntaxGenerator>(TypeToGenerateIn.Language).CreateArguments(_delegatedConstructor.Parameters);
461private async Task<(ImmutableArray<ISymbol>, ImmutableArray<SyntaxNode>)> GenerateMembersAndAssignmentsAsync(
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (72)
34ImmutableArray<AttributeData> attributes, Accessibility accessibility,
36ImmutableArray<IEventSymbol> explicitInterfaceImplementations,
49ImmutableArray<AttributeData> attributes,
54ImmutableArray<IPropertySymbol> explicitInterfaceImplementations,
56ImmutableArray<IParameterSymbol> parameters,
83ImmutableArray<AttributeData> attributes, Accessibility accessibility, DeclarationModifiers modifiers,
84ITypeSymbol type, RefKind refKind, ImmutableArray<IPropertySymbol> explicitInterfaceImplementations, string name,
85ImmutableArray<IParameterSymbol> parameters, IMethodSymbol? getMethod, IMethodSymbol? setMethod,
108ImmutableArray<AttributeData> attributes,
125ImmutableArray<AttributeData> attributes,
129ImmutableArray<IParameterSymbol> parameters,
130ImmutableArray<SyntaxNode> statements = default,
131ImmutableArray<SyntaxNode> baseConstructorArguments = default,
132ImmutableArray<SyntaxNode> thisConstructorArguments = default,
144ImmutableArray<AttributeData> attributes, string typeName,
145ImmutableArray<SyntaxNode> statements = default)
154ImmutableArray<AttributeData> attributes,
159ImmutableArray<IMethodSymbol> explicitInterfaceImplementations,
161ImmutableArray<ITypeParameterSymbol> typeParameters,
162ImmutableArray<IParameterSymbol> parameters,
163ImmutableArray<SyntaxNode> statements = default,
164ImmutableArray<SyntaxNode> handlesExpressions = default,
165ImmutableArray<AttributeData> returnTypeAttributes = default,
178ImmutableArray<AttributeData> attributes, Accessibility accessibility, DeclarationModifiers modifiers,
181ImmutableArray<IMethodSymbol> explicitInterfaceImplementations,
182string? name, ImmutableArray<ITypeParameterSymbol> typeParameters,
183ImmutableArray<IParameterSymbol> parameters,
184ImmutableArray<SyntaxNode> statements = default,
185ImmutableArray<SyntaxNode> handlesExpressions = default,
186ImmutableArray<AttributeData> returnTypeAttributes = default,
197ImmutableArray<AttributeData> attributes,
202ImmutableArray<IParameterSymbol> parameters,
203ImmutableArray<SyntaxNode> statements = default,
204ImmutableArray<AttributeData> returnTypeAttributes = default,
229ImmutableArray<SyntaxNode> statements = default,
230ImmutableArray<AttributeData> toTypeAttributes = default,
250ImmutableArray<AttributeData> attributes,
257ImmutableArray<SyntaxNode> statements = default,
258ImmutableArray<AttributeData> toTypeAttributes = default,
282ImmutableArray<AttributeData> attributes, RefKind refKind, bool isParams, ITypeSymbol type, string name, bool isOptional = false, bool hasDefaultValue = false, object? defaultValue = null)
292ImmutableArray<AttributeData>? attributes = null,
334ImmutableArray<AttributeData> attributes,
336ImmutableArray<ITypeSymbol> constraintTypes,
363ImmutableArray<AttributeData> attributes = default,
365ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default,
366ImmutableArray<SyntaxNode> statements = default)
388ImmutableArray<AttributeData> attributes,
390ImmutableArray<SyntaxNode> statements)
410ImmutableArray<TypedConstant> constructorArguments = default,
411ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments = default)
420ImmutableArray<AttributeData> attributes,
424ImmutableArray<ITypeParameterSymbol> typeParameters = default,
426ImmutableArray<INamedTypeSymbol> interfaces = default,
428ImmutableArray<ISymbol> members = default,
439ImmutableArray<AttributeData> attributes,
443ImmutableArray<ITypeParameterSymbol> typeParameters = default,
445ImmutableArray<INamedTypeSymbol> interfaces = default,
447ImmutableArray<ISymbol> members = default,
465ImmutableArray<AttributeData> attributes,
471ImmutableArray<ITypeParameterSymbol> typeParameters = default,
472ImmutableArray<IParameterSymbol> parameters = default,
517ImmutableArray<AttributeData> attributes = default,
520ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default,
522ImmutableArray<IParameterSymbol>? parameters = null,
523ImmutableArray<SyntaxNode> statements = default,
526Optional<ImmutableArray<AttributeData>> returnTypeAttributes = default)
547ImmutableArray<AttributeData> attributes = default,
548ImmutableArray<IParameterSymbol>? parameters = null,
551ImmutableArray<IPropertySymbol> explicitInterfaceImplementations = default,
575ImmutableArray<AttributeData> attributes = default,
578ImmutableArray<IEventSymbol> explicitInterfaceImplementations = default,
596ImmutableArray<AttributeData> attributes = default,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ITypeInferenceServiceExtensions.cs (9)
15public static ImmutableArray<ITypeSymbol> InferTypes(this ITypeInferenceService service, SemanticModel semanticModel, SyntaxNode expression, CancellationToken cancellationToken)
18public static ImmutableArray<ITypeSymbol> InferTypes(this ITypeInferenceService service, SemanticModel semanticModel, int position, CancellationToken cancellationToken)
21public static ImmutableArray<TypeInferenceInfo> GetTypeInferenceInfo(this ITypeInferenceService service, SemanticModel semanticModel, int position, CancellationToken cancellationToken)
24public static ImmutableArray<TypeInferenceInfo> GetTypeInferenceInfo(this ITypeInferenceService service, SemanticModel semanticModel, SyntaxNode expression, CancellationToken cancellationToken)
33var types = typeInferenceService.InferTypes(semanticModel, expression, cancellationToken);
43var types = typeInferenceService.InferTypes(semanticModel, position, cancellationToken);
47private static INamedTypeSymbol? GetFirstDelegateType(SemanticModel semanticModel, ImmutableArray<ITypeSymbol> types)
73var types = typeInferenceService.InferTypes(semanticModel, expression, name, cancellationToken);
103var types = typeInferenceService.InferTypes(semanticModel, position, name, cancellationToken);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\ITypeInferenceService.cs (4)
27ImmutableArray<ITypeSymbol> InferTypes(SemanticModel semanticModel, SyntaxNode expression, string? nameOpt, CancellationToken cancellationToken);
28ImmutableArray<ITypeSymbol> InferTypes(SemanticModel semanticModel, int position, string? nameOpt, CancellationToken cancellationToken);
30ImmutableArray<TypeInferenceInfo> GetTypeInferenceInfo(SemanticModel semanticModel, int position, string? nameOpt, CancellationToken cancellationToken);
31ImmutableArray<TypeInferenceInfo> GetTypeInferenceInfo(SemanticModel semanticModel, SyntaxNode expression, string? nameOpt, CancellationToken cancellationToken);
Binder\Binder.ValueChecks.cs (101)
434var argsToParams = indexerAccess.ArgsToParamsOpt;
438var parameters = accessorForDefaultArguments.Parameters;
447ImmutableArray<string?> argumentNamesOpt = indexerAccess.ArgumentNamesOpt;
660(object)otherSymbol == null ? ImmutableArray<Symbol>.Empty : ImmutableArray.Create(otherSymbol),
661receiver == null ? ImmutableArray<BoundExpression>.Empty : ImmutableArray.Create(receiver),
984bool checkArrayAccessValueKind(SyntaxNode node, BindValueKind valueKind, ImmutableArray<BoundExpression> indices, BindingDiagnosticBag diagnostics)
1991ImmutableArray<ParameterSymbol> parameters,
1992ImmutableArray<BoundExpression> argsOpt,
1993ImmutableArray<RefKind> argRefKindsOpt,
1994ImmutableArray<int> argsToParamsOpt,
2012SafeContext getInvocationEscapeWithOldRules(MethodInfo methodInfo, ImmutableArray<ParameterSymbol> parameters, BoundExpression? receiver, ImmutableArray<BoundExpression> argsOpt, ImmutableArray<RefKind> argRefKindsOpt, ImmutableArray<int> argsToParamsOpt, SafeContext localScopeDepth, bool isRefEscape)
2087ImmutableArray<ParameterSymbol> parameters,
2088ImmutableArray<BoundExpression> argsOpt,
2089ImmutableArray<RefKind> argRefKindsOpt,
2090ImmutableArray<int> argsToParamsOpt,
2139private static MethodInfo ReplaceWithExtensionImplementationIfNeeded(MethodInfo methodInfo, ref ImmutableArray<ParameterSymbol> parameters,
2140ref BoundExpression? receiver, ref ImmutableArray<BoundExpression> argsOpt, ref ImmutableArray<RefKind> argRefKindsOpt,
2141ref ImmutableArray<int> argsToParamsOpt)
2196ImmutableArray<ParameterSymbol> parameters,
2197ImmutableArray<BoundExpression> argsOpt,
2198ImmutableArray<RefKind> argRefKindsOpt,
2199ImmutableArray<int> argsToParamsOpt,
2221ref BoundExpression? receiver, ImmutableArray<ParameterSymbol> parameters, ImmutableArray<BoundExpression> argsOpt,
2222ImmutableArray<RefKind> argRefKindsOpt, ImmutableArray<int> argsToParamsOpt,
2300ImmutableArray<ParameterSymbol> parameters,
2301ImmutableArray<BoundExpression> argsOpt,
2302ImmutableArray<RefKind> argRefKindsOpt,
2303ImmutableArray<int> argsToParamsOpt,
2373ImmutableArray<ParameterSymbol> parameters,
2374ImmutableArray<BoundExpression> argsOpt,
2375ImmutableArray<RefKind> argRefKindsOpt,
2376ImmutableArray<int> argsToParamsOpt,
2521ImmutableArray<BoundExpression> argsOpt,
2522ImmutableArray<RefKind> argRefKindsOpt,
2550ImmutableArray<ParameterSymbol> parameters,
2551ImmutableArray<BoundExpression> argsOpt,
2552ImmutableArray<RefKind> argRefKindsOpt,
2553ImmutableArray<int> argsToParamsOpt,
2620ImmutableArray<ParameterSymbol> parameters,
2621ImmutableArray<BoundExpression> argsOpt,
2622ImmutableArray<RefKind> argRefKindsOpt,
2623ImmutableArray<int> argsToParamsOpt,
2675ImmutableArray<ParameterSymbol> parameters,
2676ImmutableArray<BoundExpression> argsOpt,
2677ImmutableArray<RefKind> argRefKindsOpt,
2678ImmutableArray<int> argsToParamsOpt,
2751ImmutableArray<ParameterSymbol> parameters,
2752ImmutableArray<BoundExpression> argsOpt,
2753ImmutableArray<RefKind> argRefKindsOpt,
2754ImmutableArray<int> argsToParamsOpt,
2865ImmutableArray<ParameterSymbol> parameters,
2866ImmutableArray<BoundExpression> argsOpt,
2867ImmutableArray<RefKind> argRefKindsOpt,
2868ImmutableArray<int> argsToParamsOpt,
2882ref BoundExpression? receiverOpt, ThreeState receiverIsSubjectToCloning, ImmutableArray<ParameterSymbol> parameters,
2883ImmutableArray<BoundExpression> argsOpt, ImmutableArray<int> argsToParamsOpt,
2975ImmutableArray<ParameterSymbol> parameters,
2976ImmutableArray<BoundExpression> argsOpt,
2977ImmutableArray<RefKind> argRefKindsOpt,
2978ImmutableArray<int> argsToParamsOpt,
3059ImmutableArray<BoundExpression> argsOpt,
3060ImmutableArray<ParameterSymbol> parameters,
3061ImmutableArray<int> argsToParamsOpt)
3125public override ImmutableArray<Location> Locations
3640ImmutableArray<BoundExpression> arguments;
3641ImmutableArray<RefKind> refKinds;
3961ImmutableArray<BoundExpression> arguments;
3962ImmutableArray<RefKind> refKinds;
4328ImmutableArray<BoundExpression> arguments;
4329ImmutableArray<RefKind> refKinds;
4441ImmutableArray<BoundExpression> arguments;
4442ImmutableArray<RefKind> refKinds;
4675private SafeContext GetTupleValEscape(ImmutableArray<BoundExpression> elements, SafeContext localScopeDepth)
4805private SafeContext GetValEscape(ImmutableArray<BoundExpression> expressions, SafeContext localScopeDepth)
5076ImmutableArray<BoundExpression> arguments;
5077ImmutableArray<RefKind> refKinds;
5230ImmutableArray<BoundExpression> arguments;
5231ImmutableArray<RefKind> refKinds;
5558private SignatureOnlyMethodSymbol GetInlineArrayAccessEquivalentSignatureMethod(BoundInlineArrayAccess elementAccess, out ImmutableArray<BoundExpression> arguments, out ImmutableArray<RefKind> refKinds)
5599ImmutableArray<TypeParameterSymbol>.Empty,
5602ImmutableArray<CustomModifier>.Empty,
5611ImmutableArray<CustomModifier>.Empty,
5612ImmutableArray<MethodSymbol>.Empty);
5620private SignatureOnlyMethodSymbol GetInlineArrayConversionEquivalentSignatureMethod(BoundConversion conversion, out ImmutableArray<BoundExpression> arguments, out ImmutableArray<RefKind> refKinds)
5626private SignatureOnlyMethodSymbol GetInlineArrayConversionEquivalentSignatureMethod(BoundExpression inlineArray, TypeSymbol resultType, out ImmutableArray<BoundExpression> arguments, out ImmutableArray<RefKind> refKinds)
5639ImmutableArray<TypeParameterSymbol>.Empty,
5642ImmutableArray<CustomModifier>.Empty,
5651ImmutableArray<CustomModifier>.Empty,
5652ImmutableArray<MethodSymbol>.Empty);
5660private bool CheckTupleValEscape(ImmutableArray<BoundExpression> elements, SafeContext escapeFrom, SafeContext escapeTo, BindingDiagnosticBag diagnostics)
5691private bool CheckValEscape(ImmutableArray<BoundExpression> expressions, SafeContext escapeFrom, SafeContext escapeTo, BindingDiagnosticBag diagnostics)
Binder\Binder.WithQueryLambdaParametersBinder.cs (2)
42ImmutableArray<string> path;
99var result = BindMemberOfType(node, node, name, 0, indexed: false, receiver, default(SeparatedSyntaxList<TypeSyntax>), default(ImmutableArray<TypeWithAnnotations>), lookupResult, BoundMethodGroupFlags.None, diagnostics);
Binder\Binder_Attributes.cs (37)
30ImmutableArray<Binder> binders, ImmutableArray<AttributeSyntax> attributesToBind, Symbol ownerSymbol, NamedTypeSymbol[] boundAttributeTypes,
72ImmutableArray<Binder> binders,
73ImmutableArray<AttributeSyntax> attributesToBind,
74ImmutableArray<NamedTypeSymbol> boundAttributeTypes,
184ImmutableArray<int> argsToParamsOpt;
188ImmutableArray<BoundExpression> boundConstructorArguments;
206out var candidateConstructors,
259ImmutableArray<string?> boundConstructorArgumentNamesOpt = analyzedArguments.ConstructorArguments.GetNames();
264ImmutableArray<BoundAssignmentOperator> boundNamedArguments = analyzedArguments.NamedArguments?.ToImmutableAndFree() ?? ImmutableArray<BoundAssignmentOperator>.Empty;
304var arguments = boundAttribute.ConstructorArguments;
305var constructorArgsArray = visitor.VisitArguments(arguments, diagnostics, ref hasErrors);
306var namedArguments = visitor.VisitNamedArguments(boundAttribute.NamedArguments, diagnostics, ref hasErrors);
310ImmutableArray<int> argsToParamsOpt = boundAttribute.ConstructorArgumentsToParamsOpt;
311ImmutableArray<TypedConstant> rewrittenArguments;
344ImmutableArray<int> makeSourceIndices()
396private void ValidateTypeForAttributeParameters(ImmutableArray<ParameterSymbol> parameters, CSharpSyntaxNode syntax, BindingDiagnosticBag diagnostics, ref bool hasErrors)
425ImmutableArray<string> conditionalSymbols = attributeType.GetAppliedConditionalSymbols();
696private ImmutableArray<TypedConstant> GetRewrittenAttributeConstructorArguments(
698ImmutableArray<TypedConstant> constructorArgsArray,
700ImmutableArray<int> argumentsToParams,
710ImmutableArray<ParameterSymbol> parameters = attributeConstructor.Parameters;
761public ImmutableArray<TypedConstant> VisitArguments(ImmutableArray<BoundExpression> arguments, BindingDiagnosticBag diagnostics, ref bool attrHasErrors, bool parentHasErrors = false)
763var validatedArguments = ImmutableArray<TypedConstant>.Empty;
782public ImmutableArray<KeyValuePair<string, TypedConstant>> VisitNamedArguments(ImmutableArray<BoundAssignmentOperator> arguments, BindingDiagnosticBag diagnostics, ref bool attrHasErrors)
802return ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty;
878var elements = collection.Elements;
973ImmutableArray<BoundExpression> bounds = node.Bounds;
984ImmutableArray<TypedConstant> initializer;
989initializer = ImmutableArray<TypedConstant>.Empty;
995initializer = ImmutableArray<TypedConstant>.Empty;
1013object? simpleValue = null, ImmutableArray<TypedConstant> arrayValue = default(ImmutableArray<TypedConstant>))
Binder\Binder_Await.cs (3)
333getAwaiterCall = MakeInvocationExpression(node, expression, WellKnownMemberNames.GetAwaiter, ImmutableArray<BoundExpression>.Empty, diagnostics);
372var qualified = BindInstanceMemberAccess(node, node, receiver, name, 0, default(SeparatedSyntaxList<TypeSyntax>), default(ImmutableArray<TypeWithAnnotations>), invoked: false, indexed: false, diagnostics);
438getAwaiterGetResultCall = MakeInvocationExpression(node, awaiterExpression, WellKnownMemberNames.GetResult, ImmutableArray<BoundExpression>.Empty, diagnostics);
Binder\Binder_Crefs.cs (46)
18internal ImmutableArray<Symbol> BindCref(CrefSyntax syntax, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
20ImmutableArray<Symbol> symbols = BindCrefInternal(syntax, out ambiguityWinner, diagnostics);
26private ImmutableArray<Symbol> BindCrefInternal(CrefSyntax syntax, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
44private ImmutableArray<Symbol> BindTypeCref(TypeCrefSyntax syntax, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
63private ImmutableArray<Symbol> BindQualifiedCref(QualifiedCrefSyntax syntax, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
99private ImmutableArray<Symbol> BindMemberCref(MemberCrefSyntax syntax, NamespaceOrTypeSymbol? containerOpt, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
110return ImmutableArray<Symbol>.Empty;
113ImmutableArray<Symbol> result;
142private ImmutableArray<Symbol> BindNameMemberCref(NameMemberCrefSyntax syntax, NamespaceOrTypeSymbol? containerOpt, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
172return ImmutableArray<Symbol>.Empty;
175ImmutableArray<Symbol> sortedSymbols = ComputeSortedCrefMembers(syntax, containerOpt, memberName, memberNameText, arity, syntax.Parameters != null, diagnostics);
180return ImmutableArray<Symbol>.Empty;
193private ImmutableArray<Symbol> BindIndexerMemberCref(IndexerMemberCrefSyntax syntax, NamespaceOrTypeSymbol? containerOpt, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
197ImmutableArray<Symbol> sortedSymbols = ComputeSortedCrefMembers(syntax, containerOpt, WellKnownMemberNames.Indexer, memberNameText: WellKnownMemberNames.Indexer, arity, syntax.Parameters != null, diagnostics);
202return ImmutableArray<Symbol>.Empty;
221private ImmutableArray<Symbol> BindOperatorMemberCref(OperatorMemberCrefSyntax syntax, NamespaceOrTypeSymbol? containerOpt, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
261return ImmutableArray<Symbol>.Empty;
264ImmutableArray<Symbol> sortedSymbols = ComputeSortedCrefMembers(syntax, containerOpt, memberName, memberNameText: memberName, arity, syntax.Parameters != null, diagnostics);
269return ImmutableArray<Symbol>.Empty;
283private ImmutableArray<Symbol> BindConversionOperatorMemberCref(ConversionOperatorMemberCrefSyntax syntax, NamespaceOrTypeSymbol? containerOpt, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
296return ImmutableArray<Symbol>.Empty;
310ImmutableArray<Symbol> sortedSymbols = ComputeSortedCrefMembers(syntax, containerOpt, memberName, memberNameText: memberName, arity, syntax.Parameters != null, diagnostics);
315return ImmutableArray<Symbol>.Empty;
327return ImmutableArray<Symbol>.Empty;
348private ImmutableArray<Symbol> ComputeSortedCrefMembers(CSharpSyntaxNode syntax, NamespaceOrTypeSymbol? containerOpt, string memberName, string memberNameText, int arity, bool hasParameterList, BindingDiagnosticBag diagnostics)
351var result = ComputeSortedCrefMembers(containerOpt, memberName, memberNameText, arity, hasParameterList, syntax, diagnostics, ref useSiteInfo);
356private ImmutableArray<Symbol> ComputeSortedCrefMembers(NamespaceOrTypeSymbol? containerOpt, string memberName, string memberNameText, int arity, bool hasParameterList, CSharpSyntaxNode syntax,
461ImmutableArray<MethodSymbol> instanceConstructors = constructorType.InstanceConstructors;
466return ImmutableArray<Symbol>.Empty;
474return ImmutableArray<Symbol>.Empty;
495private ImmutableArray<Symbol> ProcessCrefMemberLookupResults(
496ImmutableArray<Symbol> symbols,
514ImmutableArray<ParameterSymbol> parameterSymbols = BindCrefParameters(parameterListSyntax, diagnostics);
515ImmutableArray<Symbol> results = PerformCrefOverloadResolution(candidates, parameterSymbols, arity, memberSyntax, out ambiguityWinner, diagnostics);
646private ImmutableArray<Symbol> ProcessParameterlessCrefMemberLookupResults(
647ImmutableArray<Symbol> symbols,
751private void GetCrefOverloadResolutionCandidates(ImmutableArray<Symbol> symbols, int arity, TypeArgumentListSyntax? typeArgumentListSyntax, ArrayBuilder<Symbol> candidates)
777private static ImmutableArray<Symbol> PerformCrefOverloadResolution(ArrayBuilder<Symbol> candidates, ImmutableArray<ParameterSymbol> parameterSymbols, int arity, MemberCrefSyntax memberSyntax, out Symbol? ambiguityWinner, BindingDiagnosticBag diagnostics)
817refCustomModifiers: ImmutableArray<CustomModifier>.Empty,
818explicitInterfaceImplementations: ImmutableArray<MethodSymbol>.Empty);
832refCustomModifiers: ImmutableArray<CustomModifier>.Empty,
834explicitInterfaceImplementations: ImmutableArray<PropertySymbol>.Empty);
880return ImmutableArray<Symbol>.Empty;
948private ImmutableArray<ParameterSymbol> BindCrefParameters(BaseCrefParameterListSyntax parameterListSyntax, BindingDiagnosticBag diagnostics)
964parameterBuilder.Add(new SignatureOnlyParameterSymbol(TypeWithAnnotations.Create(type), ImmutableArray<CustomModifier>.Empty, isParamsArray: false, isParamsCollection: false, refKind: refKind));
Binder\Binder_Deconstruct.cs (13)
251ImmutableArray<TypeSymbol> tupleOrDeconstructedTypes;
278inputPlaceholder, rightSyntax, diagnostics, outPlaceholders: out ImmutableArray<BoundDeconstructValuePlaceholder> outPlaceholders, out _, variables);
349private void SetInferredTypes(ArrayBuilder<DeconstructionVariable> variables, ImmutableArray<TypeSymbol> foundTypes, BindingDiagnosticBag diagnostics)
536elementNames: default(ImmutableArray<string?>),
541errorPositions: default(ImmutableArray<bool>),
572ImmutableArray<BoundExpression> arguments = valuesBuilder.ToImmutableAndFree();
578ImmutableArray<string?> tupleNames = namesBuilder is null ? default : namesBuilder.ToImmutableAndFree();
579ImmutableArray<bool> inferredPositions = tupleNames.IsDefault ? default : tupleNames.SelectAsArray(n => n != null);
616out ImmutableArray<BoundDeconstructValuePlaceholder> outPlaceholders,
625outPlaceholders = default(ImmutableArray<BoundDeconstructValuePlaceholder>);
655typeArgumentsWithAnnotations: default(ImmutableArray<TypeWithAnnotations>),
685var parameters = deconstructMethod.Parameters;
716out ImmutableArray<BoundDeconstructValuePlaceholder> outPlaceholders, BoundExpression childNode)
Binder\Binder_Expressions.cs (163)
113return BadExpression(syntax, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty);
121return BadExpression(syntax, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, childNode);
127private BoundBadExpression BadExpression(SyntaxNode syntax, ImmutableArray<BoundExpression> childNodes)
129return BadExpression(syntax, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, childNodes);
137return BadExpression(syntax, lookupResultKind, ImmutableArray<Symbol>.Empty);
145return BadExpression(syntax, lookupResultKind, ImmutableArray<Symbol>.Empty, childNode);
151private BoundBadExpression BadExpression(SyntaxNode syntax, LookupResultKind resultKind, ImmutableArray<Symbol> symbols)
156ImmutableArray<BoundExpression>.Empty,
164private BoundBadExpression BadExpression(SyntaxNode syntax, LookupResultKind resultKind, ImmutableArray<Symbol> symbols, BoundExpression childNode)
177private BoundBadExpression BadExpression(SyntaxNode syntax, LookupResultKind resultKind, ImmutableArray<Symbol> symbols, ImmutableArray<BoundExpression> childNodes, bool wasCompilerGenerated = false)
861node, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(BindToTypeForErrorRecovery(BindValue(node.Expression, BindingDiagnosticBag.Discarded, BindValueKind.RefersToLocation))),
973ImmutableArray<BoundExpression> subExpressions = builder.ToImmutableAndFree();
979ImmutableArray<string> tupleNames = namesBuilder is null ? default : namesBuilder.ToImmutableAndFree();
980ImmutableArray<bool> inferredPositions = tupleNames.IsDefault ? default : tupleNames.SelectAsArray(n => n != null);
1014ImmutableArray<BoundExpression>.Empty;
1048argumentSyntax, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty,
1064var elements = elementTypesWithAnnotations.ToImmutableAndFree();
1065var locations = elementLocations.ToImmutableAndFree();
1073includeNullability: false, errorPositions: disallowInferredNames ? inferredPositions : default(ImmutableArray<bool>));
1085private static (ImmutableArray<string> elementNamesArray, ImmutableArray<bool> inferredArray, bool hasErrors) ExtractTupleElementNames(
1129private static (ImmutableArray<string> names, ImmutableArray<bool> inferred) MergeTupleElementNames(
1136return (default(ImmutableArray<string>), default(ImmutableArray<bool>));
1140var finalNames = inferredElementNames.ToImmutable();
1147return (elementNames.ToImmutable(), default(ImmutableArray<bool>));
1627var typeArgumentsWithAnnotations = hasTypeArguments ?
1629default(ImmutableArray<TypeWithAnnotations>);
2803ImmutableArray<MethodSymbol> originalUserDefinedConversions = conversion.OriginalUserDefinedConversions;
2834var targetElementTypesWithAnnotations = default(ImmutableArray<TypeWithAnnotations>);
2893ImmutableArray<BoundExpression> tupleArguments,
2894ImmutableArray<TypeWithAnnotations> targetElementTypesWithAnnotations)
3309foreach (Symbol member in ContainingType?.GetMembers(identifier) ?? ImmutableArray<Symbol>.Empty)
3429out ImmutableArray<int> argsToParamsOpt)
3439var parameters = methodResult.LeastOverriddenMember.GetParameters();
3485ImmutableArray<ParameterSymbol> parameters,
3541ImmutableArray<ParameterSymbol> parameters,
3574ImmutableArray<ParameterSymbol> parameters,
3578ref ImmutableArray<int> argsToParamsOpt,
3603ImmutableArray<BoundExpression> collectionArgs = paramsArgsBuilder.ToImmutableAndFree();
3657static ParameterSymbol getCorrespondingParameter(in MemberAnalysisResult result, ImmutableArray<ParameterSymbol> parameters, int arg)
3667ImmutableArray<ParameterSymbol> parameters,
3679var handlerParameterIndexes = correspondingParameter.InterpolatedStringHandlerArgumentIndexes;
3732ImmutableArray<int> handlerArgumentIndexes;
4079ImmutableArray<BoundExpression> arraySizes = sizes.ToImmutableAndFree();
4119ImmutableArray<BoundExpression> boundInitializerExpressions = BindArrayInitializerExpressions(initializer, diagnostics, dimension: 1, rank: rank);
4140sizes: ImmutableArray<BoundExpression>.Empty, boundInitExprOpt: boundInitializerExpressions);
4146ImmutableArray<BoundExpression> boundInitializerExpressions = BindArrayInitializerExpressions(initializer, diagnostics, dimension: 1, rank: 1);
4178private ImmutableArray<BoundExpression> BindArrayInitializerExpressions(InitializerExpressionSyntax initializer, BindingDiagnosticBag diagnostics, int dimension, int rank)
4266ImmutableArray<BoundExpression> boundInitExpr,
4347ImmutableArray<BoundExpression> boundInitExprOpt = default(ImmutableArray<BoundExpression>))
4414ImmutableArray<BoundExpression> sizes,
4415ImmutableArray<BoundExpression> boundInitExprOpt = default(ImmutableArray<BoundExpression>),
4505ImmutableArray<Symbol>.Empty,
4506ImmutableArray<BoundExpression>.Empty,
4544ImmutableArray<Symbol>.Empty,
4663ImmutableArray<BoundExpression> boundInitExprOpt = default)
4876symbols: ImmutableArray<Symbol>.Empty,
4887symbols: ImmutableArray<Symbol>.Empty, //CONSIDER: we could look for a matching constructor on System.ValueType
4930symbols: ImmutableArray<Symbol>.Empty, //CONSIDER: we could look for a matching constructor on System.ValueType
4936ImmutableArray<MethodSymbol> candidateConstructors;
4970ImmutableArray<MethodSymbol> candidateConstructors,
4976ImmutableArray<int> argsToParamsOpt;
5062var arguments = analyzedArguments.Arguments.ToImmutable();
5063var refKinds = analyzedArguments.RefKinds.ToImmutableOrNull();
5098typeArgumentsWithAnnotations: ImmutableArray<TypeWithAnnotations>.Empty,
5251return new BoundBadExpression(syntax, LookupResultKind.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, CreateErrorType());
5506var childNodes = BuildArgumentsForErrorRecovery(analyzedArguments);
5911ImmutableArray<BoundExpression> arguments = ImmutableArray<BoundExpression>.Empty;
5912ImmutableArray<string> argumentNamesOpt = default;
5913ImmutableArray<int> argsToParamsOpt = default;
5914ImmutableArray<RefKind> argumentRefKindsOpt = default;
5967var handlerPlaceholders = operand.GetInterpolatedStringHandlerData().ArgumentPlaceholders;
6146ImmutableArray<BoundExpression> initializers,
6412ImmutableArray<BoundExpression> boundElementInitializerExpressions,
6440return BadExpression(elementInitializer, LookupResultKind.NotInvocable, ImmutableArray<Symbol>.Empty, boundElementInitializerExpressions);
6464ImmutableArray<BoundExpression> boundElementInitializerExpressions,
6480applicableMethods: ImmutableArray<MethodSymbol>.Empty,
6604internal ImmutableArray<MethodSymbol> FilterInaccessibleConstructors(ImmutableArray<MethodSymbol> constructors, bool allowProtectedConstructorsOfBaseType, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
6700ImmutableArray<MethodSymbol> accessibleConstructors = GetAccessibleConstructorsForOverloadResolution(type, ref useSiteInfo);
6705var finalApplicableCandidates = GetCandidatesPassingFinalValidation(node, overloadResolutionResult, receiverOpt: null, default(ImmutableArray<TypeWithAnnotations>), isExtensionMethodGroup: false, diagnostics);
6713var argArray = BuildArgumentsForDynamicInvocation(analyzedArguments, diagnostics);
6714var refKindsArray = analyzedArguments.RefKinds.ToImmutableOrNull();
6750out ImmutableArray<MethodSymbol> candidateConstructors,
6770ImmutableArray<MethodSymbol> candidateConstructors,
6785ImmutableArray<int> argToParams;
6821var arguments = analyzedArguments.Arguments.ToImmutable();
6822var refKinds = analyzedArguments.RefKinds.ToImmutableOrNull();
6854ImmutableArray<MethodSymbol> candidateConstructors,
7064var children = BuildArgumentsForErrorRecovery(analyzedArguments);
7071return new BoundBadExpression(node, LookupResultKind.OverloadResolutionFailure, ImmutableArray<Symbol>.Empty, children, interfaceType);
7154out ImmutableArray<MethodSymbol> candidateConstructors,
7160ImmutableArray<MethodSymbol> allInstanceConstructors;
7274private ImmutableArray<MethodSymbol> GetAccessibleConstructorsForOverloadResolution(NamedTypeSymbol type, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
7276ImmutableArray<MethodSymbol> allInstanceConstructors;
7280private ImmutableArray<MethodSymbol> GetAccessibleConstructorsForOverloadResolution(NamedTypeSymbol type, bool allowProtectedConstructorsOfBaseType, out ImmutableArray<MethodSymbol> allInstanceConstructors, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
7593ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations = rightHasTypeArguments ?
7595default(ImmutableArray<TypeWithAnnotations>);
7713var typeArguments = typeArgumentsSyntax.Count > 0 ? BindTypeArguments(typeArgumentsSyntax, diagnostics) : default(ImmutableArray<TypeWithAnnotations>);
7809ImmutableArray<TypeWithAnnotations> typeArguments,
7883ImmutableArray<TypeWithAnnotations> typeArguments,
8003ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, BindingDiagnosticBag diagnostics)
8064ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations,
8136ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations, LookupResult lookupResult, BoundMethodGroupFlags flags, SyntaxNode node,
8144lookupResult.Symbols.All(s => s.Kind == SymbolKind.Method) ? lookupResult.Symbols.SelectAsArray(s_toMethodSymbolFunc) : ImmutableArray<MethodSymbol>.Empty,
8205ReportQueryLookupFailed(node, boundLeft, plainName, ImmutableArray<Symbol>.Empty, diagnostics);
8278ImmutableArray<Symbol> symbols,
8289var methods = builder.ToImmutableAndFree();
8298default(ImmutableArray<TypeWithAnnotations>),
8314(object)symbolOpt == null ? ImmutableArray<Symbol>.Empty : ImmutableArray.Create(symbolOpt),
8315boundLeft == null ? ImmutableArray<BoundExpression>.Empty : ImmutableArray.Create(BindToTypeForErrorRecovery(boundLeft)),
8391ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations,
8467boundDimensionsOpt: ImmutableArray<BoundExpression>.Empty,
8508ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations,
8590ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations,
8697ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations,
8841ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations,
9645var childBoundNodes = BuildArgumentsForErrorRecovery(analyzedArguments).Add(expr);
9646return new BoundBadExpression(node, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, childBoundNodes, CreateErrorType(), hasErrors: true);
9667return BindDynamicIndexer(node, expr, arguments, ImmutableArray<PropertySymbol>.Empty, diagnostics);
9751var argumentPlaceholders = ImmutableArray.Create(new BoundImplicitIndexerValuePlaceholder(convertedArguments[0].Syntax, int32) { WasCompilerGenerated = true });
9759indexerOrSliceAccess: new BoundArrayAccess(node, receiverPlaceholder, ImmutableArray<BoundExpression>.CastUp(argumentPlaceholders), resultType) { WasCompilerGenerated = true },
10032var properties = propertyGroup.Properties;
10044ImmutableArray<BoundExpression>.Empty,
10045default(ImmutableArray<string>),
10046default(ImmutableArray<RefKind>),
10057private BoundExpression BindIndexedPropertyAccess(SyntaxNode syntax, BoundExpression receiver, ImmutableArray<PropertySymbol> propertyGroup, AnalyzedArguments arguments, BindingDiagnosticBag diagnostics)
10074ImmutableArray<PropertySymbol> applicableProperties,
10098var argArray = BuildArgumentsForDynamicInvocation(arguments, diagnostics);
10099var refKindsArray = arguments.RefKinds.ToImmutableOrNull();
10139var finalApplicableCandidates = GetCandidatesPassingFinalValidation(syntax, overloadResolutionResult, receiver, default(ImmutableArray<TypeWithAnnotations>), isExtensionMethodGroup: false, diagnostics);
10163ImmutableArray<string> argumentNames = analyzedArguments.GetNames();
10164ImmutableArray<RefKind> argumentRefKinds = analyzedArguments.RefKinds.ToImmutableOrNull();
10170ImmutableArray<PropertySymbol> candidates = propertyGroup.ToImmutable();
10201ImmutableArray<BoundExpression> arguments = BuildArgumentsForErrorRecovery(analyzedArguments, candidates);
10228ImmutableArray<int> argsToParams;
10236var arguments = analyzedArguments.Arguments.ToImmutable();
10297out var lengthOrCountAccess, out var indexerOrSliceAccess, out var argumentPlaceholders, diagnostics))
10352out ImmutableArray<BoundImplicitIndexerValuePlaceholder> argumentPlaceholders,
10384out ImmutableArray<BoundImplicitIndexerValuePlaceholder> argumentPlaceholders,
10486out BoundExpression indexerOrSliceAccess, out ImmutableArray<BoundImplicitIndexerValuePlaceholder> argumentPlaceholders)
10595private ErrorPropertySymbol CreateErrorPropertySymbol(ImmutableArray<PropertySymbol> propertyGroup)
10761var methods = node.Methods;
10990var typeArguments = node.TypeArgumentsOpt;
11175ImmutableArray<ScopedKind>? parameterScopesOverride = null,
11176ImmutableArray<bool>? parameterHasUnscopedRefAttributesOverride = null,
11180var parameters = methodSymbol.Parameters;
11181var parameterRefKinds = methodSymbol.ParameterRefKinds;
11182var parameterTypes = methodSymbol.ParameterTypesWithAnnotations;
11200var typeArguments = returnsVoid ? parameterTypes : parameterTypes.Add(returnType);
11263static bool checkConstraints(CSharpCompilation compilation, ConversionsBase conversions, NamedTypeSymbol delegateType, ImmutableArray<TypeWithAnnotations> typeArguments)
11266var typeParameters = delegateType.TypeParameters;
Binder\Binder_InterpolatedString.cs (56)
257ImmutableArray<BoundExpression> parts = BindInterpolatedStringPartsForFactory(unconvertedInterpolatedString, diagnostics, out bool haveErrors);
266BoundInterpolatedString constructWithoutData(ImmutableArray<BoundExpression> parts)
295bool canLowerToStringConcatenation(ImmutableArray<BoundExpression> parts)
317private ImmutableArray<BoundExpression> BindInterpolatedStringPartsForFactory(BoundUnconvertedInterpolatedString unconvertedInterpolatedString, BindingDiagnosticBag diagnostics, out bool haveErrors)
321ImmutableArray<BoundExpression> parts = BindInterpolatedStringParts(unconvertedInterpolatedString, partsDiagnostics);
333ImmutableArray<BoundExpression> parts,
340ImmutableArray<BoundExpression> expressions = makeInterpolatedStringFactoryArguments(syntax, parts, diagnostics);
348typeArgs: default(ImmutableArray<TypeWithAnnotations>),
370ImmutableArray<BoundExpression> makeInterpolatedStringFactoryArguments(SyntaxNode syntax, ImmutableArray<BoundExpression> parts, BindingDiagnosticBag diagnostics)
435private static bool AllInterpolatedStringPartsAreStrings(ImmutableArray<BoundExpression> parts)
465var partsArrayBuilder = ArrayBuilder<ImmutableArray<BoundExpression>>.GetInstance();
469static (BoundUnconvertedInterpolatedString unconvertedInterpolatedString, ArrayBuilder<ImmutableArray<BoundExpression>> partsArrayBuilder) =>
515private BoundBinaryOperator UpdateBinaryOperatorWithInterpolatedContents(BoundBinaryOperator originalOperator, ImmutableArray<ImmutableArray<BoundExpression>> appendCalls, InterpolatedStringHandlerData data, SyntaxNode rootSyntax, BindingDiagnosticBag diagnostics)
519Func<BoundUnconvertedInterpolatedString, int, (ImmutableArray<ImmutableArray<BoundExpression>>, TypeSymbol), BoundExpression> interpolationFactory =
521Func<BoundBinaryOperator, BoundExpression, BoundExpression, (ImmutableArray<ImmutableArray<BoundExpression>>, TypeSymbol), BoundExpression> binaryOperatorFactory =
528static BoundInterpolatedString createInterpolation(BoundUnconvertedInterpolatedString expression, int i, (ImmutableArray<ImmutableArray<BoundExpression>> AppendCalls, TypeSymbol _) arg)
540static BoundBinaryOperator createBinaryOperator(BoundBinaryOperator original, BoundExpression left, BoundExpression right, (ImmutableArray<ImmutableArray<BoundExpression>> _, TypeSymbol @string) arg)
559ImmutableArray<BoundInterpolatedStringArgumentPlaceholder> additionalConstructorArguments = default,
560ImmutableArray<RefKind> additionalConstructorRefKinds = default)
579ImmutableArray<BoundInterpolatedStringArgumentPlaceholder> additionalConstructorArguments = default,
580ImmutableArray<RefKind> additionalConstructorRefKinds = default)
605ImmutableArray<BoundInterpolatedStringArgumentPlaceholder> additionalConstructorArguments,
606ImmutableArray<RefKind> additionalConstructorRefKinds)
610var partsArrayBuilder = ArrayBuilder<ImmutableArray<BoundExpression>>.GetInstance();
613static (BoundUnconvertedInterpolatedString unconvertedInterpolatedString, ArrayBuilder<ImmutableArray<BoundExpression>> partsArrayBuilder) =>
632private (ImmutableArray<ImmutableArray<BoundExpression>> AppendCalls, InterpolatedStringHandlerData Data) BindUnconvertedInterpolatedPartsToHandlerType(
634ImmutableArray<ImmutableArray<BoundExpression>> partsArray,
638ImmutableArray<BoundInterpolatedStringArgumentPlaceholder> additionalConstructorArguments,
639ImmutableArray<RefKind> additionalConstructorRefKinds)
676foreach (var parts in partsArray)
726var outConstructorAdditionalArguments = additionalConstructorArguments.Add(trailingConstructorValidityPlaceholder);
817static void populateArguments(SyntaxNode syntax, ImmutableArray<BoundInterpolatedStringArgumentPlaceholder> additionalConstructorArguments, int baseStringLength, int numFormatHoles, NamedTypeSymbol intType, ArrayBuilder<BoundExpression> argumentsBuilder)
850private ImmutableArray<BoundExpression> BindInterpolatedStringParts(BoundUnconvertedInterpolatedString unconvertedInterpolatedString, BindingDiagnosticBag diagnostics)
895private (ImmutableArray<ImmutableArray<BoundExpression>> AppendFormatCalls, bool UsesBoolReturn, ImmutableArray<ImmutableArray<(bool IsLiteral, bool HasAlignment, bool HasFormat)>>, int BaseStringLength, int NumFormatHoles) BindInterpolatedStringAppendCalls(
896ImmutableArray<ImmutableArray<BoundExpression>> partsArray,
902return (ImmutableArray<ImmutableArray<BoundExpression>>.Empty, false, ImmutableArray<ImmutableArray<(bool IsLiteral, bool HasAlignment, bool HasFormat)>>.Empty, 0, 0);
907var builderAppendCallsArray = ArrayBuilder<ImmutableArray<BoundExpression>>.GetInstance(partsArray.Length);
909var positionInfoArray = ArrayBuilder<ImmutableArray<(bool IsLiteral, bool HasAlignment, bool HasFormat)>>.GetInstance(partsArray.Length);
916foreach (var parts in partsArray)
962var arguments = argumentsBuilder.ToImmutableAndClear();
963ImmutableArray<(string, Location)?> parameterNamesAndLocations;
Binder\Binder_Invocation.cs (65)
41private static ImmutableArray<MethodSymbol> GetOriginalMethods(OverloadResolutionResult<MethodSymbol> overloadResolutionResult)
51return ImmutableArray<MethodSymbol>.Empty;
81ImmutableArray<BoundExpression> args,
84ImmutableArray<TypeWithAnnotations> typeArgs = default(ImmutableArray<TypeWithAnnotations>),
85ImmutableArray<(string Name, Location Location)?> names = default,
312ImmutableArray<BoundExpression> arguments = analyzedArguments.Arguments.ToImmutable();
313ImmutableArray<RefKind> refKinds = analyzedArguments.RefKinds.ToImmutableOrNull();
348result = BindDynamicInvocation(node, boundExpression, analyzedArguments, ImmutableArray<MethodSymbol>.Empty, diagnostics, queryClause);
395ImmutableArray<MethodSymbol> applicableMethods,
480ImmutableArray<BoundExpression> argArray = BuildArgumentsForDynamicInvocation(arguments, diagnostics);
481var refKindsArray = arguments.RefKinds.ToImmutableOrNull();
524private ImmutableArray<BoundExpression> BuildArgumentsForDynamicInvocation(AnalyzedArguments arguments, BindingDiagnosticBag diagnostics)
546ImmutableArray<BoundExpression> arguments,
547ImmutableArray<RefKind> refKinds,
665private static bool HasApplicableConditionalMethod(ImmutableArray<MemberResolutionResult<MethodSymbol>> finalApplicableCandidates)
741ImmutableArray<MethodSymbol> originalMethods;
743ImmutableArray<TypeWithAnnotations> typeArguments;
799var finalApplicableCandidates = GetCandidatesPassingFinalValidation(syntax, resolution.OverloadResolutionResult,
861private void ReportDynamicInvocationWarnings(SyntaxNode syntax, BoundMethodGroup methodGroup, BindingDiagnosticBag diagnostics, ImmutableArray<MemberResolutionResult<MethodSymbol>> finalApplicableCandidates)
877var parameters = candidate.Member.GetParameters();
985private ImmutableArray<MemberResolutionResult<TMethodOrPropertySymbol>> GetCandidatesPassingFinalValidation<TMethodOrPropertySymbol>(
989ImmutableArray<TypeWithAnnotations> typeArgumentsOpt,
1235ImmutableArray<int> argsToParams;
1303var argNames = analyzedArguments.GetNames();
1304var argRefKinds = analyzedArguments.RefKinds.ToImmutableOrNull();
1305var args = analyzedArguments.Arguments.ToImmutable();
1479ImmutableArray<ParameterSymbol> parameters,
1480ImmutableArray<int> argsToParamsOpt,
1521ImmutableArray<ParameterSymbol> parameters,
1525ref ImmutableArray<int> argsToParamsOpt,
1627BoundExpression collection = CreateParamsCollection(node, parameters[paramsIndex], collectionArgs: ImmutableArray<BoundExpression>.Empty, diagnostics);
1653BoundExpression bindDefaultArgument(SyntaxNode syntax, ParameterSymbol parameter, Symbol? containingMember, bool enableCallerInfo, BindingDiagnosticBag diagnostics, ArrayBuilder<BoundExpression> argumentsBuilder, int argumentsCount, ImmutableArray<int> argsToParamsOpt)
1765static int getArgumentIndex(int parameterIndex, ImmutableArray<int> argsToParamsOpt)
1772private BoundExpression CreateParamsCollection(SyntaxNode node, ParameterSymbol paramsParameter, ImmutableArray<BoundExpression> collectionArgs, BindingDiagnosticBag diagnostics)
1796var unconvertedCollection = new BoundUnconvertedCollectionExpression(node, ImmutableArray<BoundNode>.CastUp(collectionArgs)) { WasCompilerGenerated = true, IsParamsArrayOrCollection = true };
1971ImmutableArray<MethodSymbol> methods,
1973ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations,
1979ImmutableArray<BoundExpression> args;
2019var argNames = analyzedArguments.GetNames();
2020var argRefKinds = analyzedArguments.RefKinds.ToImmutableOrNull();
2045private ImmutableArray<BoundExpression> BuildArgumentsForErrorRecovery(AnalyzedArguments analyzedArguments, ImmutableArray<MethodSymbol> methods)
2047var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2060var result = BuildArgumentsForErrorRecovery(analyzedArguments, parameterListList);
2065private ImmutableArray<BoundExpression> BuildArgumentsForErrorRecovery(AnalyzedArguments analyzedArguments, ImmutableArray<PropertySymbol> properties)
2067var parameterListList = ArrayBuilder<ImmutableArray<ParameterSymbol>>.GetInstance();
2081var result = BuildArgumentsForErrorRecovery(analyzedArguments, parameterListList);
2086private ImmutableArray<BoundExpression> BuildArgumentsForErrorRecovery(AnalyzedArguments analyzedArguments, IEnumerable<ImmutableArray<ParameterSymbol>> parameterListList)
2115foreach (var parameterList in parameterListList)
2190foreach (var parameterList in parameterListList)
2220private static TypeSymbol GetCorrespondingParameterType(AnalyzedArguments analyzedArguments, int i, ImmutableArray<ParameterSymbol> parameterList)
2241private ImmutableArray<BoundExpression> BuildArgumentsForErrorRecovery(AnalyzedArguments analyzedArguments)
2243return BuildArgumentsForErrorRecovery(analyzedArguments, Enumerable.Empty<ImmutableArray<ParameterSymbol>>());
2256var args = BuildArgumentsForErrorRecovery(analyzedArguments);
2257var argNames = analyzedArguments.GetNames();
2258var argRefKinds = analyzedArguments.RefKinds.ToImmutableOrNull();
2259var originalMethods = (expr.Kind == BoundKind.MethodGroup) ? ((BoundMethodGroup)expr).Methods : ImmutableArray<MethodSymbol>.Empty;
2264private static TypeSymbol GetCommonTypeOrReturnType<TMember>(ImmutableArray<TMember> members)
2458ImmutableArray<FunctionPointerMethodSymbol> methods = methodsBuilder.ToImmutableAndFree();
2488var args = analyzedArguments.Arguments.ToImmutable();
2489var refKinds = analyzedArguments.RefKinds.ToImmutableOrNull();
Binder\Binder_Lookup.cs (21)
212var candidates = name is null ? extensionDeclaration.GetMembers() : extensionDeclaration.GetMembers(name);
471ImmutableArray<AliasAndExternAliasDirective> externAliases,
517var members = GetCandidateMembers(ns, name, options, originalBinder);
690var originalSymbols = symbols.ToImmutable();
852var members = GetCandidateMembers(type, name, options, originalBinder);
1122private static ImmutableArray<NamedTypeSymbol> GetBaseInterfaces(NamedTypeSymbol type, ConsList<TypeSymbol> basesBeingResolved, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1131return ImmutableArray<NamedTypeSymbol>.Empty;
1134var interfaces = type.GetDeclaredInterfaces(basesBeingResolved);
1138return ImmutableArray<NamedTypeSymbol>.Empty;
1183ImmutableArray<NamedTypeSymbol> baseInterfaces = @interface.GetDeclaredInterfaces(basesBeingResolved);
1203ImmutableArray<NamedTypeSymbol> interfaces,
1379internal static ImmutableArray<Symbol> GetCandidateMembers(NamespaceOrTypeSymbol nsOrType, string name, LookupOptions options, Binder originalBinder)
1391return ImmutableArray<Symbol>.Empty;
1403internal static ImmutableArray<Symbol> GetCandidateMembers(NamespaceOrTypeSymbol nsOrType, LookupOptions options, Binder originalBinder)
1415return ImmutableArray<Symbol>.Empty;
1531var unwrappedSymbols = ImmutableArray.Create<Symbol>(unwrappedSymbol);
1532diagInfo = diagnose ? new CSDiagnosticInfo(ErrorCode.ERR_BadAccess, new[] { unwrappedSymbol }, unwrappedSymbols, additionalLocations: ImmutableArray<Location>.Empty) : null;
1556diagInfo = new CSDiagnosticInfo(ErrorCode.ERR_BadAccess, new[] { unwrappedSymbol }, ImmutableArray.Create<Symbol>(unwrappedSymbol), additionalLocations: ImmutableArray<Location>.Empty);
1611ImmutableArray<byte> publicKey = this.Compilation.Assembly.PublicKey;
1615foreach (ImmutableArray<byte> key in keys)
2008ImmutableArray<AliasAndExternAliasDirective> externAliases,
Binder\Binder_Patterns.cs (16)
258private ImmutableArray<BoundPattern> BindListPatternSubpatterns(
326ImmutableArray<BoundPattern> subpatterns = BindListPatternSubpatterns(
370lengthAccess = new BoundBadExpression(node, LookupResultKind.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, CreateErrorType(), hasErrors: true) { WasCompilerGenerated = true };
465var interfaces = inputType is TypeParameterSymbol typeParam ? typeParam.EffectiveInterfacesNoUseSiteDiagnostics : inputType.AllInterfacesNoUseSiteDiagnostics;
977ImmutableArray<BoundPositionalSubpattern> deconstructionSubpatterns = default;
988positionalClause, declType, ImmutableArray<TypeWithAnnotations>.Empty, permitDesignations, ref hasErrors, patternsBuilder, diagnostics);
1002deconstructDiagnostics, outPlaceholders: out ImmutableArray<BoundDeconstructValuePlaceholder> outPlaceholders,
1026ImmutableArray<BoundPropertySubpattern> properties = default;
1052ImmutableArray<BoundDeconstructValuePlaceholder> outPlaceholders,
1156ImmutableArray<TypeWithAnnotations> elementTypesWithAnnotations,
1384addSubpatternsForTuple(ImmutableArray<TypeWithAnnotations>.Empty);
1398outPlaceholders: out ImmutableArray<BoundDeconstructValuePlaceholder> outPlaceholders,
1433void addSubpatternsForTuple(ImmutableArray<TypeWithAnnotations> elementTypes)
1458private ImmutableArray<BoundPropertySubpattern> BindPropertyPatternClause(
1556typeArgumentsWithAnnotations: default(ImmutableArray<TypeWithAnnotations>),
Binder\Binder_Query.cs (20)
302state.selectOrGroup, LookupResultKind.OverloadResolutionFailure, ImmutableArray<Symbol?>.Empty,
469var arguments = invocation.Arguments;
538var arguments = invocation.Arguments;
628var arguments = invocation.Arguments;
696return lambdaBodyBinder.CreateBlockFromExpression(node, ImmutableArray<LocalSymbol>.Empty, RefKind.None, construction, null, d);
736yExpression = new BoundBadExpression(yExpression.Syntax, LookupResultKind.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(yExpression), CreateErrorType());
742yExpression = new BoundBadExpression(yExpression.Syntax, LookupResultKind.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(yExpression), yExpression.Type);
770var locals = this.GetDeclaredLocalsForScope(expression);
803field2Value = new BoundBadExpression(field2Value.Syntax, LookupResultKind.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(field2Value), field2Value.Type, true);
831private UnboundLambda MakeQueryUnboundLambda(RangeVariableMap qvm, ImmutableArray<RangeVariableSymbol> parameters, ExpressionSyntax expression, bool withDependencies)
860private UnboundLambda MakeQueryUnboundLambda(RangeVariableMap qvm, ImmutableArray<RangeVariableSymbol> parameters, CSharpSyntaxNode node, LambdaBodyFactory bodyFactory, bool withDependencies)
880return MakeQueryInvocation(node, receiver, methodName, default(SeparatedSyntaxList<TypeSyntax>), default(ImmutableArray<TypeWithAnnotations>), ImmutableArray.Create(arg), diagnostics
887protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, string methodName, ImmutableArray<BoundExpression> args, BindingDiagnosticBag diagnostics
893return MakeQueryInvocation(node, receiver, methodName, default(SeparatedSyntaxList<TypeSyntax>), default(ImmutableArray<TypeWithAnnotations>), args, diagnostics
906return MakeQueryInvocation(node, receiver, methodName, new SeparatedSyntaxList<TypeSyntax>(new SyntaxNodeOrTokenList(typeArgSyntax, 0)), ImmutableArray.Create(typeArg), ImmutableArray<BoundExpression>.Empty, diagnostics
913protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, string methodName, SeparatedSyntaxList<TypeSyntax> typeArgsSyntax, ImmutableArray<TypeWithAnnotations> typeArgs, ImmutableArray<BoundExpression> args, BindingDiagnosticBag diagnostics
959receiver = new BoundBadExpression(receiver.Syntax, LookupResultKind.NotAValue, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(receiver), CreateErrorType());
981receiver = new BoundBadExpression(receiver.Syntax, LookupResultKind.NotAValue, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(receiver), CreateErrorType());
1024protected BoundExpression MakeConstruction(CSharpSyntaxNode node, NamedTypeSymbol toCreate, ImmutableArray<BoundExpression> args, BindingDiagnosticBag diagnostics)
Binder\Binder_QueryErrors.cs (3)
29ImmutableArray<Symbol> symbols,
164internal static void ReportQueryInferenceFailed(CSharpSyntaxNode queryClause, string methodName, BoundExpression receiver, AnalyzedArguments arguments, ImmutableArray<Symbol> symbols, BindingDiagnosticBag diagnostics)
213private static bool ReportQueryInferenceFailedSelectMany(FromClauseSyntax fromClause, string methodName, BoundExpression receiver, AnalyzedArguments arguments, ImmutableArray<Symbol> symbols, BindingDiagnosticBag diagnostics)
Binder\Binder_Statements.cs (44)
146result = new BoundBadStatement(node, ImmutableArray<BoundNode>.Empty, hasErrors: true);
200ImmutableArray<BoundLocalDeclaration> declarations;
535ImmutableArray<BoundNode> childNodes;
543childNodes = ImmutableArray<BoundNode>.Empty;
1108ImmutableArray<BoundExpression> arguments = BindDeclaratorArguments(declarator, localDiagnostics);
1174internal ImmutableArray<BoundExpression> BindDeclaratorArguments(VariableDeclaratorSyntax declarator, BindingDiagnosticBag diagnostics)
1183var arguments = default(ImmutableArray<BoundExpression>);
1853ImmutableArray<BoundExpression>.Empty);
1907private BoundBlock FinishBindBlockParts(CSharpSyntaxNode node, ImmutableArray<BoundStatement> boundStatements)
1909ImmutableArray<LocalSymbol> locals = GetDeclaredLocalsForScope(node);
1914ImmutableArray<MethodSymbol>.CastUp(GetDeclaredLocalFunctionsForScope(node)),
2150var delegateParameters = delegateType.DelegateParameters();
2286ImmutableArray<MethodSymbol> originalUserDefinedConversions = conversion.OriginalUserDefinedConversions;
2350var targetElementTypes = default(ImmutableArray<TypeWithAnnotations>);
2523ImmutableArray<BoundExpression> tupleArguments,
2524ImmutableArray<TypeWithAnnotations> targetElementTypes)
2722var best = this.UnaryOperatorOverloadResolution(UnaryOperatorKind.True, expr, node, diagnostics, out LookupResultKind resultKind, out ImmutableArray<MethodSymbol> originalUserDefinedOperators);
2810internal BoundStatement BindForOrUsingOrFixedDeclarations(VariableDeclarationSyntax nodeOpt, LocalDeclarationKind localKind, BindingDiagnosticBag diagnostics, out ImmutableArray<BoundLocalDeclaration> declarations)
2814declarations = ImmutableArray<BoundLocalDeclaration>.Empty;
2921return new BoundBadStatement(node, ImmutableArray<BoundNode>.Empty, hasErrors: true);
2932return new BoundBadStatement(node, ImmutableArray<BoundNode>.Empty, hasErrors: true);
3221var catchBlocks = BindCatchBlocks(node.Catches, diagnostics);
3226private ImmutableArray<BoundCatchBlock> BindCatchBlocks(SyntaxList<CatchClauseSyntax> catchClauses, BindingDiagnosticBag diagnostics)
3231return ImmutableArray<BoundCatchBlock>.Empty;
3346ImmutableArray<LocalSymbol> locals = binder.GetDeclaredLocalsForScope(node);
3464internal BoundBlock CreateBlockFromExpression(CSharpSyntaxNode node, ImmutableArray<LocalSymbol> locals, RefKind refKind, BoundExpression expression, ExpressionSyntax expressionSyntax, BindingDiagnosticBag diagnostics)
3701ImmutableArray<LocalSymbol> constructorLocals;
3712constructorLocals = ImmutableArray<LocalSymbol>.Empty;
3718blockBody: new BoundBlock(typeDecl, ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty).MakeCompilerGenerated(),
3978arguments: ImmutableArray<BoundExpression>.Empty,
3979argumentNamesOpt: ImmutableArray<string?>.Empty,
3980argumentRefKindsOpt: ImmutableArray<RefKind>.Empty,
3984argsToParamsOpt: ImmutableArray<int>.Empty,
4053internal virtual ImmutableArray<LocalSymbol> Locals
4057return ImmutableArray<LocalSymbol>.Empty;
4061internal virtual ImmutableArray<LocalFunctionSymbol> LocalFunctions
4065return ImmutableArray<LocalFunctionSymbol>.Empty;
4069internal virtual ImmutableArray<LabelSymbol> Labels
4073return ImmutableArray<LabelSymbol>.Empty;
4081internal virtual ImmutableArray<AliasAndExternAliasDirective> ExternAliases
4095internal virtual ImmutableArray<AliasAndUsingDirective> UsingAliases
Binder\Binder_Symbols.cs (11)
733var typesArray = types.ToImmutableAndFree();
734var locationsArray = locations.ToImmutableAndFree();
746default(ImmutableArray<string>) :
751errorPositions: default(ImmutableArray<bool>),
1250var boundTypeArguments = BindTypeArguments(typeArguments, diagnostics, basesBeingResolved);
1345private ImmutableArray<TypeWithAnnotations> BindTypeArguments(SeparatedSyntaxList<TypeSyntax> typeArguments, BindingDiagnosticBag diagnostics, ConsList<TypeSymbol> basesBeingResolved = null)
1380private NamedTypeSymbol ConstructNamedTypeUnlessTypeArgumentOmitted(SyntaxNode typeSyntax, NamedTypeSymbol type, SeparatedSyntaxList<TypeSyntax> typeArgumentsSyntax, ImmutableArray<TypeWithAnnotations> typeArguments, BindingDiagnosticBag diagnostics)
1426ImmutableArray<TypeWithAnnotations> typeArguments,
1477receiver = new BoundBadExpression(receiver.Syntax, LookupResultKind.Ambiguous, ImmutableArray<Symbol>.Empty, ImmutableArray.Create(receiver), receiver.Type, hasErrors: true).MakeCompilerGenerated();
1580ImmutableArray<TypeWithAnnotations> typeArguments,
1963var originalSymbols = symbols.ToImmutable();
Binder\PatternExplainer.cs (12)
31private static ImmutableArray<BoundDecisionDagNode> ShortestPathToNode(
32ImmutableArray<BoundDecisionDagNode> nodes,
111Func<ImmutableArray<BoundDecisionDagNode>, bool, bool> handler)
181ImmutableArray<BoundDecisionDagNode> nodes,
196var shortestPathToNode = ShortestPathToNode(nodes, targetNode, nullPaths, out requiresFalseWhenClause);
244static void gatherConstraintsAndEvaluations(BoundDecisionDagNode targetNode, ImmutableArray<BoundDecisionDagNode> pathToNode,
298var constraints = getArray(constraintMap, input);
299var evaluations = getArray(evaluationMap, input);
311static ImmutableArray<T> getArray<T>(Dictionary<BoundDagTemp, ArrayBuilder<T>> map, BoundDagTemp temp)
313return map.TryGetValue(temp, out var builder) ? builder.ToImmutable() : ImmutableArray<T>.Empty;
473var elements = input.Type.TupleElements;
596IValueSet computeRemainingValues(IValueSetFactory fac, ImmutableArray<(BoundDagTest test, bool sense)> constraints)
Binder\Semantics\Conversions\UserDefinedImplicitConversions.cs (12)
87ImmutableArray<UserDefinedConversionAnalysis> u = ubuild.ToImmutableAndFree();
365private TypeSymbol MostSpecificSourceTypeForImplicitUserDefinedConversion(ImmutableArray<UserDefinedConversionAnalysis> u, TypeSymbol source, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
381private TypeSymbol MostSpecificTargetTypeForImplicitUserDefinedConversion(ImmutableArray<UserDefinedConversionAnalysis> u, TypeSymbol target, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
428private static int? MostSpecificConversionOperator(TypeSymbol sx, TypeSymbol tx, ImmutableArray<UserDefinedConversionAnalysis> u)
436private static int? MostSpecificConversionOperator(Func<UserDefinedConversionAnalysis, bool> constraint, ImmutableArray<UserDefinedConversionAnalysis> u)
547private static BestIndex UniqueIndex<T>(ImmutableArray<T> items, Func<T, bool> predicate)
690ImmutableArray<T> items,
698ImmutableArray<T> items,
752ImmutableArray<T> items,
760ImmutableArray<T> items,
804private static int? UniqueBestValidIndex<T>(ImmutableArray<T> items, Func<T, bool> valid, Func<T, T, BetterResult> better)
970ImmutableArray<UserDefinedConversionAnalysis> u = ubuild.ToImmutableAndFree();
Binder\Semantics\OverloadResolution\ArgumentAnalysisResult.cs (10)
14public readonly ImmutableArray<int> ArgsToParamsOpt;
33ImmutableArray<int> argsToParamsOpt)
51return new ArgumentAnalysisResult(ArgumentAnalysisResultKind.NameUsedForPositional, argumentPosition, 0, default(ImmutableArray<int>));
56return new ArgumentAnalysisResult(ArgumentAnalysisResultKind.NoCorrespondingParameter, argumentPosition, 0, default(ImmutableArray<int>));
61return new ArgumentAnalysisResult(ArgumentAnalysisResultKind.NoCorrespondingNamedParameter, argumentPosition, 0, default(ImmutableArray<int>));
66return new ArgumentAnalysisResult(ArgumentAnalysisResultKind.DuplicateNamedArgument, argumentPosition, 0, default(ImmutableArray<int>));
71return new ArgumentAnalysisResult(ArgumentAnalysisResultKind.RequiredParameterMissing, 0, parameterPosition, default(ImmutableArray<int>));
76return new ArgumentAnalysisResult(ArgumentAnalysisResultKind.BadNonTrailingNamedArgument, argumentPosition, 0, default(ImmutableArray<int>));
79public static ArgumentAnalysisResult NormalForm(ImmutableArray<int> argsToParamsOpt)
84public static ArgumentAnalysisResult ExpandedForm(ImmutableArray<int> argsToParamsOpt)
Binder\Semantics\OverloadResolution\MemberAnalysisResult.cs (22)
26private readonly ImmutableArray<Conversion> _conversionsOpt;
27public ImmutableArray<Conversion> ConversionsOpt
62private readonly ImmutableArray<int> _argsToParamsOpt;
63public ImmutableArray<int> ArgsToParamsOpt
76private readonly ImmutableArray<TypeParameterDiagnosticInfo> _constraintFailureDiagnostics;
77public ImmutableArray<TypeParameterDiagnosticInfo> ConstraintFailureDiagnostics
122ImmutableArray<int> argsToParamsOpt = default,
123ImmutableArray<Conversion> conversionsOpt = default,
126ImmutableArray<TypeParameterDiagnosticInfo> constraintFailureDiagnosticsOpt = default,
323public static MemberAnalysisResult BadArgumentConversions(ImmutableArray<int> argsToParamsOpt, BitVector badArguments, ImmutableArray<Conversion> conversions, TypeWithAnnotations definitionParamsElementTypeOpt, TypeWithAnnotations paramsElementTypeOpt)
378public static MemberAnalysisResult NormalForm(ImmutableArray<int> argsToParamsOpt, ImmutableArray<Conversion> conversions, bool hasAnyRefOmittedArgument)
383public static MemberAnalysisResult ExpandedForm(ImmutableArray<int> argsToParamsOpt, ImmutableArray<Conversion> conversions, bool hasAnyRefOmittedArgument, TypeWithAnnotations definitionParamsElementType, TypeWithAnnotations paramsElementType)
400internal static MemberAnalysisResult ConstraintFailure(ImmutableArray<TypeParameterDiagnosticInfo> constraintFailureDiagnostics)
421var argsToParams = adjustArgsToParams(ArgsToParamsOpt);
422var conversions = adjustConversions(ConversionsOpt);
444static ImmutableArray<int> adjustArgsToParams(ImmutableArray<int> argsToParams)
461static ImmutableArray<Conversion> adjustConversions(ImmutableArray<Conversion> conversions)
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (39)
73public readonly ImmutableArray<TypeWithAnnotations> InferredTypeArguments;
82ImmutableArray<TypeWithAnnotations> inferredTypeArguments,
134private readonly ImmutableArray<TypeParameterSymbol> _methodTypeParameters;
136private readonly ImmutableArray<TypeWithAnnotations> _formalParameterTypes;
137private readonly ImmutableArray<RefKind> _formalParameterRefKinds;
138private readonly ImmutableArray<BoundExpression> _arguments;
173ImmutableArray<TypeParameterSymbol> methodTypeParameters,
178ImmutableArray<TypeWithAnnotations> formalParameterTypes,
275ImmutableArray<RefKind> formalParameterRefKinds, // Optional; assume all value if missing.
276ImmutableArray<BoundExpression> arguments,// Required; in scenarios like method group conversions where there are
325ImmutableArray<TypeParameterSymbol> methodTypeParameters,
327ImmutableArray<TypeWithAnnotations> formalParameterTypes,
328ImmutableArray<RefKind> formalParameterRefKinds,
329ImmutableArray<BoundExpression> arguments,
445private ImmutableArray<TypeWithAnnotations> GetResults(out bool inferredFromFunctionType)
590var inferredTypeArguments = GetResults(out bool inferredFromFunctionType);
732var sourceArguments = argument.Arguments;
741var destTypes = destination.TupleElementTypesWithAnnotations;
930var sourceArguments = argument.Arguments;
938var destTypes = destination.TupleElementTypesWithAnnotations;
1027var parameters = delegateOrFunctionPointerType.DelegateOrFunctionPointerParameters();
1481var fixedParameters = GetFixedDelegateOrFunctionPointer(delegateOrFunctionPointerType).DelegateOrFunctionPointerParameters();
1504ImmutableArray<ParameterSymbol> delegateParameters,
1575var delegateParameters = delegateType.DelegateParameters();
1838ImmutableArray<TypeWithAnnotations> sourceTypes;
1839ImmutableArray<TypeWithAnnotations> targetTypes;
2319ImmutableArray<NamedTypeSymbol> allInterfaces;
2351internal static ImmutableArray<NamedTypeSymbol> ModuloReferenceTypeNullabilityDifferences(ImmutableArray<NamedTypeSymbol> interfaces, VarianceKind variance)
2708ImmutableArray<NamedTypeSymbol> allInterfaces = target.AllInterfacesWithDefinitionUseSiteDiagnostics(ref useSiteInfo);
3019var constraintTypes = typeParameter.ConstraintTypesNoUseSiteDiagnostics;
3104var originalDelegateParameters = target.DelegateParameters();
3117var fixedDelegateParameters = fixedDelegate.DelegateParameters();
3155private static NamedTypeSymbol GetInterfaceInferenceBound(ImmutableArray<NamedTypeSymbol> interfaces, NamedTypeSymbol target)
3187public static ImmutableArray<TypeWithAnnotations> InferTypeArgumentsFromReceiverType(
3239public static ImmutableArray<TypeWithAnnotations> InferTypeArgumentsFromFirstArgument(
3243ImmutableArray<BoundExpression> arguments,
3258ImmutableArray<BoundExpression> arguments,
3336private ImmutableArray<TypeWithAnnotations> GetInferredTypeArguments(out bool inferredFromFunctionType)
Binder\Semantics\OverloadResolution\OverloadResolution.cs (52)
101public void ObjectCreationOverloadResolution(ImmutableArray<MethodSymbol> constructors, AnalyzedArguments arguments, OverloadResolutionResult<MethodSymbol> result, bool dynamicResolution, bool isEarlyAttributeBinding, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
286var applicableMethods = result.GetAllApplicableMembers();
540static ImmutableArray<Symbol> getHiddenMembers(Symbol member)
551return ImmutableArray<Symbol>.Empty;
1486bool typeArgumentsAccessible(ImmutableArray<TypeSymbol> typeArguments, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
1739ImmutableArray<MethodSymbol> constructors,
2091private static ParameterSymbol GetParameterOrExtensionParameter<TMember>(int argIndex, MemberAnalysisResult result, ImmutableArray<ParameterSymbol> parameters, TMember member)
2181var m1LeastOverriddenParameters = m1.LeastOverriddenMember.GetParameters();
2182var m2LeastOverriddenParameters = m2.LeastOverriddenMember.GetParameters();
2488var m1DefinitionParameters = m1.LeastOverriddenMember.OriginalDefinition.GetParameters();
2489var m2DefinitionParameters = m2.LeastOverriddenMember.OriginalDefinition.GetParameters();
2590static TypeSymbol getParameterTypeAndRefKind(int i, MemberAnalysisResult memberResolutionResult, ImmutableArray<ParameterSymbol> parameters,
2626var conversionsOpt = m.Result.ConversionsOpt;
2638ImmutableArray<ParameterSymbol> parameters1,
2640ImmutableArray<ParameterSymbol> parameters2)
2709ImmutableArray<int> argsToParamsOpt = m.Result.ArgsToParamsOpt;
3065ImmutableArray<BoundNode> collectionExpressionElements,
3066TypeSymbol t1, CollectionExpressionTypeKind kind1, TypeSymbol elementType1, ImmutableArray<Conversion> underlyingElementConversions1,
3067TypeSymbol t2, CollectionExpressionTypeKind kind2, TypeSymbol elementType2, ImmutableArray<Conversion> underlyingElementConversions2,
3373var sourceArguments = tupleSource.Arguments;
3381var destTypes = destination.TupleElementTypesWithAnnotations;
3759private static bool IdenticalParameters(ImmutableArray<ParameterSymbol> p1, ImmutableArray<ParameterSymbol> p2)
3836ImmutableArray<int> argToParamMap,
3842out ImmutableArray<TypeWithAnnotations> parameterTypes,
3843out ImmutableArray<RefKind> parameterRefKinds)
3858internal readonly ImmutableArray<TypeWithAnnotations> ParameterTypes;
3859internal readonly ImmutableArray<RefKind> ParameterRefKinds;
3862internal EffectiveParameters(ImmutableArray<TypeWithAnnotations> types, ImmutableArray<RefKind> refKinds, int firstParamsElementIndex)
3875ImmutableArray<int> argToParamMap,
3885ImmutableArray<ParameterSymbol> parameters = member.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: false);
3902var parameterTypes = isNewExtensionMember ? GetParameterTypesIncludingReceiver(member) : member.GetParameterTypes();
3939var refKinds = refs != null ? refs.ToImmutableAndFree() : default(ImmutableArray<RefKind>);
4025ImmutableArray<int> argToParamMap,
4036ImmutableArray<int> argToParamMap,
4047var parameters = member.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: false);
4085var refKinds = anyRef ? refs.ToImmutable() : default(ImmutableArray<RefKind>);
4240ImmutableArray<int> argsToParamsMap,
4257ImmutableArray<TypeWithAnnotations> typeArguments;
4285ImmutableArray<TypeParameterSymbol> typeParameters = leastOverriddenMember.GetTypeParametersIncludingExtension();
4331var parameterTypes = isNewExtensionMember
4376static ImmutableArray<TypeWithAnnotations> getAllTypeArguments(TMember member, bool isNewExtensionMember)
4387var result = property.ContainingType.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics;
4396private ImmutableArray<TypeWithAnnotations> InferMethodTypeArguments<TMember>(
4398ImmutableArray<TypeParameterSymbol> originalTypeParameters,
4406var args = arguments.Arguments.ToImmutable();
4440var extensionTypeArguments = MethodTypeInferrer.InferTypeArgumentsFromReceiverType(member.ContainingType, args[0], _binder.Compilation, _binder.Conversions, ref useSiteInfo);
4463return default(ImmutableArray<TypeWithAnnotations>);
4469return default(ImmutableArray<TypeWithAnnotations>);
4478ImmutableArray<int> argsToParameters,
4649var conversionsArray = conversions != null ? conversions.ToImmutableAndFree() : default(ImmutableArray<Conversion>);
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (22)
102public ImmutableArray<MemberResolutionResult<TMember>> Results
134internal ImmutableArray<TMember> GetAllApplicableMembers()
197ImmutableArray<T> memberGroup, // the T is just a convenience for the caller
580private static void ReportUnsupportedMetadata(Location location, BindingDiagnosticBag diagnostics, ImmutableArray<Symbol> symbols, MemberResolutionResult<TMember> firstUnsupported)
595private static void ReportWrongCallingConvention(Location location, BindingDiagnosticBag diagnostics, ImmutableArray<Symbol> symbols, MemberResolutionResult<TMember> firstSupported, MethodSymbol target)
622ImmutableArray<Symbol> symbols,
641ImmutableArray<Symbol> symbols,
740ImmutableArray<Symbol> symbols,
793ImmutableArray<Symbol> symbols)
813ImmutableArray<Symbol> symbols)
846ImmutableArray<Symbol> symbols)
881ImmutableArray<Symbol> symbols,
898ImmutableArray<ParameterSymbol> parameters = badMember.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: false);
926ImmutableArray<Symbol> symbols,
1085ImmutableArray<Symbol> symbols,
1118var parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: false);
1154ImmutableArray<Symbol> symbols,
1173var parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: false);
1340ImmutableArray<CustomModifier>.Empty,
1391private bool HadAmbiguousWorseMethods(BindingDiagnosticBag diagnostics, ImmutableArray<Symbol> symbols, Location location, bool isQuery, BoundExpression receiver, string name)
1455private bool HadAmbiguousBestMethods(BindingDiagnosticBag diagnostics, ImmutableArray<Symbol> symbols, Location location)
1507private static DiagnosticInfoWithSymbols CreateAmbiguousCallDiagnosticInfo(Symbol first, Symbol second, ImmutableArray<Symbol> symbols)
Binder\WithUsingNamespacesAndTypesBinder.cs (10)
35internal abstract ImmutableArray<NamespaceOrTypeAndUsingDirective> GetUsings(ConsList<TypeSymbol>? basesBeingResolved);
166ImmutableArray<Symbol> candidates = Binder.GetCandidateMembers(typeOrNamespace.NamespaceOrType, name, options, originalBinder: originalBinder);
289internal static WithUsingNamespacesAndTypesBinder Create(ImmutableArray<NamespaceOrTypeAndUsingDirective> namespacesOrTypes, Binder next, bool withImportChainEntry = false)
298private ImmutableArray<NamespaceOrTypeAndUsingDirective> _lazyUsings;
308internal override ImmutableArray<NamespaceOrTypeAndUsingDirective> GetUsings(ConsList<TypeSymbol>? basesBeingResolved)
338internal override ImmutableArray<NamespaceOrTypeAndUsingDirective> GetUsings(ConsList<TypeSymbol>? basesBeingResolved)
363private readonly ImmutableArray<NamespaceOrTypeAndUsingDirective> _usings;
365internal FromNamespacesOrTypes(ImmutableArray<NamespaceOrTypeAndUsingDirective> namespacesOrTypes, Binder next, bool withImportChainEntry)
372internal override ImmutableArray<NamespaceOrTypeAndUsingDirective> GetUsings(ConsList<TypeSymbol>? basesBeingResolved)
379return Imports.Create(ImmutableDictionary<string, AliasAndUsingDirective>.Empty, _usings, ImmutableArray<AliasAndExternAliasDirective>.Empty);
BoundTree\BoundObjectCreationExpression.cs (15)
12public BoundObjectCreationExpression(SyntaxNode syntax, MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt,
13ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ConstantValue? constantValueOpt,
15: this(syntax, constructor, ImmutableArray<MethodSymbol>.Empty, arguments, argumentNamesOpt, argumentRefKindsOpt, expanded, argsToParamsOpt, defaultArguments, constantValueOpt, initializerExpressionOpt, wasTargetTyped: false, type, hasErrors)
18public BoundObjectCreationExpression Update(MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded,
19ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ConstantValue? constantValueOpt, BoundObjectInitializerExpressionBase? initializerExpressionOpt, TypeSymbol type)
21return this.Update(constructor, ImmutableArray<MethodSymbol>.Empty, arguments, argumentNamesOpt, argumentRefKindsOpt, expanded, argsToParamsOpt, defaultArguments, constantValueOpt, initializerExpressionOpt, this.WasTargetTyped, type);
24public BoundObjectCreationExpression Update(MethodSymbol constructor, ImmutableArray<MethodSymbol> constructorsGroup, ImmutableArray<BoundExpression> arguments,
25ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt,
BoundTree\Constructors.cs (59)
91ImmutableArray<BoundExpression> arguments,
92ImmutableArray<string?> argumentNamesOpt,
93ImmutableArray<RefKind> argumentRefKindsOpt,
97ImmutableArray<int> argsToParamsOpt,
109ImmutableArray<BoundExpression> arguments,
110ImmutableArray<string?> argumentNamesOpt,
111ImmutableArray<RefKind> argumentRefKindsOpt,
115ImmutableArray<int> argsToParamsOpt,
125ImmutableArray<BoundExpression> arguments,
126ImmutableArray<string?> namedArguments,
127ImmutableArray<RefKind> refKinds,
130ImmutableArray<MethodSymbol> originalMethods,
150argsToParamsOpt: default(ImmutableArray<int>),
158public BoundCall Update(ImmutableArray<BoundExpression> arguments)
163public BoundCall Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments)
170return Synthesized(syntax, receiverOpt, initialBindingReceiverIsSubjectToCloning: initialBindingReceiverIsSubjectToCloning, method, ImmutableArray<BoundExpression>.Empty);
183public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt = default)
216argumentNamesOpt: default(ImmutableArray<string?>),
221argsToParamsOpt: default(ImmutableArray<int>),
230static ImmutableArray<RefKind> getArgumentRefKinds(MethodSymbol method)
232var result = method.ParameterRefKinds;
254: this(syntax, constructor, ImmutableArray.Create<BoundExpression>(arguments), default(ImmutableArray<string?>), default(ImmutableArray<RefKind>), false, default(ImmutableArray<int>), default(BitVector), null, null, constructor.ContainingType)
257public BoundObjectCreationExpression(SyntaxNode syntax, MethodSymbol constructor, ImmutableArray<BoundExpression> arguments)
258: this(syntax, constructor, arguments, default(ImmutableArray<string?>), default(ImmutableArray<RefKind>), false, default(ImmutableArray<int>), default(BitVector), null, null, constructor.ContainingType)
269ImmutableArray<BoundExpression> arguments,
270ImmutableArray<string?> namedArguments,
271ImmutableArray<RefKind> refKinds,
272ImmutableArray<PropertySymbol> originalIndexers)
284argsToParamsOpt: default(ImmutableArray<int>),
295ImmutableArray<BoundExpression> arguments,
296ImmutableArray<string?> argumentNamesOpt,
297ImmutableArray<RefKind> argumentRefKindsOpt,
300ImmutableArray<int> argsToParamsOpt,
310ImmutableArray<BoundExpression> arguments,
311ImmutableArray<string?> argumentNamesOpt,
312ImmutableArray<RefKind> argumentRefKindsOpt,
315ImmutableArray<int> argsToParamsOpt,
409ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt,
469ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt,
505public BoundTypeExpression(SyntaxNode syntax, AliasSymbol? aliasOpt, BoundTypeExpression? boundContainingTypeOpt, ImmutableArray<BoundExpression> boundDimensionsOpt, TypeWithAnnotations typeWithAnnotations, bool hasErrors = false)
512: this(syntax, aliasOpt, boundContainingTypeOpt, ImmutableArray<BoundExpression>.Empty, typeWithAnnotations, hasErrors)
526public BoundTypeExpression(SyntaxNode syntax, AliasSymbol? aliasOpt, ImmutableArray<BoundExpression> dimensionsOpt, TypeWithAnnotations typeWithAnnotations, bool hasErrors = false)
561public BoundBadExpression(SyntaxNode syntax, LookupResultKind resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol type)
580public static BoundStatementList Synthesized(SyntaxNode syntax, ImmutableArray<BoundStatement> statements)
585public static BoundStatementList Synthesized(SyntaxNode syntax, bool hasErrors, ImmutableArray<BoundStatement> statements)
617public BoundBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements, bool hasErrors = false)
618: this(syntax, locals, ImmutableArray<MethodSymbol>.Empty, hasUnsafeModifier: false, instrumentation: null, statements, hasErrors)
624return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, ImmutableArray.Create(statement))
628public static BoundBlock SynthesizedNoLocals(SyntaxNode syntax, ImmutableArray<BoundStatement> statements)
630return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements) { WasCompilerGenerated = true };
635return new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements.AsImmutableOrNull()) { WasCompilerGenerated = true };
649public BoundTryStatement(SyntaxNode syntax, BoundBlock tryBlock, ImmutableArray<BoundCatchBlock> catchBlocks, BoundBlock? finallyBlockOpt, LabelSymbol? finallyLabelOpt = null)
BoundTree\Expression.cs (37)
12internal static ImmutableArray<BoundExpression> GetChildInitializers(BoundExpression? objectOrCollectionInitializer)
26return ImmutableArray<BoundExpression>.Empty;
29ImmutableArray<BoundNode> IBoundInvalidNode.InvalidNodeChildren => CSharpOperationFactory.CreateInvalidChildrenFromArgumentsExpression(receiverOpt: null, Arguments, InitializerExpressionOpt);
34ImmutableArray<BoundNode> IBoundInvalidNode.InvalidNodeChildren => StaticCast<BoundNode>.From(Arguments);
39ImmutableArray<BoundNode> IBoundInvalidNode.InvalidNodeChildren => CSharpOperationFactory.CreateInvalidChildrenFromArgumentsExpression(ImplicitReceiverOpt, Arguments);
44protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Left, this.Right);
49protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(this.ChildBoundNodes);
51ImmutableArray<BoundNode> IBoundInvalidNode.InvalidNodeChildren => StaticCast<BoundNode>.From(this.ChildBoundNodes);
56ImmutableArray<BoundNode> IBoundInvalidNode.InvalidNodeChildren => CSharpOperationFactory.CreateInvalidChildrenFromArgumentsExpression(ReceiverOpt, Arguments);
61ImmutableArray<BoundNode> IBoundInvalidNode.InvalidNodeChildren => CSharpOperationFactory.CreateInvalidChildrenFromArgumentsExpression(ReceiverOpt, Arguments);
66protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(this.Arguments.Insert(0, this.Receiver));
71protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(this.Arguments);
76protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(this.ConstructorArguments.AddRange(StaticCast<BoundExpression>.From(this.NamedArguments)));
81protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Value);
86protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(this.Arguments);
91protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Argument);
96protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Expression, this.Index);
101protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Operand);
106protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Receiver);
111protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Operand);
116protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Operand);
121protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(this.Arguments.Insert(0, this.Expression));
126protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Expression);
131internal static ImmutableArray<BoundExpression> GetChildInitializers(BoundArrayInitialization? arrayInitializer)
133return arrayInitializer?.Initializers ?? ImmutableArray<BoundExpression>.Empty;
139protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(GetChildInitializers(this.InitializerOpt).Insert(0, this.Count));
144protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(GetChildInitializers(this.InitializerOpt).Insert(0, this.Count));
149protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(this.Arguments.AddRange(BoundObjectCreationExpression.GetChildInitializers(this.InitializerExpressionOpt)));
154protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Expression);
159protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.ReceiverOpt);
164protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(this.SideEffects.Add(this.Value));
169protected override ImmutableArray<BoundNode?> Children =>
170(this.Kind == BoundKind.StatementList || this.Kind == BoundKind.Scope) ? StaticCast<BoundNode?>.From(this.Statements) : ImmutableArray<BoundNode?>.Empty;
175protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Expression);
180protected override ImmutableArray<BoundNode?> Children => ImmutableArray.Create<BoundNode?>(this.Receiver, Argument);
185ImmutableArray<BoundNode> IBoundInvalidNode.InvalidNodeChildren => CSharpOperationFactory.CreateInvalidChildrenFromArgumentsExpression(receiverOpt: this.InvokedExpression, Arguments);
186protected override ImmutableArray<BoundNode?> Children => StaticCast<BoundNode?>.From(((IBoundInvalidNode)this).InvalidNodeChildren);
BoundTree\LengthBasedStringSwitchData.cs (16)
74internal readonly ImmutableArray<CharJumpTable> CharBasedJumpTables;
75internal readonly ImmutableArray<StringJumpTable> StringBasedJumpTables;
78ImmutableArray<CharJumpTable> charJumpTables, ImmutableArray<StringJumpTable> stringJumpTables)
88public readonly ImmutableArray<(int value, LabelSymbol label)> LengthCaseLabels;
90public LengthJumpTable(LabelSymbol? nullCaseLabel, ImmutableArray<(int value, LabelSymbol label)> lengthCaseLabels)
103public readonly ImmutableArray<(char value, LabelSymbol label)> CharCaseLabels;
105internal CharJumpTable(LabelSymbol label, int selectedCharPosition, ImmutableArray<(char value, LabelSymbol label)> charCaseLabels)
118public readonly ImmutableArray<(string value, LabelSymbol label)> StringCaseLabels;
120internal StringJumpTable(LabelSymbol label, ImmutableArray<(string value, LabelSymbol label)> stringCaseLabels)
137internal static LengthBasedStringSwitchData Create(ImmutableArray<(ConstantValue value, LabelSymbol label)> inputCases)
165private static LabelSymbol CreateAndRegisterCharJumpTables(int stringLength, ImmutableArray<(string value, LabelSymbol label)> casesWithGivenLength,
202static int selectBestCharacterIndex(int stringLength, ImmutableArray<(string value, LabelSymbol label)> caseLabels)
229static (int singleEntryCount, int largestBucket) positionScore(int position, ImmutableArray<(string value, LabelSymbol label)> caseLabels)
253private static LabelSymbol CreateAndRegisterStringJumpTable(ImmutableArray<(string value, LabelSymbol label)> cases, ArrayBuilder<StringJumpTable> stringJumpTables)
290void dump<T>(ImmutableArray<(T value, LabelSymbol label)> cases)
BoundTree\UnboundLambda.cs (66)
46internal readonly ImmutableArray<DiagnosticInfo> UseSiteDiagnostics;
47internal readonly ImmutableArray<AssemblySymbol> Dependencies;
56ImmutableArray<DiagnosticInfo> useSiteDiagnostics,
57ImmutableArray<AssemblySymbol> dependencies)
170ImmutableArray<TypeWithAnnotations> parameterTypes,
171ImmutableArray<RefKind> parameterRefKinds,
239useSiteInfo.AccumulatesDependencies ? useSiteInfo.Dependencies.AsImmutableOrEmpty() : ImmutableArray<AssemblySymbol>.Empty);
396ImmutableArray<SyntaxList<AttributeListSyntax>> parameterAttributes,
397ImmutableArray<RefKind> refKinds,
398ImmutableArray<ScopedKind> declaredScopes,
399ImmutableArray<TypeWithAnnotations> types,
400ImmutableArray<string> names,
401ImmutableArray<bool> discardsOpt,
403ImmutableArray<EqualsValueClauseSyntax?> defaultValues,
670internal (ImmutableArray<RefKind>, ArrayBuilder<ScopedKind>, ImmutableArray<TypeWithAnnotations>, bool) CollectParameterProperties()
712var parameterRefKinds = parameterRefKindsBuilder.ToImmutableAndFree();
713var parameterTypes = parameterTypesBuilder.ToImmutableAndFree();
844var lambdaParameters = lambdaSymbol.Parameters;
905ImmutableArray<TypeWithAnnotations> parameterTypes,
906ImmutableArray<RefKind> parameterRefKinds,
922ReturnInferenceCacheKey.GetFields(delegateType, IsAsync, out var parameterTypes, out var parameterRefKinds, out _);
926private void ValidateUnsafeParameters(BindingDiagnosticBag diagnostics, ImmutableArray<TypeWithAnnotations> targetParameterTypes)
953ImmutableArray<TypeWithAnnotations> parameterTypes,
954ImmutableArray<RefKind> parameterRefKinds)
970ImmutableArray<DiagnosticInfo>.Empty,
971ImmutableArray<AssemblySymbol>.Empty);
1010ImmutableArray<TypeWithAnnotations> parameterTypes,
1011ImmutableArray<RefKind> parameterRefKinds,
1046public readonly ImmutableArray<TypeWithAnnotations> ParameterTypes;
1047public readonly ImmutableArray<RefKind> ParameterRefKinds;
1050public static readonly ReturnInferenceCacheKey Empty = new ReturnInferenceCacheKey(ImmutableArray<TypeWithAnnotations>.Empty, ImmutableArray<RefKind>.Empty, null);
1052private ReturnInferenceCacheKey(ImmutableArray<TypeWithAnnotations> parameterTypes, ImmutableArray<RefKind> parameterRefKinds, NamedTypeSymbol? taskLikeReturnTypeOpt)
1101GetFields(delegateType, isAsync, out var parameterTypes, out var parameterRefKinds, out var taskLikeReturnTypeOpt);
1112out ImmutableArray<TypeWithAnnotations> parameterTypes,
1113out ImmutableArray<RefKind> parameterRefKinds,
1118parameterTypes = ImmutableArray<TypeWithAnnotations>.Empty;
1119parameterRefKinds = ImmutableArray<RefKind>.Empty;
1204?? rebind(ReallyInferReturnType(delegateType: null, ImmutableArray<TypeWithAnnotations>.Empty, ImmutableArray<RefKind>.Empty));
1212ReturnInferenceCacheKey.GetFields(delegateType, IsAsync, out var parameterTypes, out var parameterRefKinds, out _);
1220ImmutableArray<TypeWithAnnotations> parameterTypes,
1221ImmutableArray<RefKind> parameterRefKinds)
1255ImmutableArray<DiagnosticInfo>.Empty,
1256ImmutableArray<AssemblySymbol>.Empty))
1396private static FirstAmongEqualsSet<Diagnostic> CreateFirstAmongEqualsSet(ImmutableArray<Diagnostic> bag)
1451private readonly ImmutableArray<SyntaxList<AttributeListSyntax>> _parameterAttributes;
1452private readonly ImmutableArray<string> _parameterNames;
1453private readonly ImmutableArray<bool> _parameterIsDiscardOpt;
1454private readonly ImmutableArray<TypeWithAnnotations> _parameterTypesWithAnnotations;
1455private readonly ImmutableArray<RefKind> _parameterRefKinds;
1456private readonly ImmutableArray<ScopedKind> _parameterDeclaredScopes;
1457private readonly ImmutableArray<EqualsValueClauseSyntax?> _defaultValues;
1466ImmutableArray<SyntaxList<AttributeListSyntax>> parameterAttributes,
1467ImmutableArray<string> parameterNames,
1468ImmutableArray<bool> parameterIsDiscardOpt,
1469ImmutableArray<TypeWithAnnotations> parameterTypesWithAnnotations,
1470ImmutableArray<RefKind> parameterRefKinds,
1471ImmutableArray<ScopedKind> parameterDeclaredScopes,
1472ImmutableArray<EqualsValueClauseSyntax?> defaultValues,
1589var statements = body.Statements;
CodeGen\EmitArrayInitializer.cs (20)
47var initExprs = inits.Initializers;
56ImmutableArray<byte> data = this.GetRawData(initExprs);
68ImmutableArray<BoundExpression> inits,
82ImmutableArray<BoundExpression> inits,
124public IndexDesc(int index, ImmutableArray<BoundExpression> initializers)
131public readonly ImmutableArray<BoundExpression> Initializers;
135ImmutableArray<BoundExpression> inits,
246private ArrayInitializerStyle ShouldEmitBlockInitializer(TypeSymbol elementType, ImmutableArray<BoundExpression> inits)
297private void InitializerCountRecursive(ImmutableArray<BoundExpression> inits, ref int initCount, ref int constInits)
332private ImmutableArray<byte> GetRawData(ImmutableArray<BoundExpression> initializers)
344private void SerializeArrayRecursive(BlobBuilder bw, ImmutableArray<BoundExpression> inits)
368private static bool IsMultidimensionalInitializer(ImmutableArray<BoundExpression> inits)
482ImmutableArray<BoundExpression> initializers = initializer.Initializers;
511ImmutableArray<byte> data = GetRawDataForArrayInit(initializers);
632bool tryEmitAsCachedArrayFromBlob(NamedTypeSymbol spanType, BoundExpression wrappedExpression, int elementCount, ImmutableArray<byte> data, ref ArrayTypeSymbol arrayType, TypeSymbol elementType)
694var initializers = initializer.Initializers;
708ImmutableArray<ConstantValue> constants = initializers.SelectAsArray(static init => init.ConstantValueOpt!);
813private ImmutableArray<byte> GetRawDataForArrayInit(ImmutableArray<BoundExpression> initializers)
CodeGen\Optimizer.cs (21)
691var locals = node.Locals;
719var sideeffects = node.SideEffects;
763var sideeffects = node.SideEffects;
1173receiver = typeExpression.Update(aliasOpt: null, boundContainingTypeOpt: null, boundDimensionsOpt: ImmutableArray<BoundExpression>.Empty,
1187var rewrittenArguments = VisitArguments(node.Arguments, node.Method.Parameters, node.ArgumentRefKindsOpt);
1254private ImmutableArray<BoundExpression> VisitArguments(ImmutableArray<BoundExpression> arguments, ImmutableArray<ParameterSymbol> parameters, ImmutableArray<RefKind> argRefKindsOpt)
1271private void VisitArgument(ImmutableArray<BoundExpression> arguments, ref ArrayBuilder<BoundExpression> rewrittenArguments, int i, RefKind argRefKind)
1294ImmutableArray<BoundExpression> arguments = node.Arguments;
1295ImmutableArray<RefKind> argRefKindsOpt = node.ArgumentRefKindsOpt;
1318var rewrittenArguments = VisitArguments(node.Arguments, constructor.Parameters, node.ArgumentRefKindsOpt);
1672var catchBlocks = this.VisitList(node.CatchBlocks);
1758var initializers = node.Initializers;
1988private void DeclareLocals(ImmutableArray<LocalSymbol> locals, int stack)
2142ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
2264receiverOpt = typeExpression.Update(aliasOpt: null, boundContainingTypeOpt: null, boundDimensionsOpt: ImmutableArray<BoundExpression>.Empty,
2278ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
2395public override ImmutableArray<Location> Locations
2400public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences
CommandLine\CSharpCompiler.cs (8)
42ImmutableArray<AnalyzerConfigOptionsResult> analyzerConfigOptions,
53var sourceFiles = Arguments.SourceFiles;
148var sourceFileResolver = new LoggingSourceFileResolver(ImmutableArray<string>.Empty, Arguments.BaseDirectory, Arguments.PathMap, touchedFilesLogger);
338out ImmutableArray<DiagnosticAnalyzer> analyzers,
339out ImmutableArray<ISourceGenerator> generators)
376private protected override GeneratorDriver CreateGeneratorDriver(string baseDirectory, ParseOptions parseOptions, ImmutableArray<ISourceGenerator> generators, AnalyzerConfigOptionsProvider analyzerConfigOptionsProvider, ImmutableArray<AdditionalText> additionalTexts)
381private protected override void DiagnoseBadAccesses(TextWriter consoleOutput, ErrorLogger? errorLogger, Compilation compilation, ImmutableArray<Diagnostic> diagnostics)
Compilation\BuiltInOperators.cs (24)
28private ImmutableArray<UnaryOperatorSignature>[] _builtInUnaryOperators;
29private ImmutableArray<BinaryOperatorSignature>[][] _builtInOperators;
39private ImmutableArray<UnaryOperatorSignature> GetSignaturesFromUnaryOperatorKinds(int[] operatorKinds)
54var allOperators = new ImmutableArray<UnaryOperatorSignature>[]
237ImmutableArray<UnaryOperatorSignature>.Empty,
238ImmutableArray<UnaryOperatorSignature>.Empty,
292private ImmutableArray<BinaryOperatorSignature> GetSignaturesFromBinaryOperatorKinds(int[] operatorKinds)
307var logicalOperators = new ImmutableArray<BinaryOperatorSignature>[]
309ImmutableArray<BinaryOperatorSignature>.Empty, //multiplication
310ImmutableArray<BinaryOperatorSignature>.Empty, //addition
311ImmutableArray<BinaryOperatorSignature>.Empty, //subtraction
312ImmutableArray<BinaryOperatorSignature>.Empty, //division
313ImmutableArray<BinaryOperatorSignature>.Empty, //remainder
314ImmutableArray<BinaryOperatorSignature>.Empty, //left shift
315ImmutableArray<BinaryOperatorSignature>.Empty, //right shift
316ImmutableArray<BinaryOperatorSignature>.Empty, //equal
317ImmutableArray<BinaryOperatorSignature>.Empty, //not equal
318ImmutableArray<BinaryOperatorSignature>.Empty, //greater than
319ImmutableArray<BinaryOperatorSignature>.Empty, //less than
320ImmutableArray<BinaryOperatorSignature>.Empty, //greater than or equal
321ImmutableArray<BinaryOperatorSignature>.Empty, //less than or equal
323ImmutableArray<BinaryOperatorSignature>.Empty, //xor
325ImmutableArray<BinaryOperatorSignature>.Empty, //unsigned right shift
328var nonLogicalOperators = new ImmutableArray<BinaryOperatorSignature>[]
Compilation\CSharpCompilation.cs (64)
55private ImmutableArray<NamespaceOrTypeAndUsingDirective> _lazyGlobalImports;
70private ConcurrentDictionary<ImportInfo, ImmutableArray<AssemblySymbol>>? _lazyImportInfos;
74private ImmutableArray<Diagnostic> _lazyClsComplianceDiagnostics;
75private ImmutableArray<AssemblySymbol> _lazyClsComplianceDependencies;
412var validatedReferences = ValidateReferences<CSharpCompilationReference>(references);
434ImmutableArray<SyntaxTree>.Empty,
454ImmutableArray<MetadataReference> references,
471ImmutableArray<MetadataReference> references,
534private static LanguageVersion CommonLanguageVersion(ImmutableArray<SyntaxTree> syntaxTrees)
820public new ImmutableArray<SyntaxTree> SyntaxTrees
976syntaxAndDeclarations: syntaxAndDeclarations.WithExternalSyntaxTrees(ImmutableArray<SyntaxTree>.Empty));
1161public override ImmutableArray<MetadataReference> DirectiveReferences
1289public override CompilationReference ToMetadataReference(ImmutableArray<string> aliases = default, bool embedInteropTypes = false)
1567internal ImmutableArray<NamespaceOrTypeAndUsingDirective> GlobalImports
1570private ImmutableArray<NamespaceOrTypeAndUsingDirective> BindGlobalImports()
1574var previousSubmissionImports = previousSubmission is object ? Imports.ExpandPreviousSubmissionImports(previousSubmission.GlobalImports, this) : ImmutableArray<NamespaceOrTypeAndUsingDirective>.Empty;
1778ImmutableArray<Symbol>.Empty,
1779ImmutableArray<Location>.Empty
2431private sealed class InterceptorKeyComparer : IEqualityComparer<(ImmutableArray<byte> ContentHash, int Position)>
2436public bool Equals((ImmutableArray<byte> ContentHash, int Position) x, (ImmutableArray<byte> ContentHash, int Position) y)
2441public int GetHashCode((ImmutableArray<byte> ContentHash, int Position) obj)
2450private ConcurrentDictionary<(ImmutableArray<byte> ContentHash, int Position), OneOrMany<(Location AttributeLocation, MethodSymbol Interceptor)>>? _interceptions;
2452internal void AddInterception(ImmutableArray<byte> contentHash, int position, Location attributeLocation, MethodSymbol interceptor)
2458() => new ConcurrentDictionary<(ImmutableArray<byte> ContentHash, int Position), OneOrMany<(Location AttributeLocation, MethodSymbol Interceptor)>>(comparer: InterceptorKeyComparer.Instance));
2674ImmutableArray<AssemblySymbol> dependencies = pair.Value;
2780internal void RecordImportDependencies(UsingDirectiveSyntax syntax, ImmutableArray<AssemblySymbol> dependencies)
2885public override ImmutableArray<Diagnostic> GetParseDiagnostics(CancellationToken cancellationToken = default)
2894public override ImmutableArray<Diagnostic> GetDeclarationDiagnostics(CancellationToken cancellationToken = default)
2902public override ImmutableArray<Diagnostic> GetMethodBodyDiagnostics(CancellationToken cancellationToken = default)
2911public override ImmutableArray<Diagnostic> GetDiagnostics(CancellationToken cancellationToken = default)
2916internal ImmutableArray<Diagnostic> GetDiagnostics(CompilationStage stage, bool includeEarlierStages, Predicate<ISymbolInternal>? symbolFilter, CancellationToken cancellationToken)
2945var syntaxTrees = this.SyntaxTrees;
3027ImmutableArray<LoadDirective> loadDirectives;
3087private ImmutableArray<Diagnostic> GetDiagnosticsForMethodBodiesInTree(SyntaxTree tree, TextSpan? span, CancellationToken cancellationToken)
3264return new ReadOnlyBindingDiagnostic<AssemblySymbol>(result.AsImmutable(), ImmutableArray<AssemblySymbol>.Empty);
3302internal ImmutableArray<Diagnostic> GetDiagnosticsForSyntaxTree(
3594public bool CheckDuplicateFilePathsAndFree(ImmutableArray<SyntaxTree> syntaxTrees, NamespaceSymbol globalNamespace)
3750ImmutableArray<ModuleSymbol> modules = SourceAssembly.Modules;
3755ImmutableArray<EmbeddedResource> resources;
3884private static bool ChecksumMatches(string bytesText, ImmutableArray<byte> bytes)
3906private static ImmutableArray<byte> MakeChecksumBytes(string bytesText)
3974protected internal override ImmutableArray<SyntaxTree> CommonSyntaxTrees
4065ImmutableArray<ITypeSymbol> parameterTypes,
4066ImmutableArray<RefKind> parameterRefKinds,
4068ImmutableArray<INamedTypeSymbol> callingConventionTypes)
4121: ImmutableArray<CustomModifier>.Empty;
4160ImmutableArray<ITypeSymbol> elementTypes,
4161ImmutableArray<string?> elementNames,
4162ImmutableArray<Location?> elementLocations,
4163ImmutableArray<CodeAnalysis.NullableAnnotation> elementNullableAnnotations)
4187ImmutableArray<string?> elementNames,
4188ImmutableArray<Location?> elementLocations,
4189ImmutableArray<CodeAnalysis.NullableAnnotation> elementNullableAnnotations)
4215ImmutableArray<ITypeSymbol> memberTypes,
4216ImmutableArray<string> memberNames,
4217ImmutableArray<Location> memberLocations,
4218ImmutableArray<bool> memberIsReadOnly,
4219ImmutableArray<CodeAnalysis.NullableAnnotation> memberNullableAnnotations)
4776internal override AnalyzerDriver CreateAnalyzerDriver(ImmutableArray<DiagnosticAnalyzer> analyzers, AnalyzerManager analyzerManager, SeverityFilter severityFilter)
4809var preprocessorSymbols = GetPreprocessorSymbols();
4824private ImmutableArray<string> GetPreprocessorSymbols()
4830return ImmutableArray<string>.Empty;
Compilation\CSharpSemanticModel.cs (80)
167internal abstract BoundExpression GetSpeculativelyBoundExpression(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols);
177internal abstract ImmutableArray<Symbol> GetMemberGroupWorker(CSharpSyntaxNode node, SymbolInfoOptions options, CancellationToken cancellationToken = default(CancellationToken));
187internal abstract ImmutableArray<IPropertySymbol> GetIndexerGroupWorker(CSharpSyntaxNode node, SymbolInfoOptions options, CancellationToken cancellationToken = default(CancellationToken));
279protected BoundExpression GetSpeculativelyBoundExpressionWithoutNullability(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols)
286crefSymbols = default(ImmutableArray<Symbol>);
324internal static ImmutableArray<Symbol> BindCref(CrefSyntax crefSyntax, Binder binder)
327var symbols = binder.BindCref(crefSyntax, out unusedAmbiguityWinner, BindingDiagnosticBag.Discarded);
336ImmutableArray<Symbol> symbols = BindCref(crefSyntax, binder);
721ImmutableArray<Symbol> crefSymbols;
1051ImmutableArray<Symbol> crefSymbols;
1084public ImmutableArray<ISymbol> GetMemberGroup(ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken))
1090: ImmutableArray<ISymbol>.Empty;
1098public ImmutableArray<ISymbol> GetMemberGroup(AttributeSyntax attribute, CancellationToken cancellationToken = default(CancellationToken))
1104: ImmutableArray<ISymbol>.Empty;
1112public ImmutableArray<ISymbol> GetMemberGroup(ConstructorInitializerSyntax initializer, CancellationToken cancellationToken = default(CancellationToken))
1118: ImmutableArray<ISymbol>.Empty;
1135public ImmutableArray<IPropertySymbol> GetIndexerGroup(ExpressionSyntax expression, CancellationToken cancellationToken = default(CancellationToken))
1141: ImmutableArray<IPropertySymbol>.Empty;
1198ImmutableArray<Symbol> crefSymbols;
1413public ImmutableArray<ISymbol> LookupSymbols(
1458public new ImmutableArray<ISymbol> LookupBaseMembers(
1483public ImmutableArray<ISymbol> LookupStaticMembers(
1509public ImmutableArray<ISymbol> LookupNamespacesAndTypes(
1531public new ImmutableArray<ISymbol> LookupLabels(
1558private ImmutableArray<ISymbol> LookupSymbolsInternal(
1585return ImmutableArray<ISymbol>.Empty;
1597return ImmutableArray<ISymbol>.Empty;
1911boundExpr, boundNodeForSyntacticParent, binderOpt, options, out bool isDynamic, out LookupResultKind resultKind, out ImmutableArray<Symbol> unusedMemberGroup);
1917ImmutableArray<Symbol> unusedHighestMemberGroup;
1957return SymbolInfoFactory.Create(ImmutableArray<Symbol>.Empty, LookupResultKind.Empty, isDynamic);
2163conversion = Conversion.MakeConditionalExpression(ImmutableArray<Conversion>.Empty);
2280internal ImmutableArray<Symbol> GetMemberGroupForNode(
2289ImmutableArray<Symbol> memberGroup;
2296return ImmutableArray<Symbol>.Empty;
2303internal ImmutableArray<IPropertySymbol> GetIndexerGroupForNode(
2313return ImmutableArray<IPropertySymbol>.Empty;
3229internal abstract ImmutableArray<ISymbol> GetDeclaredSymbols(BaseFieldDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken));
3232ImmutableArray<ParameterSymbol> parameters,
3356out ImmutableArray<Symbol> memberGroup)
3358memberGroup = ImmutableArray<Symbol>.Empty;
3495ImmutableArray<PropertySymbol> originalIndexersOpt = indexerAccess.OriginalIndexersOpt;
3604var candidateSymbols = errorType.CandidateSymbols;
3948private static void GetSymbolsAndResultKind(BoundExpression node, Symbol symbolOpt, ImmutableArray<MethodSymbol> originalCandidates, out OneOrMany<Symbol> symbols, out LookupResultKind resultKind)
3976ref ImmutableArray<Symbol> memberGroup)
4029ref ImmutableArray<Symbol> memberGroup)
4042ImmutableArray<MethodSymbol> candidateConstructors;
4046var instanceConstructors = typeSymbolOpt.IsInterfaceType() && (object)typeSymbolOpt.ComImportCoClass != null ?
4063candidateConstructors = ImmutableArray<MethodSymbol>.Empty;
4090private ImmutableArray<IPropertySymbol> GetIndexerGroupSemanticSymbols(BoundExpression boundNode, Binder binderOpt)
4098return ImmutableArray<IPropertySymbol>.Empty;
4108return ImmutableArray<IPropertySymbol>.Empty;
4111var result = FilterOverriddenOrHiddenIndexers(symbols);
4117private static ImmutableArray<IPropertySymbol> FilterOverriddenOrHiddenIndexers(ArrayBuilder<ISymbol> symbols)
4204private static ImmutableArray<MethodSymbol> FilterOverriddenOrHiddenMethods(ImmutableArray<MethodSymbol> methods)
4247out ImmutableArray<Symbol> memberGroup)
4341ImmutableArray<Symbol> myMethodGroup = memberGroup;
4399out ImmutableArray<Symbol> propertyGroup)
4442ImmutableArray<Symbol> myPropertyGroup = propertyGroup;
4559private static ParameterSymbol FindNamedParameter(ImmutableArray<ParameterSymbol> parameters, string argumentName)
4570internal static ImmutableArray<Symbol> GetReducedAndFilteredMethodGroupSymbols(Binder binder, BoundMethodGroup node)
4575var typeArguments = node.TypeArgumentsOpt;
4583ImmutableArray<MethodSymbol> nonHiddenMethods = FilterOverriddenOrHiddenMethods(node.Methods);
4682ImmutableArray<TypeWithAnnotations> typeArguments,
4708ImmutableArray<TypeWithAnnotations> typeArguments,
4751var methods = call.OriginalMethodsOpt;
4999private ImmutableArray<ISymbol> GetMemberGroupFromNode(SyntaxNode node, CancellationToken cancellationToken)
5013return ImmutableArray<ISymbol>.Empty;
5016protected sealed override ImmutableArray<ISymbol> GetMemberGroupCore(SyntaxNode node, CancellationToken cancellationToken)
5018var methodGroup = this.GetMemberGroupFromNode(node, cancellationToken);
5165protected sealed override ImmutableArray<ISymbol> GetDeclaredSymbolsCore(SyntaxNode declaration, CancellationToken cancellationToken = default(CancellationToken))
5191: ImmutableArray<ISymbol>.Empty;
5227var checksum = text.GetContentHash();
5280protected sealed override ImmutableArray<ISymbol> LookupSymbolsCore(int position, INamespaceOrTypeSymbol container, string name, bool includeReducedExtensionMethods)
5285protected sealed override ImmutableArray<ISymbol> LookupBaseMembersCore(int position, string name)
5290protected sealed override ImmutableArray<ISymbol> LookupStaticMembersCore(int position, INamespaceOrTypeSymbol container, string name)
5295protected sealed override ImmutableArray<ISymbol> LookupNamespacesAndTypesCore(int position, INamespaceOrTypeSymbol container, string name)
5300protected sealed override ImmutableArray<ISymbol> LookupLabelsCore(int position, string name)
5406private protected sealed override ImmutableArray<IImportScope> GetImportScopesCore(int position, CancellationToken cancellationToken)
5424xmlNamespaces: ImmutableArray<ImportedXmlNamespace>.Empty));
Compilation\MemberSemanticModel.cs (10)
191internal override BoundExpression GetSpeculativelyBoundExpression(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols)
571public sealed override ImmutableArray<Diagnostic> GetSyntaxDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
576public sealed override ImmutableArray<Diagnostic> GetDeclarationDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
581public sealed override ImmutableArray<Diagnostic> GetMethodBodyDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
586public sealed override ImmutableArray<Diagnostic> GetDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
822internal override ImmutableArray<ISymbol> GetDeclaredSymbols(BaseFieldDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken))
1128var elements = tupleLiteralType.TupleElements;
1232internal override ImmutableArray<Symbol> GetMemberGroupWorker(CSharpSyntaxNode node, SymbolInfoOptions options, CancellationToken cancellationToken = default(CancellationToken))
1244internal override ImmutableArray<IPropertySymbol> GetIndexerGroupWorker(CSharpSyntaxNode node, SymbolInfoOptions options, CancellationToken cancellationToken = default(CancellationToken))
1831private static BoundExpression GetContainingArgument(ImmutableArray<BoundExpression> arguments, int position)
Compilation\SpeculativeSemanticModelWithMemberModel.cs (8)
235public override ImmutableArray<Diagnostic> GetSyntaxDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
240public override ImmutableArray<Diagnostic> GetDeclarationDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
245public override ImmutableArray<Diagnostic> GetMethodBodyDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
250public override ImmutableArray<Diagnostic> GetDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
370internal override ImmutableArray<ISymbol> GetDeclaredSymbols(BaseFieldDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken))
460internal override ImmutableArray<Symbol> GetMemberGroupWorker(CSharpSyntaxNode node, SymbolInfoOptions options, CancellationToken cancellationToken = default(CancellationToken))
465internal override ImmutableArray<IPropertySymbol> GetIndexerGroupWorker(CSharpSyntaxNode node, SymbolInfoOptions options, CancellationToken cancellationToken = default(CancellationToken))
565internal override BoundExpression GetSpeculativelyBoundExpression(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols)
Compilation\SyntaxAndDeclarationManager.cs (21)
28ImmutableArray<SyntaxTree> externalSyntaxTrees,
50ImmutableArray<SyntaxTree> externalSyntaxTrees,
58var loadDirectiveMapBuilder = PooledDictionary<SyntaxTree, ImmutableArray<LoadDirective>>.GetInstance();
161IDictionary<SyntaxTree, ImmutableArray<LoadDirective>> loadDirectiveMapBuilder,
196IDictionary<SyntaxTree, ImmutableArray<LoadDirective>> loadDirectiveMapBuilder,
313var syntaxTrees = state.SyntaxTrees;
320ImmutableArray<LoadDirective> unused2;
385ImmutableArray<SyntaxTree> syntaxTrees,
387ImmutableDictionary<SyntaxTree, ImmutableArray<LoadDirective>> loadDirectiveMap,
391out ImmutableArray<LoadDirective> oldLoadDirectives)
400oldLoadDirectives = ImmutableArray<LoadDirective>.Empty;
415ImmutableArray<LoadDirective> loadDirectives;
433ImmutableArray<LoadDirective> loadDirectives,
434ImmutableDictionary<SyntaxTree, ImmutableArray<LoadDirective>> loadDirectiveMap,
445ImmutableArray<LoadDirective> nestedLoadDirectives;
477var syntaxTrees = state.SyntaxTrees;
483ImmutableArray<LoadDirective> oldLoadDirectives;
514ImmutableArray<SyntaxTree> newTrees;
663internal SyntaxAndDeclarationManager WithExternalSyntaxTrees(ImmutableArray<SyntaxTree> trees)
678ImmutableDictionary<SyntaxTree, ImmutableArray<LoadDirective>> loadDirectiveMap,
684ImmutableArray<LoadDirective> loadDirectives;
Compilation\SyntaxTreeSemanticModel.cs (16)
114public override ImmutableArray<Diagnostic> GetSyntaxDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
121public override ImmutableArray<Diagnostic> GetDeclarationDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
128public override ImmutableArray<Diagnostic> GetMethodBodyDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
135public override ImmutableArray<Diagnostic> GetDiagnostics(TextSpan? span = null, CancellationToken cancellationToken = default(CancellationToken))
255var symbols = binder.BindXmlNameAttribute(attrSyntax, ref discardedUseSiteInfo);
397internal override ImmutableArray<Symbol> GetMemberGroupWorker(CSharpSyntaxNode node, SymbolInfoOptions options, CancellationToken cancellationToken = default(CancellationToken))
403return model == null ? ImmutableArray<Symbol>.Empty : model.GetMemberGroupWorker(node, options, cancellationToken);
406internal override ImmutableArray<IPropertySymbol> GetIndexerGroupWorker(CSharpSyntaxNode node, SymbolInfoOptions options, CancellationToken cancellationToken = default(CancellationToken))
412return model == null ? ImmutableArray<IPropertySymbol>.Empty : model.GetIndexerGroupWorker(node, options, cancellationToken);
738internal override BoundExpression GetSpeculativelyBoundExpression(int position, ExpressionSyntax expression, SpeculativeBindingOption bindingOption, out Binder binder, out ImmutableArray<Symbol> crefSymbols)
1401var collection = container.GetMembersUnordered();
1789var collection = name != null ? container.GetMembers(name) : container.GetMembersUnordered();
1954var usingAliases = binder.UsingAliases;
1987var externAliases = binder.ExternAliases;
2012internal override ImmutableArray<ISymbol> GetDeclaredSymbols(BaseFieldDeclarationSyntax declarationSyntax, CancellationToken cancellationToken = default(CancellationToken))
2230private TypeParameterSymbol GetTypeParameterSymbol(ImmutableArray<TypeParameterSymbol> parameters, TypeParameterSyntax parameter)
Compiler\DocumentationCommentCompiler.cs (19)
329if (!TryGetDocumentationCommentNodes(symbolForDocComments, out var maxDocumentationMode, out var docCommentNodes))
365ImmutableArray<CSharpSyntaxNode> includeElementNodes;
454ImmutableArray<DocumentationCommentTriviaSyntax> docCommentNodes,
456out ImmutableArray<CSharpSyntaxNode> includeElementNodes)
487static ArrayBuilder<XmlElementSyntax>? getMatchingParamTags(string propertyName, ImmutableArray<DocumentationCommentTriviaSyntax> docCommentNodes)
529ImmutableArray<DocumentationCommentTriviaSyntax> docCommentNodes,
534out ImmutableArray<CSharpSyntaxNode> includeElementNodes)
614includeElementNodes = default(ImmutableArray<CSharpSyntaxNode>);
629includeElementNodes = _processIncludes ? includeElementNodesBuilder.ToImmutableAndFree() : default(ImmutableArray<CSharpSyntaxNode>);
650private static ImmutableArray<ParameterSymbol> GetParameters(Symbol symbol)
667return ImmutableArray<ParameterSymbol>.Empty;
673private static ImmutableArray<TypeParameterSymbol> GetTypeParameters(Symbol symbol)
683return ImmutableArray<TypeParameterSymbol>.Empty;
722private bool TryGetDocumentationCommentNodes(Symbol symbol, out DocumentationMode maxDocumentationMode, out ImmutableArray<DocumentationCommentTriviaSyntax> nodes)
725nodes = default(ImmutableArray<DocumentationCommentTriviaSyntax>);
735ImmutableArray<DocumentationCommentTriviaSyntax> triviaList = SourceDocumentationCommentUtils.GetDocumentationCommentTriviaFromSyntaxNode((CSharpSyntaxNode)reference.GetSyntax(), diagnosticBag);
762nodes = ImmutableArray<DocumentationCommentTriviaSyntax>.Empty;
1107ImmutableArray<Symbol> symbols = binder.BindCref(crefSyntax, out ambiguityWinner, diagnostics);
1196ImmutableArray<Symbol> referencedSymbols = binder.BindXmlNameAttribute(syntax, ref useSiteInfo);
Compiler\MethodCompiler.cs (54)
167var embeddedTypes = moduleBeingBuiltOpt.GetEmbeddedTypes(diagnostics);
280out ImmutableArray<SourceSpan> codeCoverageSpans,
309ImmutableArray<EncLambdaInfo>.Empty,
310ImmutableArray<LambdaRuntimeRudeEditInfo>.Empty,
311ImmutableArray<EncClosureInfo>.Empty,
312ImmutableArray<StateMachineStateDebugInfo>.Empty,
319codeCoverageSpans: ImmutableArray<SourceSpan>.Empty,
494var members = containingType.GetMembers();
649var processedInitializers = new Binder.ProcessedFieldInitializers() { BoundInitializers = ImmutableArray<BoundInitializer>.Empty };
696private void CompileSynthesizedMethods(ImmutableArray<NamedTypeSymbol> additionalTypes, BindingDiagnosticBag diagnostics)
779ImmutableArray<EncLambdaInfo>.Empty,
780ImmutableArray<LambdaRuntimeRudeEditInfo>.Empty,
781ImmutableArray<EncClosureInfo>.Empty,
789codeCoverageSpans: ImmutableArray<SourceSpan>.Empty,
837var interfaces = sourceTypeSymbol.GetInterfacesToEmit();
924sourceMethod.SetDiagnostics(ImmutableArray<Diagnostic>.Empty, out diagsWritten);
937var cachedDiagnostics = sourceMethod.Diagnostics;
985body = new BoundBlock(methodSymbol.GetNonNullSyntaxNode(), ImmutableArray<LocalSymbol>.Empty, ImmutableArray<BoundStatement>.Empty) { WasCompilerGenerated = true };
1028new BoundBlock(analyzedInitializers.Syntax, ImmutableArray<LocalSymbol>.Empty, analyzedInitializers.Statements), // The block is necessary to establish the right local scope for the analysis
1187ImmutableArray<SourceSpan> codeCoverageSpans;
1224codeCoverageSpans = ImmutableArray<SourceSpan>.Empty;
1240ImmutableArray<BoundStatement> boundStatements;
1248boundStatements = ImmutableArray<BoundStatement>.Empty;
1287out ImmutableArray<SourceSpan> initializerCodeCoverageSpans,
1416exceptionHandlers: ImmutableArray<Cci.ExceptionHandlerRegion>.Empty,
1419localScopes: ImmutableArray<Cci.LocalScope>.Empty,
1422lambdaDebugInfo: ImmutableArray<EncLambdaInfo>.Empty,
1423orderedLambdaRuntimeRudeEdits: ImmutableArray<LambdaRuntimeRudeEditInfo>.Empty,
1424closureDebugInfo: ImmutableArray<EncClosureInfo>.Empty,
1426stateMachineHoistedLocalScopes: default(ImmutableArray<StateMachineHoistedLocalScope>),
1427stateMachineHoistedLocalSlots: default(ImmutableArray<EncHoistedLocalInfo>),
1428stateMachineAwaiterSlots: default(ImmutableArray<Cci.ITypeReference>),
1429StateMachineStatesDebugInfo.Create(variableSlotAllocator: null, ImmutableArray<StateMachineStateDebugInfo>.Empty),
1431codeCoverageSpans: ImmutableArray<SourceSpan>.Empty,
1451out ImmutableArray<SourceSpan> codeCoverageSpans,
1465codeCoverageSpans = ImmutableArray<SourceSpan>.Empty;
1573codeCoverageSpans = ImmutableArray<SourceSpan>.Empty;
1587ImmutableArray<EncLambdaInfo> lambdaDebugInfo,
1588ImmutableArray<LambdaRuntimeRudeEditInfo> orderedLambdaRuntimeRudeEdits,
1589ImmutableArray<EncClosureInfo> closureDebugInfo,
1590ImmutableArray<StateMachineStateDebugInfo> stateMachineStateDebugInfos,
1597ImmutableArray<SourceSpan> codeCoverageSpans,
1645codeGen.Generate(out int asyncCatchHandlerOffset, out var asyncYieldPoints, out var asyncResumePoints, out hasStackalloc);
1677builder.GetHoistedLocalScopes() : default(ImmutableArray<StateMachineHoistedLocalScope>);
1697var stateMachineHoistedLocalSlots = default(ImmutableArray<EncHoistedLocalInfo>);
1698var stateMachineAwaiterSlots = default(ImmutableArray<Cci.ITypeReference>);
1754out ImmutableArray<EncHoistedLocalInfo> hoistedVariableSlots,
1755out ImmutableArray<Cci.ITypeReference> awaiterSlots)
2041ImmutableArray<BoundStatement> statements;
2050statements = ImmutableArray<BoundStatement>.Empty;
Declarations\DeclarationTreeBuilder.cs (22)
124private ImmutableArray<SingleNamespaceOrTypeDeclaration> VisitNamespaceChildren(
135return ImmutableArray<SingleNamespaceOrTypeDeclaration>.Empty;
191var diagnostics = ImmutableArray<Diagnostic>.Empty;
228children: ImmutableArray<SingleTypeDeclaration>.Empty,
229diagnostics: ImmutableArray<Diagnostic>.Empty,
233private static SingleNamespaceOrTypeDeclaration CreateSimpleProgram(GlobalStatementSyntax firstGlobalStatement, bool hasAwaitExpressions, bool isIterator, bool hasReturnWithExpression, ImmutableArray<Diagnostic> diagnostics)
256children: ImmutableArray<SingleTypeDeclaration>.Empty,
304private static ImmutableArray<ReferenceDirective> GetReferenceDirectives(CompilationUnitSyntax compilationUnit)
310return ImmutableArray<ReferenceDirective>.Empty;
323ImmutableArray<SingleTypeDeclaration> children,
344diagnostics: ImmutableArray<Diagnostic>.Empty,
356diagnostics: ImmutableArray<Diagnostic>.Empty);
400var children = VisitNamespaceChildren(compilationUnit, compilationUnit.Members, ((Syntax.InternalSyntax.CompilationUnitSyntax)(compilationUnit.Green)).Members);
433private RootSingleNamespaceDeclaration CreateRootSingleNamespaceDeclaration(CompilationUnitSyntax compilationUnit, ImmutableArray<SingleNamespaceOrTypeDeclaration> children, bool isForScript)
470referenceDirectives: isForScript ? GetReferenceDirectives(compilationUnit) : ImmutableArray<ReferenceDirective>.Empty,
502var children = VisitNamespaceChildren(node, node.Members, ((Syntax.InternalSyntax.BaseNamespaceDeclarationSyntax)node.Green).Members);
517diagnostics: ImmutableArray<Diagnostic>.Empty);
790private ImmutableArray<SingleTypeDeclaration> VisitTypeChildren(TypeDeclarationSyntax node)
794return ImmutableArray<SingleTypeDeclaration>.Empty;
833children: ImmutableArray<SingleTypeDeclaration>.Empty,
871children: ImmutableArray<SingleTypeDeclaration>.Empty,
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (36)
31IReadOnlyDictionary<ISymbolInternal, ImmutableArray<ISymbolInternal>>? otherSynthesizedMembers,
32IReadOnlyDictionary<ISymbolInternal, ImmutableArray<ISymbolInternal>>? otherDeletedMembers)
100private readonly IReadOnlyDictionary<ISymbolInternal, ImmutableArray<ISymbolInternal>>? _otherSynthesizedMembers;
102private readonly IReadOnlyDictionary<ISymbolInternal, ImmutableArray<ISymbolInternal>>? _otherDeletedMembers;
113private readonly ConcurrentDictionary<ISymbolInternal, IReadOnlyDictionary<string, ImmutableArray<ISymbolInternal>>> _otherMembers = new(ReferenceEqualityComparer.Instance);
119IReadOnlyDictionary<ISymbolInternal, ImmutableArray<ISymbolInternal>>? otherSynthesizedMembers,
120IReadOnlyDictionary<ISymbolInternal, ImmutableArray<ISymbolInternal>>? otherDeletedMembers,
155var otherModifiers = VisitCustomModifiers(symbol.ElementTypeWithAnnotations.CustomModifiers);
289var otherTypeParameters = otherDef.GetAllTypeParameters();
381var otherModifiers = VisitCustomModifiers(symbol.PointedAtTypeWithAnnotations.CustomModifiers);
395var otherRefCustomModifiers = VisitCustomModifiers(sig.RefCustomModifiers);
398var otherParameterTypes = ImmutableArray<TypeWithAnnotations>.Empty;
399ImmutableArray<ImmutableArray<CustomModifier>> otherParamRefCustomModifiers = default;
404var otherParamRefCustomModifiersBuilder = ArrayBuilder<ImmutableArray<CustomModifier>>.GetInstance(sig.ParameterCount);
450private ImmutableArray<CustomModifier> VisitCustomModifiers(ImmutableArray<CustomModifier> modifiers)
551if (otherMembersByName.TryGetValue(sourceMember.MetadataName, out var otherMembers))
610var typeParameters = method.TypeParameters;
635var typeParameters = type.TypeParameters;
693private static void ValidateFunctionPointerParamOrReturn(TypeWithAnnotations type, RefKind refKind, ImmutableArray<CustomModifier> refCustomModifiers, bool allowOut)
698static bool verifyRefModifiers(ImmutableArray<CustomModifier> modifiers, RefKind refKind, bool allowOut)
776private IReadOnlyDictionary<string, ImmutableArray<ISymbolInternal>> GetAllEmittedMembers(ISymbolInternal symbol)
794if (_otherSynthesizedMembers != null && _otherSynthesizedMembers.TryGetValue(symbol, out var synthesizedMembers))
799if (_otherDeletedMembers?.TryGetValue(symbol, out var deletedMembers) == true)
861var translatedModifiers = VisitCustomModifiers(symbol.ElementTypeWithAnnotations.CustomModifiers);
904var translatedModifiers = VisitCustomModifiers(symbol.PointedAtTypeWithAnnotations.CustomModifiers);
913var translatedRefCustomModifiers = VisitCustomModifiers(sig.RefCustomModifiers);
915var translatedParameterTypes = ImmutableArray<TypeWithAnnotations>.Empty;
916ImmutableArray<ImmutableArray<CustomModifier>> translatedParamRefCustomModifiers = default;
921var translatedParamRefCustomModifiersBuilder = ArrayBuilder<ImmutableArray<CustomModifier>>.GetInstance(sig.ParameterCount);
942private ImmutableArray<CustomModifier> VisitCustomModifiers(ImmutableArray<CustomModifier> modifiers)
Emitter\Model\PEAssemblyBuilder.cs (34)
29private readonly ImmutableArray<NamedTypeSymbol> _additionalTypes;
31private ImmutableArray<Cci.IFileReference> _lazyFiles;
34private ImmutableArray<Cci.IFileReference> _lazyFilesWithoutManifestResources;
74ImmutableArray<NamedTypeSymbol> additionalTypes)
89public sealed override ImmutableArray<NamedTypeSymbol> GetAdditionalTopLevelTypes()
92internal sealed override ImmutableArray<NamedTypeSymbol> GetEmbeddedTypes(BindingDiagnosticBag diagnostics)
126ImmutableArray<Cci.IFileReference> getFiles(ref ImmutableArray<Cci.IFileReference> lazyFiles)
133var modules = _sourceAssembly.Modules;
172var modules = _sourceAssembly.Modules;
208ImmutableArray<TypedConstant>.Empty,
209ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
212internal override SynthesizedAttributeData SynthesizeNullableAttribute(WellKnownMember member, ImmutableArray<TypedConstant> arguments)
221ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
227internal override SynthesizedAttributeData SynthesizeNullableContextAttribute(ImmutableArray<TypedConstant> arguments)
235ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
241internal override SynthesizedAttributeData SynthesizeNullablePublicOnlyAttribute(ImmutableArray<TypedConstant> arguments)
249ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
255internal override SynthesizedAttributeData SynthesizeNativeIntegerAttribute(WellKnownMember member, ImmutableArray<TypedConstant> arguments)
264ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
277ImmutableArray<TypedConstant>.Empty,
278ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
284internal override SynthesizedAttributeData SynthesizeRefSafetyRulesAttribute(ImmutableArray<TypedConstant> arguments)
292ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
305ImmutableArray<TypedConstant>.Empty,
306ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
319ImmutableArray<TypedConstant>.Empty,
320ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
333ImmutableArray<TypedConstant>.Empty,
334ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
347ImmutableArray<TypedConstant>.Empty,
348ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
361ImmutableArray<TypedConstant>.Empty,
362ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
Emitter\Model\PEModuleBuilder.cs (33)
30private readonly ConcurrentDictionary<ImportChain, ImmutableArray<Cci.UsedNamespaceOrType>> _translatedImportsMap =
31new ConcurrentDictionary<ImportChain, ImmutableArray<Cci.UsedNamespaceOrType>>(ReferenceEqualityComparer.Instance);
42private ImmutableArray<Cci.ExportedType> _lazyExportedTypes;
146public sealed override ImmutableArray<Cci.UsedNamespaceOrType> GetImports() => ImmutableArray<Cci.UsedNamespaceOrType>.Empty;
153ImmutableArray<ModuleSymbol> modules = SourceModule.ContainingAssembly.Modules;
215public sealed override IEnumerable<(Cci.ITypeDefinition, ImmutableArray<Cci.DebugSourceDocument>)> GetTypeToDebugDocumentMap(EmitContext context)
507internal virtual ImmutableArray<AnonymousTypeKey> GetPreviousAnonymousTypes()
509return ImmutableArray<AnonymousTypeKey>.Empty;
512internal virtual ImmutableArray<SynthesizedDelegateKey> GetPreviousAnonymousDelegates()
514return ImmutableArray<SynthesizedDelegateKey>.Empty;
609public sealed override ImmutableArray<Cci.ExportedType> GetExportedTypes(DiagnosticBag diagnostics)
630private ImmutableArray<Cci.ExportedType> CalculateExportedTypes()
637var modules = sourceAssembly.Modules;
668private void ReportExportedTypeNameCollisions(ImmutableArray<Cci.ExportedType> exportedTypes, DiagnosticBag diagnostics)
788ImmutableArray<NamedTypeSymbol> nested = type.GetTypeMembers(); // Ordered.
1363internal ImmutableArray<Cci.IParameterTypeInformation> Translate(ImmutableArray<ParameterSymbol> @params)
1402private ImmutableArray<Cci.IParameterTypeInformation> TranslateAll(ImmutableArray<ParameterSymbol> @params)
1604internal virtual SynthesizedAttributeData SynthesizeNullableAttribute(WellKnownMember member, ImmutableArray<TypedConstant> arguments)
1624internal virtual SynthesizedAttributeData SynthesizeNullableContextAttribute(ImmutableArray<TypedConstant> arguments)
1657attribute = SynthesizeNativeIntegerAttribute(WellKnownMember.System_Runtime_CompilerServices_NativeIntegerAttribute__ctor, ImmutableArray<TypedConstant>.Empty);
1665var arguments = ImmutableArray.Create(new TypedConstant(boolArray, transformFlags));
1673internal virtual SynthesizedAttributeData SynthesizeNativeIntegerAttribute(WellKnownMember member, ImmutableArray<TypedConstant> arguments)
1704internal virtual SynthesizedAttributeData SynthesizeRefSafetyRulesAttribute(ImmutableArray<TypedConstant> arguments)
1718internal virtual SynthesizedAttributeData SynthesizeNullablePublicOnlyAttribute(ImmutableArray<TypedConstant> arguments)
2067public sealed override ImmutableArray<NamedTypeSymbol> GetEmbeddedTypes(DiagnosticBag diagnostics)
2071var result = GetEmbeddedTypes(bindingDiagnostics);
2078internal virtual ImmutableArray<NamedTypeSymbol> GetEmbeddedTypes(BindingDiagnosticBag diagnostics)
2083internal bool TryGetTranslatedImports(ImportChain chain, out ImmutableArray<Cci.UsedNamespaceOrType> imports)
2088internal ImmutableArray<Cci.UsedNamespaceOrType> GetOrAddTranslatedImports(ImportChain chain, ImmutableArray<Cci.UsedNamespaceOrType> imports)
Emitter\NoPia\EmbeddedTypesManager.cs (9)
123internal override CSharpAttributeData CreateSynthesizedAttribute(WellKnownMember constructor, ImmutableArray<TypedConstant> constructorArguments, ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments, SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics)
139ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
148ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
155internal override bool TryGetAttributeArguments(CSharpAttributeData attrData, out ImmutableArray<TypedConstant> constructorArguments, out ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments, SyntaxNode syntaxNodeOpt, DiagnosticBag diagnostics)
188protected override void OnGetTypesCompleted(ImmutableArray<EmbeddedType> types, DiagnosticBag diagnostics)
627internal static ImmutableArray<EmbeddedParameter> EmbedParameters(
629ImmutableArray<ParameterSymbol> underlyingParameters)
Errors\CSDiagnosticInfo.cs (8)
23: this(code, Array.Empty<object>(), ImmutableArray<Symbol>.Empty, ImmutableArray<Location>.Empty)
28: this(code, args, ImmutableArray<Symbol>.Empty, ImmutableArray<Location>.Empty)
32internal CSDiagnosticInfo(ErrorCode code, ImmutableArray<Symbol> symbols, object[] args)
33: this(code, args, symbols, ImmutableArray<Location>.Empty)
37internal CSDiagnosticInfo(ErrorCode code, object[] args, ImmutableArray<Symbol> symbols, ImmutableArray<Location> additionalLocations)
FlowAnalysis\AbstractFlowPass.cs (29)
315protected virtual void EnterParameters(ImmutableArray<ParameterSymbol> parameters)
327ImmutableArray<ParameterSymbol> parameters,
420protected virtual ImmutableArray<PendingBranch> Scan(ref bool badRegion)
431ImmutableArray<PendingBranch> result = RemoveReturns();
435protected ImmutableArray<PendingBranch> Analyze(ref bool badRegion, Optional<TLocalState> initialState = default)
437ImmutableArray<PendingBranch> returns;
465protected ImmutableArray<ParameterSymbol> MethodParameters
470return (object)method == null ? ImmutableArray<ParameterSymbol>.Empty : method.Parameters;
530protected virtual ImmutableArray<PendingBranch> RemoveReturns()
532ImmutableArray<PendingBranch> result;
1131VisitArguments(node.Arguments, default(ImmutableArray<RefKind>), null, default, false);
1310private void VisitStatements(ImmutableArray<BoundStatement> statements)
1515protected virtual void VisitArguments(ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> refKindsOpt, MethodSymbol method, ImmutableArray<int> argsToParamsOpt, bool expanded)
1522private void VisitArgumentsBeforeCall(ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> refKindsOpt)
1543private void VisitArgumentsAfterCall(ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> refKindsOpt, MethodSymbol? method, ImmutableArray<int> argsToParamsOpt, bool expanded)
1572protected static RefKind GetRefKind(ImmutableArray<RefKind> refKindsOpt, int index)
2086private void VisitCollectionExpression(ImmutableArray<BoundNode> elements)
3163var sideEffects = node.SideEffects;
3544VisitArguments(node.Arguments, default(ImmutableArray<RefKind>), node.Constructor, default, false);
3583private BoundNode VisitObjectOrCollectionInitializerExpression(ImmutableArray<BoundExpression> initializers)
3595var arguments = node.Arguments;
3628VisitArguments(node.Arguments, default(ImmutableArray<RefKind>), node.AddMethod, node.ArgsToParamsOpt, node.Expanded);
3634VisitArguments(node.Arguments, default(ImmutableArray<RefKind>), node.AddMethod, node.ArgsToParamsOpt, node.Expanded);
3642VisitArguments(node.Arguments, default(ImmutableArray<RefKind>), method: null, default, false);
FlowAnalysis\DataFlowsOutWalker.cs (4)
25private readonly ImmutableArray<ISymbol> _dataFlowsIn;
27private DataFlowsOutWalker(CSharpCompilation compilation, Symbol member, BoundNode node, BoundNode firstInRegion, BoundNode lastInRegion, HashSet<Symbol> unassignedVariables, ImmutableArray<ISymbol> dataFlowsIn)
33internal static HashSet<Symbol> Analyze(CSharpCompilation compilation, Symbol member, BoundNode node, BoundNode firstInRegion, BoundNode lastInRegion, HashSet<Symbol> unassignedVariables, ImmutableArray<ISymbol> dataFlowsIn)
67protected override ImmutableArray<PendingBranch> Scan(ref bool badRegion)
FlowAnalysis\FlowAnalysisPass.cs (8)
48ImmutableArray<FieldSymbol> implicitlyInitializedFields = default;
69else if (Analyze(compilation, method, block, diagnostics.DiagnosticBag, out var needsImplicitReturn, out var unusedImplicitlyInitializedFields))
85var newStatements = block.Statements.Add(new BoundReturnStatement(trailingExpression.Syntax, RefKind.None, trailingExpression, @checked: false));
86block = new BoundBlock(block.Syntax, ImmutableArray<LocalSymbol>.Empty, newStatements) { WasCompilerGenerated = true };
110private static BoundBlock PrependImplicitInitializations(BoundBlock body, MethodSymbol method, ImmutableArray<FieldSymbol> implicitlyInitializedFields, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics)
169var statements = body.Statements;
176return body.Update(body.Locals, ImmutableArray<MethodSymbol>.Empty, body.HasUnsafeModifier, body.Instrumentation, builder.ToImmutableAndFree());
213out ImmutableArray<FieldSymbol> implicitlyInitializedFieldsOpt)
FlowAnalysis\NullableWalker.cs (170)
275private static readonly ImmutableArray<BoundKind> s_skippedExpressions = ImmutableArray.Create(BoundKind.ArrayInitialization,
587protected override ImmutableArray<PendingBranch> Scan(ref bool badRegion)
614ImmutableArray<PendingBranch> pendingReturns = base.Scan(ref badRegion);
670: ImmutableArray<string>.Empty;
695checkMemberStateOnConstructorExit(method, member, state, thisSlot, exitLocation, membersWithStateEnforcedByRequiredMembers: ImmutableArray<string>.Empty, forcePropertyAnalysis: true);
717void checkMemberStateOnConstructorExit(MethodSymbol constructor, Symbol member, LocalState state, int thisSlot, Location? exitLocation, ImmutableArray<string> membersWithStateEnforcedByRequiredMembers, bool forcePropertyAnalysis)
803var info = new CSDiagnosticInfo(errorCode, new object[] { symbol.Kind.Localize(), symbol.Name }, ImmutableArray<Symbol>.Empty, additionalLocations: symbol.Locations);
875ImmutableArray<Symbol> getMembersNeedingDefaultInitialState()
879return ImmutableArray<Symbol>.Empty;
919static ImmutableArray<Symbol> membersToBeInitialized(NamedTypeSymbol containingType, bool includeAllMembers, bool includeCurrentTypeRequiredMembers, bool includeBaseRequiredMembers)
924=> ImmutableArray<Symbol>.Empty,
957static ImmutableArray<Symbol> getAllTypeAndRequiredMembers(TypeSymbol containingType)
959var members = containingType.GetMembersUnordered();
1104void enforceMemberNotNullWhenIfAffected(SyntaxNode? syntaxOpt, bool sense, ImmutableArray<Symbol> members, LocalState state, LocalState otherState)
1120var notNullMembers = sense ? method.NotNullWhenTrueMembers : method.NotNullWhenFalseMembers;
1166private void MakeMembersMaybeNull(MethodSymbol method, ImmutableArray<string> members)
1236ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
1284ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
1318private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense, LocalState stateWhen)
1378private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt, LocalState state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam)
1886ImmutableArray<PendingBranch> returns = walker.Analyze(ref badRegion, initialState);
2271private void VisitAndUnsplitAll<T>(ImmutableArray<T> nodes) where T : BoundNode
2959var methodParameters = methodSymbol.Parameters;
2960var signatureParameters = (_useDelegateInvokeParameterTypes ? _delegateInvokeMethod! : methodSymbol).Parameters;
3100ImmutableArray<ParameterSymbol> parameters = method.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true);
3453ImmutableArray<PendingBranch> pendingReturns = RemoveReturns();
3614private void DeclareLocals(ImmutableArray<LocalSymbol> locals)
4016var arguments = node.Arguments;
4018(_, ImmutableArray<VisitResult> argumentResults, _, ArgumentsCompletionDelegate? argumentsCompletion) =
4043ImmutableArray<VisitResult> argumentResults,
4072ImmutableArray<VisitResult> argumentResults,
4112ImmutableArray<BoundExpression> arguments, ImmutableArray<VisitResult> argumentResults,
4183ImmutableArray<BoundExpression> arguments,
4184ImmutableArray<VisitResult> argumentResults,
4275ImmutableArray<VisitResult> argumentResults = default;
4311ImmutableArray<VisitResult> argumentResults,
4333ImmutableArray<VisitResult> argumentResults,
4464ImmutableArray<VisitResult> argumentResults = default;
4499ImmutableArray<VisitResult> argumentResults,
4524ImmutableArray<VisitResult> argumentResults,
4537static MethodSymbol addMethodAsMemberOfContainingType(BoundCollectionElementInitializer node, TypeSymbol containingType, ref ImmutableArray<VisitResult> argumentResults)
4604var members = ((NamedTypeSymbol)type).GetMembersUnordered();
4652var arguments = node.Arguments;
4774var placeholders = placeholderBuilder.ToImmutableAndFree();
4894var placeholders = placeholdersBuilder.ToImmutableAndFree();
5266var parameters = method.Parameters;
5674static ImmutableArray<NamedTypeSymbol> inheritedInterfaces(TypeSymbol type) => type switch
5678_ => ImmutableArray<NamedTypeSymbol>.Empty,
6457ImmutableArray<RefKind> refKindsOpt = GetArgumentRefKinds(node.ArgumentRefKindsOpt, adjustForNewExtension, method, node.Arguments.Length);
6465ImmutableArray<BoundExpression> arguments = getArguments(node.Arguments, adjustForNewExtension, node.ReceiverOpt);
6466ImmutableArray<ParameterSymbol> parameters = getParameters(method.Parameters, adjustForNewExtension, method);
6467ImmutableArray<int> argsToParamsOpt = GetArgsToParamsOpt(node.ArgsToParamsOpt, adjustForNewExtension);
6469ImmutableArray<VisitResult> results;
6489static ImmutableArray<BoundExpression> getArguments(ImmutableArray<BoundExpression> arguments, bool isNewExtension, BoundExpression? receiver)
6500static ImmutableArray<ParameterSymbol> getParameters(ImmutableArray<ParameterSymbol> parameters, bool isNewExtension, MethodSymbol method)
6514private static ImmutableArray<RefKind> GetArgumentRefKinds(ImmutableArray<RefKind> argumentRefKindsOpt, bool isNewExtension,
6549private static ImmutableArray<int> GetArgsToParamsOpt(ImmutableArray<int> argsToParamsOpt, bool isNewExtension)
6571private void LearnFromEqualsMethod(MethodSymbol method, BoundCall node, TypeWithState receiverType, ImmutableArray<VisitResult> results)
6575var arguments = node.Arguments;
6749public readonly ImmutableArray<BoundExpression> Arguments;
6750public readonly ImmutableArray<VisitResult> Results;
6751public readonly ImmutableArray<int> ArgsToParamsOpt;
6753public CompareExchangeInfo(ImmutableArray<BoundExpression> arguments, ImmutableArray<VisitResult> results, ImmutableArray<int> argsToParamsOpt)
6786var argsToParamsOpt = compareExchangeInfo.ArgsToParamsOpt;
6979protected override void VisitArguments(ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> refKindsOpt, MethodSymbol method, ImmutableArray<int> argsToParamsOpt, bool expanded)
6985private (MethodSymbol? method, ImmutableArray<VisitResult> results, bool returnNotNull) VisitArguments(
6987ImmutableArray<BoundExpression> arguments,
6988ImmutableArray<RefKind> refKindsOpt,
6990ImmutableArray<int> argsToParamsOpt,
6998private ImmutableArray<VisitResult> VisitArguments(
7000ImmutableArray<BoundExpression> arguments,
7001ImmutableArray<RefKind> refKindsOpt,
7003ImmutableArray<int> argsToParamsOpt,
7013private (MethodSymbol? method, ImmutableArray<VisitResult> results, bool returnNotNull) VisitArguments(
7015ImmutableArray<BoundExpression> arguments,
7016ImmutableArray<RefKind> refKindsOpt,
7017ImmutableArray<ParameterSymbol> parametersOpt,
7018ImmutableArray<int> argsToParamsOpt,
7031private delegate (MethodSymbol? method, bool returnNotNull) ArgumentsCompletionDelegate(ImmutableArray<VisitResult> argumentResults, ImmutableArray<ParameterSymbol> parametersOpt, MethodSymbol? method);
7033private (MethodSymbol? method, ImmutableArray<VisitResult> results, bool returnNotNull, ArgumentsCompletionDelegate? completion)
7036ImmutableArray<BoundExpression> arguments,
7037ImmutableArray<RefKind> refKindsOpt,
7038ImmutableArray<ParameterSymbol> parametersOpt,
7039ImmutableArray<int> argsToParamsOpt,
7061(ImmutableArray<BoundExpression> argumentsNoConversions, ImmutableArray<Conversion> conversions) = RemoveArgumentConversions(arguments, refKindsOpt);
7064ImmutableArray<VisitResult> results = VisitArgumentsEvaluate(argumentsNoConversions, refKindsOpt, GetParametersAnnotations(arguments, parametersOpt, argsToParamsOpt, expanded), defaultArguments, firstArgumentResult: firstArgumentResult);
7071(MethodSymbol? method, ImmutableArray<VisitResult> results, bool returnNotNull, ArgumentsCompletionDelegate? completion)
7074ImmutableArray<BoundExpression> arguments,
7075ImmutableArray<BoundExpression> argumentsNoConversions,
7076ImmutableArray<Conversion> conversions,
7077ImmutableArray<VisitResult> results,
7078ImmutableArray<RefKind> refKindsOpt,
7079ImmutableArray<ParameterSymbol> parametersOpt,
7080ImmutableArray<int> argsToParamsOpt,
7250ImmutableArray<BoundExpression> arguments,
7251ImmutableArray<BoundExpression> argumentsNoConversions,
7252ImmutableArray<Conversion> conversions,
7253ImmutableArray<RefKind> refKindsOpt,
7254ImmutableArray<int> argsToParamsOpt,
7259return (ImmutableArray<VisitResult> results, ImmutableArray<ParameterSymbol> parametersOpt, MethodSymbol? method) =>
7271static void expandParamsCollection(ref ImmutableArray<BoundExpression> arguments, ref ImmutableArray<RefKind> refKindsOpt, ImmutableArray<ParameterSymbol> parametersOpt, ref ImmutableArray<int> argsToParamsOpt, ref BitVector defaultArguments)
7285ImmutableArray<BoundExpression> elements;
7432var notNullMembers = method.NotNullMembers;
7433var notNullWhenTrueMembers = method.NotNullWhenTrueMembers;
7434var notNullWhenFalseMembers = method.NotNullWhenFalseMembers;
7458void applyMemberPostConditions(int receiverSlot, TypeSymbol type, ImmutableArray<string> members, ref LocalState state)
7504private ImmutableArray<VisitResult> VisitArgumentsEvaluate(
7505ImmutableArray<BoundExpression> arguments,
7506ImmutableArray<RefKind> refKindsOpt,
7507ImmutableArray<FlowAnalysisAnnotations> parameterAnnotationsOpt,
7515return ImmutableArray<VisitResult>.Empty;
7539private ImmutableArray<FlowAnalysisAnnotations> GetParametersAnnotations(ImmutableArray<BoundExpression> arguments, ImmutableArray<ParameterSymbol> parametersOpt, ImmutableArray<int> argsToParamsOpt, bool expanded)
7541ImmutableArray<FlowAnalysisAnnotations> parameterAnnotationsOpt = default;
8022private (ImmutableArray<BoundExpression> arguments, ImmutableArray<Conversion> conversions) RemoveArgumentConversions(
8023ImmutableArray<BoundExpression> arguments,
8024ImmutableArray<RefKind> refKindsOpt)
8027var conversions = default(ImmutableArray<Conversion>);
8071ImmutableArray<ParameterSymbol> parametersOpt,
8072ImmutableArray<int> argsToParamsOpt,
8105ImmutableArray<BoundExpression> arguments,
8106ImmutableArray<RefKind> argumentRefKindsOpt,
8107ImmutableArray<int> argsToParamsOpt,
8135parameterTypes: out ImmutableArray<TypeWithAnnotations> parameterTypes,
8136parameterRefKinds: out ImmutableArray<RefKind> parameterRefKinds);
8140var typeParameters = definition.GetTypeParametersIncludingExtension();
8218private ImmutableArray<BoundExpression> GetArgumentsForMethodTypeInference(ImmutableArray<VisitResult> argumentResults, ImmutableArray<BoundExpression> arguments)
8715var arguments = node.Arguments;
8716ImmutableArray<TypeWithState> elementTypes = arguments.SelectAsArray((a, w) => w.VisitRvalueWithState(a), this);
8717ImmutableArray<TypeWithAnnotations> elementTypesWithAnnotations = elementTypes.SelectAsArray(a => a.ToTypeWithAnnotations(compilation));
8758ImmutableArray<BoundExpression> values,
8759ImmutableArray<TypeWithState> types,
8760ImmutableArray<int> argsToParamsOpt,
8769var tupleElements = tupleType.TupleElements;
8838var conversions = conversion.UnderlyingConversions;
8839var targetElements = ((NamedTypeSymbol)targetType).TupleElements;
8840var valueElements = valueTuple.TupleElements;
9156static (MethodSymbol invokeSignature, ImmutableArray<ParameterSymbol>) getDelegateOrFunctionPointerInfo(TypeSymbol targetType)
9161_ => (null, ImmutableArray<ParameterSymbol>.Empty),
10101private MethodSymbol CheckMethodGroupReceiverNullability(BoundMethodGroup group, ImmutableArray<ParameterSymbol> parameters, MethodSymbol method, bool invokedAsExtensionMethod)
10508var argumentRefKinds = GetArgumentRefKinds(invocation.ArgumentRefKindsOpt, isNewExtension, deconstructMethod, argumentCount: n);
10509var argsToParams = GetArgsToParamsOpt(invocation.ArgsToParamsOpt, isNewExtension);
10519var parameters = deconstructMethod.Parameters;
10568private void VisitTupleDeconstructionArguments(ArrayBuilder<DeconstructionVariable> variables, ImmutableArray<(BoundValuePlaceholder? placeholder, BoundExpression? conversion)> deconstructConversionInfo, BoundExpression right, TypeWithState? rightResultOpt)
10571var rightParts = GetDeconstructionRightParts(right, rightResultOpt);
10675var arguments = tuple.Arguments;
10701private ImmutableArray<BoundExpression> GetDeconstructionRightParts(BoundExpression expr, TypeWithState? rightResultOpt)
10730var fields = tupleType.TupleElements;
12394VisitArguments(node, node.ConstructorArguments, ImmutableArray<RefKind>.Empty, node.Constructor, argsToParamsOpt: node.ConstructorArgumentsToParamsOpt, defaultArguments: node.ConstructorDefaultArguments,
Generated\BoundNodes.xml.Generated.cs (517)
292protected BoundEqualsValue(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false)
303public ImmutableArray<LocalSymbol> Locals { get; }
309public BoundFieldEqualsValue(SyntaxNode syntax, FieldSymbol field, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false)
325public BoundFieldEqualsValue Update(FieldSymbol field, ImmutableArray<LocalSymbol> locals, BoundExpression value)
339public BoundPropertyEqualsValue(SyntaxNode syntax, PropertySymbol property, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false)
355public BoundPropertyEqualsValue Update(PropertySymbol property, ImmutableArray<LocalSymbol> locals, BoundExpression value)
369public BoundParameterEqualsValue(SyntaxNode syntax, ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value, bool hasErrors = false)
385public BoundParameterEqualsValue Update(ParameterSymbol parameter, ImmutableArray<LocalSymbol> locals, BoundExpression value)
980public BoundBadExpression(SyntaxNode syntax, LookupResultKind resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol? type, bool hasErrors = false)
993public ImmutableArray<Symbol?> Symbols { get; }
994public ImmutableArray<BoundExpression> ChildBoundNodes { get; }
999public BoundBadExpression Update(LookupResultKind resultKind, ImmutableArray<Symbol?> symbols, ImmutableArray<BoundExpression> childBoundNodes, TypeSymbol? type)
1013public BoundBadStatement(SyntaxNode syntax, ImmutableArray<BoundNode> childBoundNodes, bool hasErrors = false)
1022public ImmutableArray<BoundNode> ChildBoundNodes { get; }
1027public BoundBadStatement Update(ImmutableArray<BoundNode> childBoundNodes)
1069public BoundTypeExpression(SyntaxNode syntax, AliasSymbol? aliasOpt, BoundTypeExpression? boundContainingTypeOpt, ImmutableArray<BoundExpression> boundDimensionsOpt, TypeWithAnnotations typeWithAnnotations, TypeSymbol type, bool hasErrors = false)
1083public ImmutableArray<BoundExpression> BoundDimensionsOpt { get; }
1090public BoundTypeExpression Update(AliasSymbol? aliasOpt, BoundTypeExpression? boundContainingTypeOpt, ImmutableArray<BoundExpression> boundDimensionsOpt, TypeWithAnnotations typeWithAnnotations, TypeSymbol type)
1183public BoundUnaryOperator(SyntaxNode syntax, UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false)
1206public ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt { get; }
1211public BoundUnaryOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, ConstantValue? constantValueOpt, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
1225public BoundIncrementOperator(SyntaxNode syntax, UnaryOperatorKind operatorKind, BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, BoundValuePlaceholder? operandPlaceholder, BoundExpression? operandConversion, BoundValuePlaceholder? resultPlaceholder, BoundExpression? resultConversion, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false)
1254public ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt { get; }
1259public BoundIncrementOperator Update(UnaryOperatorKind operatorKind, BoundExpression operand, MethodSymbol? methodOpt, TypeSymbol? constrainedToTypeOpt, BoundValuePlaceholder? operandPlaceholder, BoundExpression? operandConversion, BoundValuePlaceholder? resultPlaceholder, BoundExpression? resultConversion, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
1446public BoundFunctionPointerInvocation(SyntaxNode syntax, BoundExpression invokedExpression, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt, LookupResultKind resultKind, TypeSymbol type, bool hasErrors = false)
1462public ImmutableArray<BoundExpression> Arguments { get; }
1463public ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
1469public BoundFunctionPointerInvocation Update(BoundExpression invokedExpression, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt, LookupResultKind resultKind, TypeSymbol type)
1733public BoundUserDefinedConditionalLogicalOperator(SyntaxNode syntax, BinaryOperatorKind operatorKind, MethodSymbol logicalOperator, MethodSymbol trueOperator, MethodSymbol falseOperator, TypeSymbol? constrainedToTypeOpt, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, BoundExpression left, BoundExpression right, TypeSymbol type, bool hasErrors = false)
1759public ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt { get; }
1764public BoundUserDefinedConditionalLogicalOperator Update(BinaryOperatorKind operatorKind, MethodSymbol logicalOperator, MethodSymbol trueOperator, MethodSymbol falseOperator, TypeSymbol? constrainedToTypeOpt, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, BoundExpression left, BoundExpression right, TypeSymbol type)
1778public BoundCompoundAssignmentOperator(SyntaxNode syntax, BinaryOperatorSignature @operator, BoundExpression left, BoundExpression right, BoundValuePlaceholder? leftPlaceholder, BoundExpression? leftConversion, BoundValuePlaceholder? finalPlaceholder, BoundExpression? finalConversion, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type, bool hasErrors = false)
1806public ImmutableArray<MethodSymbol> OriginalUserDefinedOperatorsOpt { get; }
1811public BoundCompoundAssignmentOperator Update(BinaryOperatorSignature @operator, BoundExpression left, BoundExpression right, BoundValuePlaceholder? leftPlaceholder, BoundExpression? leftConversion, BoundValuePlaceholder? finalPlaceholder, BoundExpression? finalConversion, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt, TypeSymbol type)
2049public BoundArrayAccess(SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundExpression> indices, TypeSymbol type, bool hasErrors = false)
2063public ImmutableArray<BoundExpression> Indices { get; }
2068public BoundArrayAccess Update(BoundExpression expression, ImmutableArray<BoundExpression> indices, TypeSymbol type)
3062public BoundArgListOperator(SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt, TypeSymbol? type, bool hasErrors = false)
3073public ImmutableArray<BoundExpression> Arguments { get; }
3074public ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
3079public BoundArgListOperator Update(ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt, TypeSymbol? type)
3303public BoundBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<MethodSymbol> localFunctions, bool hasUnsafeModifier, BoundBlockInstrumentation? instrumentation, ImmutableArray<BoundStatement> statements, bool hasErrors = false)
3317public ImmutableArray<LocalSymbol> Locals { get; }
3318public ImmutableArray<MethodSymbol> LocalFunctions { get; }
3325public BoundBlock Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<MethodSymbol> localFunctions, bool hasUnsafeModifier, BoundBlockInstrumentation? instrumentation, ImmutableArray<BoundStatement> statements)
3339public BoundScope(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements, bool hasErrors = false)
3349public ImmutableArray<LocalSymbol> Locals { get; }
3354public BoundScope Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements)
3368public BoundStateMachineScope(SyntaxNode syntax, ImmutableArray<StateMachineFieldSymbol> fields, BoundStatement statement, bool hasErrors = false)
3379public ImmutableArray<StateMachineFieldSymbol> Fields { get; }
3385public BoundStateMachineScope Update(ImmutableArray<StateMachineFieldSymbol> fields, BoundStatement statement)
3399public BoundLocalDeclaration(SyntaxNode syntax, LocalSymbol localSymbol, BoundTypeExpression? declaredTypeOpt, BoundExpression? initializerOpt, ImmutableArray<BoundExpression> argumentsOpt, bool inferredType, bool hasErrors = false)
3415public ImmutableArray<BoundExpression> ArgumentsOpt { get; }
3421public BoundLocalDeclaration Update(LocalSymbol localSymbol, BoundTypeExpression? declaredTypeOpt, BoundExpression? initializerOpt, ImmutableArray<BoundExpression> argumentsOpt, bool inferredType)
3435protected BoundMultipleLocalDeclarationsBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundLocalDeclaration> localDeclarations, bool hasErrors = false)
3444public ImmutableArray<BoundLocalDeclaration> LocalDeclarations { get; }
3449public BoundMultipleLocalDeclarations(SyntaxNode syntax, ImmutableArray<BoundLocalDeclaration> localDeclarations, bool hasErrors = false)
3461public BoundMultipleLocalDeclarations Update(ImmutableArray<BoundLocalDeclaration> localDeclarations)
3475public BoundUsingLocalDeclarations(SyntaxNode syntax, MethodArgumentInfo? patternDisposeInfoOpt, BoundAwaitableInfo? awaitOpt, ImmutableArray<BoundLocalDeclaration> localDeclarations, bool hasErrors = false)
3491public BoundUsingLocalDeclarations Update(MethodArgumentInfo? patternDisposeInfoOpt, BoundAwaitableInfo? awaitOpt, ImmutableArray<BoundLocalDeclaration> localDeclarations)
3769public BoundSwitchStatement(SyntaxNode syntax, BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel, bool hasErrors = false)
3790public ImmutableArray<LocalSymbol> InnerLocals { get; }
3791public ImmutableArray<MethodSymbol> InnerLocalFunctions { get; }
3792public ImmutableArray<BoundSwitchSection> SwitchSections { get; }
3800public BoundSwitchStatement Update(BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel)
3814public BoundSwitchDispatch(SyntaxNode syntax, BoundExpression expression, ImmutableArray<(ConstantValue value, LabelSymbol label)> cases, LabelSymbol defaultLabel, LengthBasedStringSwitchData? lengthBasedStringSwitchDataOpt, bool hasErrors = false)
3829public ImmutableArray<(ConstantValue value, LabelSymbol label)> Cases { get; }
3836public BoundSwitchDispatch Update(BoundExpression expression, ImmutableArray<(ConstantValue value, LabelSymbol label)> cases, LabelSymbol defaultLabel, LengthBasedStringSwitchData? lengthBasedStringSwitchDataOpt)
3911protected BoundConditionalLoopStatement(BoundKind kind, SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false)
3926public ImmutableArray<LocalSymbol> Locals { get; }
3933public BoundDoStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false)
3949public BoundDoStatement Update(ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel)
3963public BoundWhileStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false)
3979public BoundWhileStatement Update(ImmutableArray<LocalSymbol> locals, BoundExpression condition, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel)
3993public BoundForStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> outerLocals, BoundStatement? initializer, ImmutableArray<LocalSymbol> innerLocals, BoundExpression? condition, BoundStatement? increment, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false)
4011public ImmutableArray<LocalSymbol> OuterLocals { get; }
4013public ImmutableArray<LocalSymbol> InnerLocals { get; }
4021public BoundForStatement Update(ImmutableArray<LocalSymbol> outerLocals, BoundStatement? initializer, ImmutableArray<LocalSymbol> innerLocals, BoundExpression? condition, BoundStatement? increment, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel)
4035public BoundForEachStatement(SyntaxNode syntax, ForEachEnumeratorInfo? enumeratorInfoOpt, BoundValuePlaceholder? elementPlaceholder, BoundExpression? elementConversion, BoundTypeExpression iterationVariableType, ImmutableArray<LocalSymbol> iterationVariables, BoundExpression? iterationErrorExpressionOpt, BoundExpression expression, BoundForEachDeconstructStep? deconstructionOpt, BoundAwaitableInfo? awaitOpt, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel, bool hasErrors = false)
4062public ImmutableArray<LocalSymbol> IterationVariables { get; }
4072public BoundForEachStatement Update(ForEachEnumeratorInfo? enumeratorInfoOpt, BoundValuePlaceholder? elementPlaceholder, BoundExpression? elementConversion, BoundTypeExpression iterationVariableType, ImmutableArray<LocalSymbol> iterationVariables, BoundExpression? iterationErrorExpressionOpt, BoundExpression expression, BoundForEachDeconstructStep? deconstructionOpt, BoundAwaitableInfo? awaitOpt, BoundStatement body, LabelSymbol breakLabel, LabelSymbol continueLabel)
4117public BoundUsingStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations? declarationsOpt, BoundExpression? expressionOpt, BoundStatement body, BoundAwaitableInfo? awaitOpt, MethodArgumentInfo? patternDisposeInfoOpt, bool hasErrors = false)
4132public ImmutableArray<LocalSymbol> Locals { get; }
4142public BoundUsingStatement Update(ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations? declarationsOpt, BoundExpression? expressionOpt, BoundStatement body, BoundAwaitableInfo? awaitOpt, MethodArgumentInfo? patternDisposeInfoOpt)
4156public BoundFixedStatement(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations declarations, BoundStatement body, bool hasErrors = false)
4169public ImmutableArray<LocalSymbol> Locals { get; }
4176public BoundFixedStatement Update(ImmutableArray<LocalSymbol> locals, BoundMultipleLocalDeclarations declarations, BoundStatement body)
4221public BoundTryStatement(SyntaxNode syntax, BoundBlock tryBlock, ImmutableArray<BoundCatchBlock> catchBlocks, BoundBlock? finallyBlockOpt, LabelSymbol? finallyLabelOpt, bool preferFaultHandler, bool hasErrors = false)
4236public ImmutableArray<BoundCatchBlock> CatchBlocks { get; }
4244public BoundTryStatement Update(BoundBlock tryBlock, ImmutableArray<BoundCatchBlock> catchBlocks, BoundBlock? finallyBlockOpt, LabelSymbol? finallyLabelOpt, bool preferFaultHandler)
4258public BoundCatchBlock(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundExpression? exceptionSourceOpt, TypeSymbol? exceptionTypeOpt, BoundStatementList? exceptionFilterPrologueOpt, BoundExpression? exceptionFilterOpt, BoundBlock body, bool isSynthesizedAsyncCatchAll, bool hasErrors = false)
4274public ImmutableArray<LocalSymbol> Locals { get; }
4285public BoundCatchBlock Update(ImmutableArray<LocalSymbol> locals, BoundExpression? exceptionSourceOpt, TypeSymbol? exceptionTypeOpt, BoundStatementList? exceptionFilterPrologueOpt, BoundExpression? exceptionFilterOpt, BoundBlock body, bool isSynthesizedAsyncCatchAll)
4808protected BoundStatementList(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundStatement> statements, bool hasErrors = false)
4817public BoundStatementList(SyntaxNode syntax, ImmutableArray<BoundStatement> statements, bool hasErrors = false)
4826public ImmutableArray<BoundStatement> Statements { get; }
4831public BoundStatementList Update(ImmutableArray<BoundStatement> statements)
4878protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false)
4894public ImmutableArray<BoundSwitchExpressionArm> SwitchArms { get; }
4902public BoundSwitchExpressionArm(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundPattern pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label, bool hasErrors = false)
4918public ImmutableArray<LocalSymbol> Locals { get; }
4927public BoundSwitchExpressionArm Update(ImmutableArray<LocalSymbol> locals, BoundPattern pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label)
4941public BoundUnconvertedSwitchExpression(SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false)
4955public BoundUnconvertedSwitchExpression Update(BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type)
4969public BoundConvertedSwitchExpression(SyntaxNode syntax, TypeSymbol? naturalTypeOpt, bool wasTargetTyped, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol type, bool hasErrors = false)
4989public BoundConvertedSwitchExpression Update(TypeSymbol? naturalTypeOpt, bool wasTargetTyped, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol type)
5110public BoundWhenDecisionDagNode(SyntaxNode syntax, ImmutableArray<BoundPatternBinding> bindings, BoundExpression? whenExpression, BoundDecisionDagNode whenTrue, BoundDecisionDagNode? whenFalse, bool hasErrors = false)
5123public ImmutableArray<BoundPatternBinding> Bindings { get; }
5131public BoundWhenDecisionDagNode Update(ImmutableArray<BoundPatternBinding> bindings, BoundExpression? whenExpression, BoundDecisionDagNode whenTrue, BoundDecisionDagNode? whenFalse)
5657public BoundSwitchSection(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundSwitchLabel> switchLabels, ImmutableArray<BoundStatement> statements, bool hasErrors = false)
5669public ImmutableArray<LocalSymbol> Locals { get; }
5670public ImmutableArray<BoundSwitchLabel> SwitchLabels { get; }
5675public BoundSwitchSection Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundSwitchLabel> switchLabels, ImmutableArray<BoundStatement> statements)
5764public BoundSequence(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundExpression> sideEffects, BoundExpression value, TypeSymbol type, bool hasErrors = false)
5779public ImmutableArray<LocalSymbol> Locals { get; }
5780public ImmutableArray<BoundExpression> SideEffects { get; }
5786public BoundSequence Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundExpression> sideEffects, BoundExpression value, TypeSymbol type)
5800public BoundSpillSequence(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> sideEffects, BoundExpression value, TypeSymbol type, bool hasErrors = false)
5815public ImmutableArray<LocalSymbol> Locals { get; }
5816public ImmutableArray<BoundStatement> SideEffects { get; }
5822public BoundSpillSequence Update(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> sideEffects, BoundExpression value, TypeSymbol type)
5836public BoundDynamicMemberAccess(SyntaxNode syntax, BoundExpression receiver, ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, bool invoked, bool indexed, TypeSymbol type, bool hasErrors = false)
5853public ImmutableArray<TypeWithAnnotations> TypeArgumentsOpt { get; }
5861public BoundDynamicMemberAccess Update(BoundExpression receiver, ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, bool invoked, bool indexed, TypeSymbol type)
5875protected BoundDynamicInvocableBase(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol? type, bool hasErrors = false)
5887public ImmutableArray<BoundExpression> Arguments { get; }
5892public BoundDynamicInvocation(SyntaxNode syntax, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<MethodSymbol> applicableMethods, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol type, bool hasErrors = false)
5907public ImmutableArray<string?> ArgumentNamesOpt { get; }
5908public ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
5909public ImmutableArray<MethodSymbol> ApplicableMethods { get; }
5914public BoundDynamicInvocation Update(ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<MethodSymbol> applicableMethods, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol type)
6073public BoundMethodGroup(SyntaxNode syntax, ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false)
6089public ImmutableArray<TypeWithAnnotations> TypeArgumentsOpt { get; }
6091public ImmutableArray<MethodSymbol> Methods { get; }
6100public BoundMethodGroup Update(ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt, LookupResultKind resultKind)
6114public BoundPropertyGroup(SyntaxNode syntax, ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt, LookupResultKind resultKind, bool hasErrors = false)
6123public ImmutableArray<PropertySymbol> Properties { get; }
6128public BoundPropertyGroup Update(ImmutableArray<PropertySymbol> properties, BoundExpression? receiverOpt, LookupResultKind resultKind)
6142public BoundCall(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool isDelegateCall, bool expanded, bool invokedAsExtensionMethod, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalMethodsOpt, TypeSymbol type, bool hasErrors = false)
6169public ImmutableArray<BoundExpression> Arguments { get; }
6170public ImmutableArray<string?> ArgumentNamesOpt { get; }
6171public ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
6175public ImmutableArray<int> ArgsToParamsOpt { get; }
6178public ImmutableArray<MethodSymbol> OriginalMethodsOpt { get; }
6183public BoundCall Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool isDelegateCall, bool expanded, bool invokedAsExtensionMethod, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalMethodsOpt, TypeSymbol type)
6236public BoundAttribute(SyntaxNode syntax, MethodSymbol? constructor, ImmutableArray<BoundExpression> constructorArguments, ImmutableArray<string?> constructorArgumentNamesOpt, ImmutableArray<int> constructorArgumentsToParamsOpt, bool constructorExpanded, BitVector constructorDefaultArguments, ImmutableArray<BoundAssignmentOperator> namedArguments, LookupResultKind resultKind, TypeSymbol type, bool hasErrors = false)
6256public ImmutableArray<BoundExpression> ConstructorArguments { get; }
6257public ImmutableArray<string?> ConstructorArgumentNamesOpt { get; }
6258public ImmutableArray<int> ConstructorArgumentsToParamsOpt { get; }
6261public ImmutableArray<BoundAssignmentOperator> NamedArguments { get; }
6267public BoundAttribute Update(MethodSymbol? constructor, ImmutableArray<BoundExpression> constructorArguments, ImmutableArray<string?> constructorArgumentNamesOpt, ImmutableArray<int> constructorArgumentsToParamsOpt, bool constructorExpanded, BitVector constructorDefaultArguments, ImmutableArray<BoundAssignmentOperator> namedArguments, LookupResultKind resultKind, TypeSymbol type)
6281public BoundUnconvertedObjectCreationExpression(SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<(string Name, Location Location)?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, InitializerExpressionSyntax? initializerOpt, Binder binder, bool hasErrors = false)
6296public ImmutableArray<BoundExpression> Arguments { get; }
6297public ImmutableArray<(string Name, Location Location)?> ArgumentNamesOpt { get; }
6298public ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
6305public BoundUnconvertedObjectCreationExpression Update(ImmutableArray<BoundExpression> arguments, ImmutableArray<(string Name, Location Location)?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, InitializerExpressionSyntax? initializerOpt, Binder binder)
6340public BoundObjectCreationExpression(SyntaxNode syntax, MethodSymbol constructor, ImmutableArray<MethodSymbol> constructorsGroup, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ConstantValue? constantValueOpt, BoundObjectInitializerExpressionBase? initializerExpressionOpt, bool wasTargetTyped, TypeSymbol type, bool hasErrors = false)
6363public ImmutableArray<MethodSymbol> ConstructorsGroup { get; }
6364public override ImmutableArray<BoundExpression> Arguments { get; }
6365public override ImmutableArray<string?> ArgumentNamesOpt { get; }
6366public override ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
6368public override ImmutableArray<int> ArgsToParamsOpt { get; }
6377public BoundObjectCreationExpression Update(MethodSymbol constructor, ImmutableArray<MethodSymbol> constructorsGroup, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ConstantValue? constantValueOpt, BoundObjectInitializerExpressionBase? initializerExpressionOpt, bool wasTargetTyped, TypeSymbol type)
6391protected BoundCollectionExpressionBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundNode> elements, TypeSymbol? type, bool hasErrors = false)
6400public ImmutableArray<BoundNode> Elements { get; }
6405public BoundUnconvertedCollectionExpression(SyntaxNode syntax, ImmutableArray<BoundNode> elements, bool hasErrors = false)
6418public BoundUnconvertedCollectionExpression Update(ImmutableArray<BoundNode> elements)
6432public BoundCollectionExpression(SyntaxNode syntax, CollectionExpressionTypeKind collectionTypeKind, BoundObjectOrCollectionValuePlaceholder? placeholder, BoundExpression? collectionCreation, MethodSymbol? collectionBuilderMethod, BoundValuePlaceholder? collectionBuilderInvocationPlaceholder, BoundExpression? collectionBuilderInvocationConversion, bool wasTargetTyped, BoundUnconvertedCollectionExpression unconvertedCollectionExpression, ImmutableArray<BoundNode> elements, TypeSymbol type, bool hasErrors = false)
6463public BoundCollectionExpression Update(CollectionExpressionTypeKind collectionTypeKind, BoundObjectOrCollectionValuePlaceholder? placeholder, BoundExpression? collectionCreation, MethodSymbol? collectionBuilderMethod, BoundValuePlaceholder? collectionBuilderInvocationPlaceholder, BoundExpression? collectionBuilderInvocationConversion, bool wasTargetTyped, BoundUnconvertedCollectionExpression unconvertedCollectionExpression, ImmutableArray<BoundNode> elements, TypeSymbol type)
6545protected BoundTupleExpression(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type, bool hasErrors = false)
6556public ImmutableArray<BoundExpression> Arguments { get; }
6557public ImmutableArray<string?> ArgumentNamesOpt { get; }
6558public ImmutableArray<bool> InferredNamesOpt { get; }
6563public BoundTupleLiteral(SyntaxNode syntax, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type, bool hasErrors = false)
6576public BoundTupleLiteral Update(ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type)
6590public BoundConvertedTupleLiteral(SyntaxNode syntax, BoundTupleLiteral? sourceTuple, bool wasTargetTyped, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type, bool hasErrors = false)
6606public BoundConvertedTupleLiteral Update(BoundTupleLiteral? sourceTuple, bool wasTargetTyped, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<bool> inferredNamesOpt, TypeSymbol? type)
6620public BoundDynamicObjectCreationExpression(SyntaxNode syntax, string name, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, BoundObjectInitializerExpressionBase? initializerExpressionOpt, ImmutableArray<MethodSymbol> applicableMethods, bool wasTargetTyped, TypeSymbol type, bool hasErrors = false)
6639public override ImmutableArray<BoundExpression> Arguments { get; }
6640public override ImmutableArray<string?> ArgumentNamesOpt { get; }
6641public override ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
6643public ImmutableArray<MethodSymbol> ApplicableMethods { get; }
6649public BoundDynamicObjectCreationExpression Update(string name, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, BoundObjectInitializerExpressionBase? initializerExpressionOpt, ImmutableArray<MethodSymbol> applicableMethods, bool wasTargetTyped, TypeSymbol type)
6695protected BoundObjectInitializerExpressionBase(BoundKind kind, SyntaxNode syntax, BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type, bool hasErrors = false)
6709public ImmutableArray<BoundExpression> Initializers { get; }
6714public BoundObjectInitializerExpression(SyntaxNode syntax, BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type, bool hasErrors = false)
6728public BoundObjectInitializerExpression Update(BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type)
6742public BoundObjectInitializerMember(SyntaxNode syntax, Symbol? memberSymbol, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, LookupResultKind resultKind, AccessorKind accessorKind, TypeSymbol receiverType, TypeSymbol type, bool hasErrors = false)
6764public ImmutableArray<BoundExpression> Arguments { get; }
6765public ImmutableArray<string?> ArgumentNamesOpt { get; }
6766public ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
6768public ImmutableArray<int> ArgsToParamsOpt { get; }
6777public BoundObjectInitializerMember Update(Symbol? memberSymbol, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, LookupResultKind resultKind, AccessorKind accessorKind, TypeSymbol receiverType, TypeSymbol type)
6836public BoundCollectionInitializerExpression(SyntaxNode syntax, BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type, bool hasErrors = false)
6850public BoundCollectionInitializerExpression Update(BoundObjectOrCollectionValuePlaceholder placeholder, ImmutableArray<BoundExpression> initializers, TypeSymbol type)
6864public BoundCollectionElementInitializer(SyntaxNode syntax, MethodSymbol addMethod, ImmutableArray<BoundExpression> arguments, BoundExpression? implicitReceiverOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, bool invokedAsExtensionMethod, LookupResultKind resultKind, TypeSymbol type, bool hasErrors = false)
6884public ImmutableArray<BoundExpression> Arguments { get; }
6887public ImmutableArray<int> ArgsToParamsOpt { get; }
6895public BoundCollectionElementInitializer Update(MethodSymbol addMethod, ImmutableArray<BoundExpression> arguments, BoundExpression? implicitReceiverOpt, bool expanded, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, bool invokedAsExtensionMethod, LookupResultKind resultKind, TypeSymbol type)
6909public BoundDynamicCollectionElementInitializer(SyntaxNode syntax, ImmutableArray<MethodSymbol> applicableMethods, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol type, bool hasErrors = false)
6922public ImmutableArray<MethodSymbol> ApplicableMethods { get; }
6927public BoundDynamicCollectionElementInitializer Update(ImmutableArray<MethodSymbol> applicableMethods, BoundExpression expression, ImmutableArray<BoundExpression> arguments, TypeSymbol type)
6976public BoundAnonymousObjectCreationExpression(SyntaxNode syntax, MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<BoundAnonymousPropertyDeclaration> declarations, TypeSymbol type, bool hasErrors = false)
6992public ImmutableArray<BoundExpression> Arguments { get; }
6993public ImmutableArray<BoundAnonymousPropertyDeclaration> Declarations { get; }
6998public BoundAnonymousObjectCreationExpression Update(MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<BoundAnonymousPropertyDeclaration> declarations, TypeSymbol type)
7118public BoundArrayCreation(SyntaxNode syntax, ImmutableArray<BoundExpression> bounds, BoundArrayInitialization? initializerOpt, TypeSymbol type, bool hasErrors = false)
7130public ImmutableArray<BoundExpression> Bounds { get; }
7136public BoundArrayCreation Update(ImmutableArray<BoundExpression> bounds, BoundArrayInitialization? initializerOpt, TypeSymbol type)
7150public BoundArrayInitialization(SyntaxNode syntax, bool isInferred, ImmutableArray<BoundExpression> initializers, bool hasErrors = false)
7162public ImmutableArray<BoundExpression> Initializers { get; }
7167public BoundArrayInitialization Update(bool isInferred, ImmutableArray<BoundExpression> initializers)
7410public BoundIndexerAccess(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol indexer, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, AccessorKind accessorKind, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ImmutableArray<PropertySymbol> originalIndexersOpt, TypeSymbol type, bool hasErrors = false)
7435public ImmutableArray<BoundExpression> Arguments { get; }
7436public ImmutableArray<string?> ArgumentNamesOpt { get; }
7437public ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
7440public ImmutableArray<int> ArgsToParamsOpt { get; }
7442public ImmutableArray<PropertySymbol> OriginalIndexersOpt { get; }
7447public BoundIndexerAccess Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, PropertySymbol indexer, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool expanded, AccessorKind accessorKind, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, ImmutableArray<PropertySymbol> originalIndexersOpt, TypeSymbol type)
7461public BoundImplicitIndexerAccess(SyntaxNode syntax, BoundExpression receiver, BoundExpression argument, BoundExpression lengthOrCountAccess, BoundImplicitIndexerReceiverPlaceholder receiverPlaceholder, BoundExpression indexerOrSliceAccess, ImmutableArray<BoundImplicitIndexerValuePlaceholder> argumentPlaceholders, TypeSymbol type, bool hasErrors = false)
7491public ImmutableArray<BoundImplicitIndexerValuePlaceholder> ArgumentPlaceholders { get; }
7496public BoundImplicitIndexerAccess Update(BoundExpression receiver, BoundExpression argument, BoundExpression lengthOrCountAccess, BoundImplicitIndexerReceiverPlaceholder receiverPlaceholder, BoundExpression indexerOrSliceAccess, ImmutableArray<BoundImplicitIndexerValuePlaceholder> argumentPlaceholders, TypeSymbol type)
7551public BoundDynamicIndexerAccess(SyntaxNode syntax, BoundExpression receiver, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<PropertySymbol> applicableIndexers, TypeSymbol type, bool hasErrors = false)
7569public ImmutableArray<BoundExpression> Arguments { get; }
7570public ImmutableArray<string?> ArgumentNamesOpt { get; }
7571public ImmutableArray<RefKind> ArgumentRefKindsOpt { get; }
7572public ImmutableArray<PropertySymbol> ApplicableIndexers { get; }
7577public BoundDynamicIndexerAccess Update(BoundExpression receiver, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<PropertySymbol> applicableIndexers, TypeSymbol type)
7716public BoundTypeOrInstanceInitializers(SyntaxNode syntax, ImmutableArray<BoundStatement> statements, bool hasErrors = false)
7728public new BoundTypeOrInstanceInitializers Update(ImmutableArray<BoundStatement> statements)
7775protected BoundInterpolatedStringBase(BoundKind kind, SyntaxNode syntax, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type, bool hasErrors = false)
7785public ImmutableArray<BoundExpression> Parts { get; }
7791public BoundUnconvertedInterpolatedString(SyntaxNode syntax, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type, bool hasErrors = false)
7803public BoundUnconvertedInterpolatedString Update(ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type)
7817public BoundInterpolatedString(SyntaxNode syntax, InterpolatedStringHandlerData? interpolationData, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type, bool hasErrors = false)
7831public BoundInterpolatedString Update(InterpolatedStringHandlerData? interpolationData, ImmutableArray<BoundExpression> parts, ConstantValue? constantValueOpt, TypeSymbol? type)
8146public BoundRecursivePattern(SyntaxNode syntax, BoundTypeExpression? declaredType, MethodSymbol? deconstructMethod, ImmutableArray<BoundPositionalSubpattern> deconstruction, ImmutableArray<BoundPropertySubpattern> properties, bool isExplicitNotNullTest, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false)
8166public ImmutableArray<BoundPositionalSubpattern> Deconstruction { get; }
8167public ImmutableArray<BoundPropertySubpattern> Properties { get; }
8173public BoundRecursivePattern Update(BoundTypeExpression? declaredType, MethodSymbol? deconstructMethod, ImmutableArray<BoundPositionalSubpattern> deconstruction, ImmutableArray<BoundPropertySubpattern> properties, bool isExplicitNotNullTest, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType)
8187public BoundListPattern(SyntaxNode syntax, ImmutableArray<BoundPattern> subpatterns, bool hasSlice, BoundExpression? lengthAccess, BoundExpression? indexerAccess, BoundListPatternReceiverPlaceholder? receiverPlaceholder, BoundListPatternIndexPlaceholder? argumentPlaceholder, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false)
8207public ImmutableArray<BoundPattern> Subpatterns { get; }
8217public BoundListPattern Update(ImmutableArray<BoundPattern> subpatterns, bool hasSlice, BoundExpression? lengthAccess, BoundExpression? indexerAccess, BoundListPatternReceiverPlaceholder? receiverPlaceholder, BoundListPatternIndexPlaceholder? argumentPlaceholder, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType)
8270public BoundITuplePattern(SyntaxNode syntax, MethodSymbol getLengthMethod, MethodSymbol getItemMethod, ImmutableArray<BoundPositionalSubpattern> subpatterns, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false)
8291public ImmutableArray<BoundPositionalSubpattern> Subpatterns { get; }
8296public BoundITuplePattern Update(MethodSymbol getLengthMethod, MethodSymbol getItemMethod, ImmutableArray<BoundPositionalSubpattern> subpatterns, TypeSymbol inputType, TypeSymbol narrowedType)
8765public BoundConstructorMethodBody(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundStatement? initializer, BoundBlock? blockBody, BoundBlock? expressionBody, bool hasErrors = false)
8775public ImmutableArray<LocalSymbol> Locals { get; }
8781public BoundConstructorMethodBody Update(ImmutableArray<LocalSymbol> locals, BoundStatement? initializer, BoundBlock? blockBody, BoundBlock? expressionBody)
10837ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
10844ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
10851ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
10940ImmutableArray<Symbol?> symbols = this.VisitSymbols<Symbol?>(node.Symbols);
10941ImmutableArray<BoundExpression> childBoundNodes = this.VisitList(node.ChildBoundNodes);
10947ImmutableArray<BoundNode> childBoundNodes = this.VisitList(node.ChildBoundNodes);
10959ImmutableArray<BoundExpression> boundDimensionsOpt = this.VisitList(node.BoundDimensionsOpt);
10978ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalUserDefinedOperatorsOpt);
10987ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalUserDefinedOperatorsOpt);
11032ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
11089ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalUserDefinedOperatorsOpt);
11098ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalUserDefinedOperatorsOpt);
11158ImmutableArray<BoundExpression> indices = this.VisitList(node.Indices);
11329ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
11358ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11359ImmutableArray<MethodSymbol> localFunctions = this.VisitDeclaredLocalFunctions(node.LocalFunctions);
11361ImmutableArray<BoundStatement> statements = this.VisitList(node.Statements);
11366ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11367ImmutableArray<BoundStatement> statements = this.VisitList(node.Statements);
11372ImmutableArray<StateMachineFieldSymbol> fields = this.VisitSymbols<StateMachineFieldSymbol>(node.Fields);
11381ImmutableArray<BoundExpression> argumentsOpt = this.VisitList(node.ArgumentsOpt);
11386ImmutableArray<BoundLocalDeclaration> localDeclarations = this.VisitList(node.LocalDeclarations);
11392ImmutableArray<BoundLocalDeclaration> localDeclarations = this.VisitList(node.LocalDeclarations);
11436ImmutableArray<LocalSymbol> innerLocals = this.VisitLocals(node.InnerLocals);
11437ImmutableArray<MethodSymbol> innerLocalFunctions = this.VisitDeclaredLocalFunctions(node.InnerLocalFunctions);
11440ImmutableArray<BoundSwitchSection> switchSections = this.VisitList(node.SwitchSections);
11460ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11469ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11478ImmutableArray<LocalSymbol> outerLocals = this.VisitLocals(node.OuterLocals);
11479ImmutableArray<LocalSymbol> innerLocals = this.VisitLocals(node.InnerLocals);
11490ImmutableArray<LocalSymbol> iterationVariables = this.VisitLocals(node.IterationVariables);
11511ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11520ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11535ImmutableArray<BoundCatchBlock> catchBlocks = this.VisitList(node.CatchBlocks);
11541ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11630ImmutableArray<BoundStatement> statements = this.VisitList(node.Statements);
11641ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11652ImmutableArray<BoundSwitchExpressionArm> switchArms = this.VisitList(node.SwitchArms);
11661ImmutableArray<BoundSwitchExpressionArm> switchArms = this.VisitList(node.SwitchArms);
11787ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11788ImmutableArray<BoundSwitchLabel> switchLabels = this.VisitList(node.SwitchLabels);
11789ImmutableArray<BoundStatement> statements = this.VisitList(node.Statements);
11807ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11808ImmutableArray<BoundExpression> sideEffects = this.VisitList(node.SideEffects);
11815ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
11816ImmutableArray<BoundStatement> sideEffects = this.VisitList(node.SideEffects);
11829ImmutableArray<MethodSymbol> applicableMethods = this.VisitSymbols<MethodSymbol>(node.ApplicableMethods);
11831ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
11865ImmutableArray<MethodSymbol> methods = this.VisitSymbols<MethodSymbol>(node.Methods);
11874ImmutableArray<PropertySymbol> properties = this.VisitSymbols<PropertySymbol>(node.Properties);
11882ImmutableArray<MethodSymbol> originalMethodsOpt = this.VisitSymbols<MethodSymbol>(node.OriginalMethodsOpt);
11884ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
11899ImmutableArray<BoundExpression> constructorArguments = this.VisitList(node.ConstructorArguments);
11900ImmutableArray<BoundAssignmentOperator> namedArguments = this.VisitList(node.NamedArguments);
11906ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
11913ImmutableArray<MethodSymbol> constructorsGroup = this.VisitSymbols<MethodSymbol>(node.ConstructorsGroup);
11914ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
11921ImmutableArray<BoundNode> elements = this.VisitList(node.Elements);
11933ImmutableArray<BoundNode> elements = this.VisitList(node.Elements);
11954ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
11961ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
11967ImmutableArray<MethodSymbol> applicableMethods = this.VisitSymbols<MethodSymbol>(node.ApplicableMethods);
11968ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
11982ImmutableArray<BoundExpression> initializers = this.VisitList(node.Initializers);
11989ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
12003ImmutableArray<BoundExpression> initializers = this.VisitList(node.Initializers);
12010ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
12017ImmutableArray<MethodSymbol> applicableMethods = this.VisitSymbols<MethodSymbol>(node.ApplicableMethods);
12019ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
12031ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
12032ImmutableArray<BoundAnonymousPropertyDeclaration> declarations = this.VisitList(node.Declarations);
12057ImmutableArray<BoundExpression> bounds = this.VisitList(node.Bounds);
12064ImmutableArray<BoundExpression> initializers = this.VisitList(node.Initializers);
12114ImmutableArray<PropertySymbol> originalIndexersOpt = this.VisitSymbols<PropertySymbol>(node.OriginalIndexersOpt);
12116ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
12127ImmutableArray<BoundImplicitIndexerValuePlaceholder> argumentPlaceholders = node.ArgumentPlaceholders;
12140ImmutableArray<PropertySymbol> applicableIndexers = this.VisitSymbols<PropertySymbol>(node.ApplicableIndexers);
12142ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
12172ImmutableArray<BoundStatement> statements = this.VisitList(node.Statements);
12183ImmutableArray<BoundExpression> parts = this.VisitList(node.Parts);
12189ImmutableArray<BoundExpression> parts = this.VisitList(node.Parts);
12248ImmutableArray<BoundPositionalSubpattern> deconstruction = this.VisitList(node.Deconstruction);
12249ImmutableArray<BoundPropertySubpattern> properties = this.VisitList(node.Properties);
12258ImmutableArray<BoundPattern> subpatterns = this.VisitList(node.Subpatterns);
12282ImmutableArray<BoundPositionalSubpattern> subpatterns = this.VisitList(node.Subpatterns);
12374ImmutableArray<LocalSymbol> locals = this.VisitLocals(node.Locals);
12412ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
12420ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
12428ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
12630ImmutableArray<Symbol?> symbols = GetUpdatedArray(node, node.Symbols);
12631ImmutableArray<BoundExpression> childBoundNodes = this.VisitList(node.ChildBoundNodes);
12649ImmutableArray<BoundExpression> boundDimensionsOpt = this.VisitList(node.BoundDimensionsOpt);
12692ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = GetUpdatedArray(node, node.OriginalUserDefinedOperatorsOpt);
12712ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = GetUpdatedArray(node, node.OriginalUserDefinedOperatorsOpt);
12822ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
12946ImmutableArray<MethodSymbol> originalUserDefinedOperatorsOpt = GetUpdatedArray(node, node.OriginalUserDefinedOperatorsOpt);
13083ImmutableArray<BoundExpression> indices = this.VisitList(node.Indices);
13495ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
13533ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13534ImmutableArray<MethodSymbol> localFunctions = GetUpdatedArray(node, node.LocalFunctions);
13536ImmutableArray<BoundStatement> statements = this.VisitList(node.Statements);
13542ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13543ImmutableArray<BoundStatement> statements = this.VisitList(node.Statements);
13549ImmutableArray<StateMachineFieldSymbol> fields = GetUpdatedArray(node, node.Fields);
13559ImmutableArray<BoundExpression> argumentsOpt = this.VisitList(node.ArgumentsOpt);
13573ImmutableArray<LocalSymbol> innerLocals = GetUpdatedArray(node, node.InnerLocals);
13574ImmutableArray<MethodSymbol> innerLocalFunctions = GetUpdatedArray(node, node.InnerLocalFunctions);
13576ImmutableArray<BoundSwitchSection> switchSections = this.VisitList(node.SwitchSections);
13584ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13592ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13600ImmutableArray<LocalSymbol> outerLocals = GetUpdatedArray(node, node.OuterLocals);
13601ImmutableArray<LocalSymbol> innerLocals = GetUpdatedArray(node, node.InnerLocals);
13611ImmutableArray<LocalSymbol> iterationVariables = GetUpdatedArray(node, node.IterationVariables);
13625ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13635ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13643ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13807ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13817ImmutableArray<BoundSwitchExpressionArm> switchArms = this.VisitList(node.SwitchArms);
13837ImmutableArray<BoundSwitchExpressionArm> switchArms = this.VisitList(node.SwitchArms);
13905ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13906ImmutableArray<BoundSwitchLabel> switchLabels = this.VisitList(node.SwitchLabels);
13907ImmutableArray<BoundStatement> statements = this.VisitList(node.Statements);
13930ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13931ImmutableArray<BoundExpression> sideEffects = this.VisitList(node.SideEffects);
13949ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
13950ImmutableArray<BoundStatement> sideEffects = this.VisitList(node.SideEffects);
13985ImmutableArray<MethodSymbol> applicableMethods = GetUpdatedArray(node, node.ApplicableMethods);
13987ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14072ImmutableArray<MethodSymbol> methods = GetUpdatedArray(node, node.Methods);
14092ImmutableArray<PropertySymbol> properties = GetUpdatedArray(node, node.Properties);
14111ImmutableArray<MethodSymbol> originalMethodsOpt = GetUpdatedArray(node, node.OriginalMethodsOpt);
14113ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14150ImmutableArray<BoundExpression> constructorArguments = this.VisitList(node.ConstructorArguments);
14151ImmutableArray<BoundAssignmentOperator> namedArguments = this.VisitList(node.NamedArguments);
14168ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14186ImmutableArray<MethodSymbol> constructorsGroup = GetUpdatedArray(node, node.ConstructorsGroup);
14187ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14205ImmutableArray<BoundNode> elements = this.VisitList(node.Elements);
14228ImmutableArray<BoundNode> elements = this.VisitList(node.Elements);
14257ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14275ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14292ImmutableArray<MethodSymbol> applicableMethods = GetUpdatedArray(node, node.ApplicableMethods);
14293ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14329ImmutableArray<BoundExpression> initializers = this.VisitList(node.Initializers);
14348ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14383ImmutableArray<BoundExpression> initializers = this.VisitList(node.Initializers);
14401ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14419ImmutableArray<MethodSymbol> applicableMethods = GetUpdatedArray(node, node.ApplicableMethods);
14421ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14451ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14452ImmutableArray<BoundAnonymousPropertyDeclaration> declarations = this.VisitList(node.Declarations);
14521ImmutableArray<BoundExpression> bounds = this.VisitList(node.Bounds);
14539ImmutableArray<BoundExpression> initializers = this.VisitList(node.Initializers);
14666ImmutableArray<PropertySymbol> originalIndexersOpt = GetUpdatedArray(node, node.OriginalIndexersOpt);
14668ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14703ImmutableArray<PropertySymbol> applicableIndexers = GetUpdatedArray(node, node.ApplicableIndexers);
14705ImmutableArray<BoundExpression> arguments = this.VisitList(node.Arguments);
14796ImmutableArray<BoundExpression> parts = this.VisitList(node.Parts);
14813ImmutableArray<BoundExpression> parts = this.VisitList(node.Parts);
14922ImmutableArray<BoundPositionalSubpattern> deconstruction = this.VisitList(node.Deconstruction);
14923ImmutableArray<BoundPropertySubpattern> properties = this.VisitList(node.Properties);
14933ImmutableArray<BoundPattern> subpatterns = this.VisitList(node.Subpatterns);
14959ImmutableArray<BoundPositionalSubpattern> subpatterns = this.VisitList(node.Subpatterns);
15094ImmutableArray<LocalSymbol> locals = GetUpdatedArray(node, node.Locals);
Lowering\ClosureConversion\ClosureConversion.cs (26)
118private ImmutableArray<TypeParameterSymbol> _currentTypeParameters;
465var structEnvironments = getStructEnvironments(nestedFunction);
484static ImmutableArray<SynthesizedClosureEnvironment> getStructEnvironments(Analysis.NestedFunction function)
878ref ImmutableArray<BoundExpression> arguments,
879ref ImmutableArray<RefKind> argRefKinds)
908var typeParameters = ((SynthesizedClosureEnvironment)frameType).ConstructedFromTypeParameters;
910var subst = this.TypeMap.SubstituteTypeParameters(typeParameters);
965private ImmutableArray<TypeWithAnnotations> SubstituteTypeArguments(ImmutableArray<TypeWithAnnotations> typeArguments)
1018ImmutableArray<TypeWithAnnotations> typeArgumentsOpt,
1078var args = VisitList(node.Arguments);
1079var argRefKinds = node.ArgumentRefKindsOpt;
1128locals: ImmutableArray<LocalSymbol>.Empty,
1206var newLocals = VisitLocals(node.Locals);
1208var statements = VisitList(node.Statements);
1236var rewrittenCatchLocals = newLocals.ToImmutableAndFree();
1343var arguments = default(ImmutableArray<BoundExpression>);
1344var argRefKinds = default(ImmutableArray<RefKind>);
1370ImmutableArray<BoundExpression> arguments = default;
1371ImmutableArray<RefKind> argRefKinds = default;
1442private DebugId GetLambdaId(SyntaxNode syntax, ClosureKind closureKind, int closureOrdinal, ImmutableArray<DebugId> structClosureIds, RuntimeRudeEdit? closureRudeEdit)
1562var oldTypeParameters = _currentTypeParameters;
1654RemapLambdaOrLocalFunction(node.Syntax, node.Symbol, default(ImmutableArray<TypeWithAnnotations>), closureKind, ref referencedMethod, out receiver, out constructedFrame);
1734return new BoundBadExpression(F.Syntax, LookupResultKind.Empty, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (7)
310private BoundExpression Indices(ImmutableArray<BoundExpression> expressions)
326private BoundExpression Expressions(ImmutableArray<BoundExpression> expressions)
351return new BoundBadExpression(node.Syntax, default(LookupResultKind), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), ExpressionType);
382return new BoundBadExpression(node.Syntax, 0, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), ExpressionType);
1091return new BoundBadExpression(node.Syntax, default(LookupResultKind), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
1098return new BoundBadExpression(node.Syntax, default(LookupResultKind), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
1130return new BoundBadExpression(node.Syntax, default(LookupResultKind), ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundExpression>(node), node.Type);
Lowering\DiagnosticsPass_ExpressionTrees.cs (9)
307ImmutableArray<BoundExpression> arguments,
308ImmutableArray<RefKind> argumentRefKindsOpt,
309ImmutableArray<string> argumentNamesOpt,
310ImmutableArray<int> argsToParamsOpt,
366static bool hasDefaultArgument(ImmutableArray<BoundExpression> arguments, BitVector defaultArguments)
379static bool hasNamedArgumentOutOfOrder(ImmutableArray<int> argsToParamsOpt)
553VisitCall(node.AddMethod, null, node.Arguments, default(ImmutableArray<RefKind>), default(ImmutableArray<string>), default(ImmutableArray<int>), node.DefaultArguments, node);
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (13)
369protected ImmutableArray<BoundStatement> LowerDecisionDagCore(BoundDecisionDag decisionDag)
373ImmutableArray<BoundDecisionDagNode> sortedNodes = decisionDag.TopologicallySortedNodes;
388ImmutableArray<BoundDecisionDagNode> nodesToLower = sortedNodes.WhereAsArray(n => n.Kind != BoundKind.WhenDecisionDagNode && n.Kind != BoundKind.LeafDecisionDagNode);
428var result = _loweredDecisionDag.ToImmutableAndFree();
441ImmutableArray<BoundDecisionDagNode> nodesToLower,
620ImmutableArray<(ConstantValue value, LabelSymbol label)> cases,
643(ImmutableArray<(ConstantValue value, LabelSymbol label)> whenTrueCases, ImmutableArray<(ConstantValue value, LabelSymbol label)> whenFalseCases)
644splitCases(ImmutableArray<(ConstantValue value, LabelSymbol label)> cases, BinaryOperatorKind op, ConstantValue value)
787ImmutableArray<(ConstantValue value, LabelSymbol label)> cases;
821var cases = node.Cases.Sort(new CasesComparer(input.Type));
970private void LowerWhenClauses(ImmutableArray<BoundDecisionDagNode> sortedNodes)
1177void lowerBindings(ImmutableArray<BoundPatternBinding> bindings, ArrayBuilder<BoundStatement> sectionBuilder)
Lowering\LocalRewriter\LocalRewriter_AssignmentOperator.cs (14)
69var loweredArguments = VisitList(indexerAccess.Arguments);
142ImmutableArray<BoundExpression> loweredArguments,
143ImmutableArray<string?> argumentNames,
144ImmutableArray<RefKind> refKinds,
190ImmutableArray<BoundExpression>.Empty,
191default(ImmutableArray<RefKind>),
193default(ImmutableArray<int>),
203ImmutableArray<BoundExpression> arguments = indexerAccess.Arguments;
271ImmutableArray<BoundExpression> arguments,
272ImmutableArray<RefKind> argumentRefKindsOpt,
274ImmutableArray<int> argsToParamsOpt,
367ImmutableArray<BoundExpression>.Empty,
374private static ImmutableArray<T> AppendToPossibleNull<T>(ImmutableArray<T> possibleNull, T newElement)
Lowering\LocalRewriter\LocalRewriter_Call.cs (57)
27var loweredArguments = VisitList(node.Arguments);
31ImmutableArray<TypeWithAnnotations> typeArguments;
97private void EmbedIfNeedTo(BoundExpression receiver, ImmutableArray<MethodSymbol> methods, SyntaxNode syntaxNode)
116private void EmbedIfNeedTo(BoundExpression receiver, ImmutableArray<PropertySymbol> properties, SyntaxNode syntaxNode)
138ref ImmutableArray<BoundExpression> arguments,
139ref ImmutableArray<RefKind> argumentRefKindsOpt,
364ImmutableArray<int> argsToParamsOpt = node.ArgsToParamsOpt;
365ImmutableArray<RefKind> argRefKindsOpt = node.ArgumentRefKindsOpt;
366ImmutableArray<BoundExpression> arguments = node.Arguments;
379var rewrittenArguments = VisitArgumentsAndCaptureReceiverIfNeeded(
444ImmutableArray<BoundExpression> rewrittenArguments,
445ImmutableArray<RefKind> argumentRefKinds,
447ImmutableArray<LocalSymbol> temps)
481argumentNamesOpt: default(ImmutableArray<string?>),
486argsToParamsOpt: default(ImmutableArray<int>),
498argumentNamesOpt: default(ImmutableArray<string?>),
503argsToParamsOpt: default(ImmutableArray<int>),
516sideEffects: ImmutableArray<BoundExpression>.Empty,
524private BoundExpression MakeCall(SyntaxNode syntax, BoundExpression? rewrittenReceiver, MethodSymbol method, ImmutableArray<BoundExpression> rewrittenArguments)
532argumentRefKinds: default(ImmutableArray<RefKind>),
655private ImmutableArray<BoundExpression> VisitArgumentsAndCaptureReceiverIfNeeded(
658ImmutableArray<BoundExpression> arguments,
660ImmutableArray<int> argsToParamsOpt,
661ImmutableArray<RefKind> argumentRefKindsOpt,
723ImmutableArray<BoundExpression> rewrittenArguments;
733var parameters = methodOrIndexer.GetParameters();
750ImmutableArray<BoundInterpolatedStringArgumentPlaceholder> argumentPlaceholders = addInterpolationPlaceholderReplacements(
809ImmutableArray<LocalSymbol>.Empty,
827ImmutableArray<BoundInterpolatedStringArgumentPlaceholder> addInterpolationPlaceholderReplacements(
828ImmutableArray<ParameterSymbol> parameters,
886visitedArgumentsBuilder[argIndex] = _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, ImmutableArray.Create<BoundExpression>(store), local);
905return ImmutableArray<BoundInterpolatedStringArgumentPlaceholder>.Empty;
999private ImmutableArray<BoundExpression> MakeArguments(
1000ImmutableArray<BoundExpression> rewrittenArguments,
1003ImmutableArray<int> argsToParamsOpt,
1004ref ImmutableArray<RefKind> argumentRefKindsOpt,
1018ImmutableArray<ParameterSymbol> parameters = methodOrIndexer.GetParameters();
1157private static ImmutableArray<RefKind> GetEffectiveArgumentRefKinds(ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<ParameterSymbol> parameters)
1192static void fillRefKindsBuilder(ImmutableArray<RefKind> argumentRefKindsOpt, ImmutableArray<ParameterSymbol> parameters, [NotNull] ref ArrayBuilder<RefKind>? refKindsBuilder)
1212ImmutableArray<BoundExpression> rewrittenArguments,
1214ImmutableArray<int> argsToParamsOpt,
1259private static ImmutableArray<RefKind> GetRefKindsOrNull(ArrayBuilder<RefKind> refKinds)
1268return default(ImmutableArray<RefKind>);
1319ImmutableArray<int> argsToParamsOpt,
1320ImmutableArray<ParameterSymbol> parameters,
1321ImmutableArray<RefKind> argumentRefKinds,
1322ImmutableArray<BoundExpression> rewrittenArguments,
1456ImmutableArray<BoundExpression>.Empty,
1457default(ImmutableArray<string?>),
1458default(ImmutableArray<RefKind>),
1462argsToParamsOpt: default(ImmutableArray<int>),
1595ImmutableArray<LocalSymbol>.Empty,
1616ImmutableArray<ParameterSymbol> parameters,
1659locals: ImmutableArray<LocalSymbol>.Empty,
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (17)
101var elements = node.Elements;
254var elements = node.Elements;
336var elements = node.Elements;
406var elements = node.Elements;
425var typeArgs = ImmutableArray.Create(elementType);
543ImmutableArray<BoundNode> elements,
616locals: ImmutableArray<LocalSymbol>.Empty,
722var elements = node.Elements;
1021private BoundExpression CreateAndPopulateList(BoundCollectionExpression node, TypeWithAnnotations elementType, ImmutableArray<BoundNode> elements)
1025var typeArguments = ImmutableArray.Create(elementType);
1083rewrittenReceiver = _factory.New(constructor, ImmutableArray<BoundExpression>.Empty);
1213ImmutableArray<BoundNode> elements,
1229ImmutableArray<BoundNode> elements,
1262new BoundBlock(iteratorBody.Syntax, locals: ImmutableArray<LocalSymbol>.Empty, statements);
1274private BoundExpression GetKnownLengthExpression(ImmutableArray<BoundNode> elements, int numberIncludingLastSpread, ArrayBuilder<BoundLocal> rewrittenExpressions)
1348var iterationVariables = ImmutableArray.Create(iterationVariable);
1420ImmutableArray<LocalSymbol>.Empty,
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (9)
220ImmutableArray<BoundExpression> rightParts = GetRightParts(right, conversion, temps, effects, ref inInit);
222ImmutableArray<(BoundValuePlaceholder?, BoundExpression?)> deconstructConversionInfo = conversion.DeconstructConversionInfo;
277private ImmutableArray<BoundExpression> GetRightParts(BoundExpression right, Conversion conversion,
334private ImmutableArray<BoundExpression> AccessTupleFields(BoundExpression expression, ArrayBuilder<LocalSymbol> temps,
340var tupleElementTypes = tupleType.TupleElementTypesWithAnnotations;
360var fields = tupleType.TupleElements;
381private ImmutableArray<BoundExpression> InvokeDeconstructMethod(DeconstructMethodInfo deconstruction, BoundExpression target,
386var outputPlaceholders = deconstruction.OutputPlaceholders;
515internal ImmutableArray<BoundExpression> ToImmutableAndFree()
Lowering\LocalRewriter\LocalRewriter_Event.cs (8)
54var rewrittenArguments = ImmutableArray.Create<BoundExpression>(rewrittenArgument);
128clearCall = new BoundBadExpression(syntax, LookupResultKind.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(removeDelegate), ErrorTypeSymbol.UnknownResultType);
132ImmutableArray<BoundExpression> marshalArguments;
170marshalCall = new BoundBadExpression(syntax, LookupResultKind.NotInvocable, ImmutableArray<Symbol?>.Empty, marshalArguments, ErrorTypeSymbol.UnknownResultType);
179ImmutableArray<LocalSymbol> tempSymbols = boundTemp == null
180? ImmutableArray<LocalSymbol>.Empty
265getOrCreateCall = new BoundBadExpression(syntax, LookupResultKind.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(fieldAccess), ErrorTypeSymbol.UnknownResultType);
287return new BoundBadExpression(syntax, LookupResultKind.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(getOrCreateCall), ErrorTypeSymbol.UnknownResultType);
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (6)
19ImmutableArray<BoundLocalDeclaration> localDecls = node.Declarations.LocalDeclarations;
67ImmutableArray<BoundCatchBlock>.Empty,
379locals: ImmutableArray<LocalSymbol>.Empty,
483helperCall = new BoundBadExpression(fixedInitializer.Syntax, LookupResultKind.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, ErrorTypeSymbol.UnknownResultType);
544lengthCall = new BoundBadExpression(fixedInitializer.Syntax, LookupResultKind.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(factory.Local(pinnedTemp)), ErrorTypeSymbol.UnknownResultType);
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (11)
141ImmutableArray<LocalSymbol> iterationVariables,
259tryBlock: new BoundBlock(forEachSyntax, locals: ImmutableArray<LocalSymbol>.Empty, statements: ImmutableArray.Create(whileLoop)),
260catchBlocks: ImmutableArray<BoundCatchBlock>.Empty,
410locals: ImmutableArray<LocalSymbol>.Empty,
589ImmutableArray<LocalSymbol> iterationVariables,
798ImmutableArray<LocalSymbol> iterationVariables,
824ImmutableArray<LocalSymbol> iterationVariables,
885ImmutableArray<LocalSymbol> iterationVariables,
1034ImmutableArray<LocalSymbol> iterationVariables,
1082ImmutableArray<BoundExpression> dimensionArgument = ImmutableArray.Create(
1136ImmutableArray<BoundExpression> dimensionArgument = ImmutableArray.Create(
Lowering\LocalRewriter\LocalRewriter_Literal.cs (6)
137argumentNamesOpt: default(ImmutableArray<string?>), argumentRefKindsOpt: default(ImmutableArray<RefKind>), expanded: false,
138argsToParamsOpt: default(ImmutableArray<int>), defaultArguments: default(BitVector),
157argumentNamesOpt: default(ImmutableArray<string?>), argumentRefKindsOpt: default(ImmutableArray<RefKind>), expanded: false,
158argsToParamsOpt: default(ImmutableArray<int>), defaultArguments: default(BitVector),
Lowering\LocalRewriter\LocalRewriter_LockStatement.cs (4)
117exitCallExpr = new BoundBadExpression(lockSyntax, LookupResultKind.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(boundLockTemp), ErrorTypeSymbol.UnknownResultType);
179ImmutableArray<BoundCatchBlock>.Empty,
212enterCallExpr = new BoundBadExpression(lockSyntax, LookupResultKind.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create<BoundExpression>(boundLockTemp), ErrorTypeSymbol.UnknownResultType);
228ImmutableArray<BoundCatchBlock>.Empty,
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (17)
20var loweredArguments = VisitList(node.Arguments);
43ImmutableArray<RefKind> argumentRefKindsOpt = node.ArgumentRefKindsOpt;
45ImmutableArray<BoundExpression> rewrittenArguments = VisitArgumentsAndCaptureReceiverIfNeeded(
107ImmutableArray<BoundExpression>.Empty,
199ImmutableArray<BoundExpression> getAnonymousTypeValues(BoundWithExpression withExpr, BoundExpression oldValue, AnonymousTypeManager.AnonymousTypePublicSymbol anonymousType,
247var rewrittenInitializers = MakeObjectOrCollectionInitializersForExpressionTree(initializerExpressionOpt);
288ImmutableArray<LocalSymbol> locals;
350ImmutableArray<BoundExpression>.Empty,
351default(ImmutableArray<string?>),
352default(ImmutableArray<RefKind>),
356argsToParamsOpt: default(ImmutableArray<int>),
389newGuid = new BoundBadExpression(node.Syntax, LookupResultKind.NotCreatable, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, ErrorTypeSymbol.UnknownResultType);
407callGetTypeFromCLSID = new BoundBadExpression(node.Syntax, LookupResultKind.OverloadResolutionFailure, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, ErrorTypeSymbol.UnknownResultType);
419rewrittenObjectCreation = new BoundBadExpression(node.Syntax, LookupResultKind.OverloadResolutionFailure, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, node.Type);
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (20)
18private static BoundObjectInitializerExpressionBase UpdateInitializers(BoundObjectInitializerExpressionBase initializerExpression, ImmutableArray<BoundExpression> newInitializers)
66private ImmutableArray<BoundExpression> MakeObjectOrCollectionInitializersForExpressionTree(BoundExpression initializerExpression)
84void addCollectionInitializersForExpressionTree(ArrayBuilder<BoundExpression> result, ImmutableArray<BoundExpression> initializers)
127private void AddCollectionInitializers(ArrayBuilder<BoundExpression> result, BoundExpression rewrittenReceiver, ImmutableArray<BoundExpression> initializers)
159var rewrittenArguments = VisitList(initializer.Arguments);
168ImmutableArray<TypeWithAnnotations>.Empty,
170default(ImmutableArray<string?>),
171default(ImmutableArray<RefKind>),
202var argumentRefKindsOpt = default(ImmutableArray<RefKind>);
215ImmutableArray<BoundExpression> rewrittenArguments = VisitArgumentsAndCaptureReceiverIfNeeded(
254var rewrittenArguments = VisitArgumentsAndCaptureReceiverIfNeeded(ref rewrittenReceiver, captureReceiverMode: ReceiverCaptureMode.Default, node.Arguments, node.MemberSymbol, node.ArgsToParamsOpt, node.ArgumentRefKindsOpt,
287ImmutableArray<BoundExpression> initializers)
338var args = EvaluateSideEffectingArgumentsToTemps(
340memberInit.MemberSymbol?.GetParameterRefKinds() ?? default(ImmutableArray<RefKind>),
443var indices = EvaluateSideEffectingArgumentsToTemps(
620private ImmutableArray<BoundExpression> EvaluateSideEffectingArgumentsToTemps(
621ImmutableArray<BoundExpression> args,
622ImmutableArray<RefKind> paramRefKindsOpt,
713var arguments = rewrittenLeft.Arguments;
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (10)
29private InterpolationHandlerResult RewriteToInterpolatedStringHandlerPattern(InterpolatedStringHandlerData data, ImmutableArray<BoundExpression> parts, SyntaxNode syntax)
219private BoundExpression LowerPartsToString(InterpolatedStringHandlerData data, ImmutableArray<BoundExpression> parts, SyntaxNode syntax, TypeSymbol type)
228: new BoundBadExpression(syntax, LookupResultKind.Empty, symbols: ImmutableArray<Symbol?>.Empty, childBoundNodes: ImmutableArray<BoundExpression>.Empty, type);
234private static void AssertNoImplicitInterpolatedStringHandlerConversions(ImmutableArray<BoundExpression> arguments, bool allowConversionsWithNoContext = false)
257private readonly ImmutableArray<BoundStatement> _statements;
258private readonly ImmutableArray<BoundExpression> _expressions;
264public InterpolationHandlerResult(ImmutableArray<BoundStatement> statements, BoundLocal handlerTemp, LocalSymbol outTemp, LocalRewriter rewriter)
273public InterpolationHandlerResult(ImmutableArray<BoundExpression> expressions, BoundLocal handlerTemp, LocalSymbol? outTemp, LocalRewriter rewriter)
285var locals = _outTemp != null
Lowering\LocalRewriter\LocalRewriter_TupleBinaryOperator.cs (22)
61var underlyingConversions = c.UnderlyingConversions;
63var resultTypes = conversion.Type.TupleElementTypesWithAnnotations;
82var newArguments = builder.ToImmutableAndFree();
84tuple.Syntax, sourceTuple: null, wasTargetTyped: true, newArguments, ImmutableArray<string?>.Empty,
85ImmutableArray<bool>.Empty, conversion.Type, conversion.HasErrors);
108var destElementTypes = expr.Type.TupleElementTypesWithAnnotations;
111var srcElementFields = boundConversion.Operand.Type.TupleElements;
114var elementConversions = conversion.UnderlyingConversions;
126syntax, sourceTuple: null, wasTargetTyped: true, fieldAccessorsBuilder.ToImmutableAndFree(), ImmutableArray<string?>.Empty,
127ImmutableArray<bool>.Empty, expr.Type, expr.HasErrors);
160var newArguments = builder.ToImmutableAndFree();
162tuple.Syntax, sourceTuple: null, wasTargetTyped: false, newArguments, ImmutableArray<string?>.Empty,
163ImmutableArray<bool>.Empty, tuple.Type, tuple.HasErrors);
308BoundExpression innerSequence = _factory.Sequence(locals: ImmutableArray<LocalSymbol>.Empty, innerEffects.ToImmutableAndFree(), logicalExpression);
322return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, outerEffects.ToImmutableAndFree(),
330return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, outerEffects.ToImmutableAndFree(),
339_factory.Sequence(ImmutableArray<LocalSymbol>.Empty, outerEffects.ToImmutableAndFree(),
444var types = expr.Type.GetNullableUnderlyingType().TupleElementTypesWithAnnotations;
446var underlyingConversions = tupleConversion.UnderlyingConversions;
459argumentNamesOpt: ImmutableArray<string?>.Empty,
460inferredNamesOpt: ImmutableArray<bool>.Empty,
488ImmutableArray<TupleBinaryOperatorInfo> nestedOperators = operators.Operators;
Lowering\LocalRewriter\LocalRewriter_TupleCreationExpression.cs (7)
27ImmutableArray<BoundExpression> rewrittenArguments = VisitList(node.Arguments);
37private BoundExpression RewriteTupleCreationExpression(BoundTupleExpression node, ImmutableArray<BoundExpression> rewrittenArguments)
43private BoundExpression MakeTupleCreationExpression(SyntaxNode syntax, NamedTypeSymbol type, ImmutableArray<BoundExpression> rewrittenArguments)
54ImmutableArray<BoundExpression> smallestCtorArguments = ImmutableArray.Create(rewrittenArguments,
69Binder.CheckRequiredMembersInObjectInitializer(smallestConstructor, initializers: ImmutableArray<BoundExpression>.Empty, syntax, _diagnostics);
83Binder.CheckRequiredMembersInObjectInitializer(tuple8Ctor, initializers: ImmutableArray<BoundExpression>.Empty, syntax, _diagnostics);
88ImmutableArray<BoundExpression> ctorArguments = ImmutableArray.Create(rewrittenArguments,
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (9)
64ImmutableArray<LocalSymbol> locals,
65ImmutableArray<BoundLocalDeclaration> declarations,
89private BoundStatement MakeLocalUsingDeclarationStatement(BoundUsingLocalDeclarations usingDeclarations, ImmutableArray<BoundStatement> statements)
92BoundBlock body = new BoundBlock(syntax, ImmutableArray<LocalSymbol>.Empty, statements);
96ImmutableArray<LocalSymbol>.Empty,
422catchBlocks: ImmutableArray<BoundCatchBlock>.Empty,
463disposeCall = new BoundBadExpression(resourceSyntax, LookupResultKind.NotInvocable, ImmutableArray<Symbol?>.Empty, ImmutableArray.Create(disposedExpression), ErrorTypeSymbol.UnknownResultType);
512ImmutableArray<RefKind> argumentRefKindsOpt = default;
514var rewrittenArguments = VisitArgumentsAndCaptureReceiverIfNeeded(
Lowering\LocalRewriter\LoweredDynamicOperation.cs (6)
25private readonly ImmutableArray<LocalSymbol> _temps;
29public LoweredDynamicOperation(SyntheticBoundNodeFactory? factory, BoundExpression? siteInitialization, BoundExpression siteInvocation, TypeSymbol resultType, ImmutableArray<LocalSymbol> temps)
40ImmutableArray<BoundExpression> loweredArguments,
52public static LoweredDynamicOperation Bad(TypeSymbol resultType, ImmutableArray<BoundExpression> children)
55var bad = new BoundBadExpression(children[0].Syntax, LookupResultKind.Empty, ImmutableArray<Symbol?>.Empty, children, resultType);
56return new LoweredDynamicOperation(null, null, bad, resultType, default(ImmutableArray<LocalSymbol>));
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (50)
97var loweredArguments = ImmutableArray.Create(loweredOperand);
111return MakeDynamicOperation(binderConstruction, null, RefKind.None, loweredArguments, default(ImmutableArray<RefKind>), null, resultType);
129var loweredArguments = ImmutableArray.Create(loweredOperand);
147return MakeDynamicOperation(binderConstruction, null, RefKind.None, loweredArguments, default(ImmutableArray<RefKind>), null, resultType);
172var loweredArguments = ImmutableArray.Create<BoundExpression>(loweredLeft, loweredRight);
190return MakeDynamicOperation(binderConstruction, null, RefKind.None, loweredArguments, default(ImmutableArray<RefKind>), null, resultType);
196ImmutableArray<TypeWithAnnotations> typeArgumentsWithAnnotations,
197ImmutableArray<BoundExpression> loweredArguments,
198ImmutableArray<string?> argumentNames,
199ImmutableArray<RefKind> refKinds,
270var loweredArguments = ImmutableArray<BoundExpression>.Empty;
292return MakeDynamicOperation(binderConstruction, loweredReceiver, RefKind.None, loweredArguments, default(ImmutableArray<RefKind>), loweredHandler, resultType);
297ImmutableArray<BoundExpression> loweredArguments,
298ImmutableArray<string?> argumentNames,
299ImmutableArray<RefKind> refKinds,
335ImmutableArray<BoundExpression> loweredArguments,
336ImmutableArray<string?> argumentNames,
337ImmutableArray<RefKind> refKinds)
372var loweredArguments = ImmutableArray<BoundExpression>.Empty;
391return MakeDynamicOperation(binderConstruction, loweredReceiver, RefKind.None, loweredArguments, default(ImmutableArray<RefKind>), null, resultType);
414var loweredArguments = ImmutableArray<BoundExpression>.Empty;
432return MakeDynamicOperation(binderConstruction, loweredReceiver, RefKind.None, loweredArguments, default(ImmutableArray<RefKind>), loweredRight, AssemblySymbol.DynamicType);
437ImmutableArray<BoundExpression> loweredArguments,
438ImmutableArray<string?> argumentNames,
439ImmutableArray<RefKind> refKinds)
463ImmutableArray<BoundExpression> loweredArguments,
464ImmutableArray<string?> argumentNames,
465ImmutableArray<RefKind> refKinds,
516return MakeDynamicOperation(binderConstruction, loweredReceiver, RefKind.None, ImmutableArray<BoundExpression>.Empty, default(ImmutableArray<RefKind>), null, resultType);
560ImmutableArray<BoundExpression> loweredArguments,
561ImmutableArray<string?> argumentNames = default(ImmutableArray<string?>),
562ImmutableArray<RefKind> refKinds = default(ImmutableArray<RefKind>),
602ImmutableArray<BoundExpression> loweredArguments,
603ImmutableArray<RefKind> refKinds,
640ImmutableArray<LocalSymbol> temps = MakeTempsForDiscardArguments(ref loweredArguments);
647var callSiteArguments = GetCallSiteArguments(callSiteFieldAccess, loweredReceiver, loweredArguments, loweredRight);
670private ImmutableArray<LocalSymbol> MakeTempsForDiscardArguments(ref ImmutableArray<BoundExpression> loweredArguments)
676return ImmutableArray<LocalSymbol>.Empty;
721ImmutableArray<BoundExpression> loweredArguments,
722ImmutableArray<RefKind> refKinds,
873private static ImmutableArray<BoundExpression> GetCallSiteArguments(BoundExpression callSiteFieldAccess, BoundExpression? receiver, ImmutableArray<BoundExpression> arguments, BoundExpression? right)
896private TypeSymbol[] MakeCallSiteDelegateSignature(TypeSymbol callSiteType, BoundExpression? receiver, ImmutableArray<BoundExpression> arguments, BoundExpression? right, TypeSymbol resultType)
Lowering\SpillSequenceSpiller.cs (27)
67public ImmutableArray<LocalSymbol> GetLocals()
69return (_locals == null) ? ImmutableArray<LocalSymbol>.Empty : _locals.ToImmutable();
72public ImmutableArray<BoundStatement> GetStatements()
76return ImmutableArray<BoundStatement>.Empty;
132public void AddLocals(ImmutableArray<LocalSymbol> locals)
150public void AddStatements(ImmutableArray<BoundStatement> statements)
158internal void AddExpressions(ImmutableArray<BoundExpression> expressions)
320var newInitializers = VisitExpressionList(ref builder, arrayInitialization.Initializers, forceSpill: true);
327var newArgs = VisitExpressionList(ref builder, argumentList.Arguments, argumentList.ArgumentRefKindsOpt, forceSpill: true);
487var argRefKinds = objectCreationExpression.ArgumentRefKindsOpt;
583private ImmutableArray<BoundExpression> VisitExpressionList(
585ImmutableArray<BoundExpression> args,
586ImmutableArray<RefKind> refKinds = default(ImmutableArray<RefKind>),
598var newList = VisitList(args);
710var locals = node.Locals;
772var newArgs = VisitExpressionList(ref builder, node.Arguments);
782var indices = this.VisitExpressionList(ref indicesBuilder, node.Indices);
809ImmutableArray<BoundExpression> bounds;
829var initializers = this.VisitExpressionList(ref builder, node.Initializers);
893var indices = this.VisitExpressionList(ref leftBuilder, arrayAccess.Indices, forceSpill: true);
940var indices = this.VisitExpressionList(ref leftBuilder, arrayAccess.Indices, forceSpill: true);
1019var arguments = this.VisitExpressionList(ref builder, node.Arguments, node.ArgumentRefKindsOpt);
1085var arguments = this.VisitExpressionList(ref builder, node.Arguments, node.ArgumentRefKindsOpt);
1416var arguments = this.VisitExpressionList(ref builder, node.Arguments, node.ArgumentRefKindsOpt);
1455var sideEffects = VisitExpressionList(ref builder, node.SideEffects, forceSpill: valueBuilder != null, sideEffectsOnly: true);
1487private void PromoteAndAddLocals(BoundSpillSequenceBuilder builder, ImmutableArray<LocalSymbol> locals)
Lowering\SyntheticBoundNodeFactory.cs (67)
241return new BoundBadExpression(Syntax, LookupResultKind.Empty, ImmutableArray<Symbol?>.Empty, ImmutableArray<BoundExpression>.Empty, type, hasErrors: true);
453return Block(ImmutableArray<BoundStatement>.Empty);
456public BoundBlock Block(ImmutableArray<BoundStatement> statements)
458return Block(ImmutableArray<LocalSymbol>.Empty, statements);
466public BoundBlock Block(ImmutableArray<LocalSymbol> locals, params BoundStatement[] statements)
471public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> statements)
476public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, params BoundStatement[] statements)
481public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<LocalFunctionSymbol> localFunctions, ImmutableArray<BoundStatement> statements)
483return Block(locals, ImmutableArray<MethodSymbol>.CastUp(localFunctions), statements);
486public BoundBlock Block(ImmutableArray<LocalSymbol> locals, ImmutableArray<MethodSymbol> localFunctions, ImmutableArray<BoundStatement> statements)
498return StatementList(ImmutableArray<BoundStatement>.Empty);
501public BoundStatementList StatementList(ImmutableArray<BoundStatement> statements)
546statements.Add(Try(Block(statement), ImmutableArray<BoundCatchBlock>.Empty, Block(instrumentation.Epilogue)));
753public BoundObjectCreationExpression New(NamedTypeSymbol type, ImmutableArray<BoundExpression> args)
759public BoundObjectCreationExpression New(MethodSymbol ctor, ImmutableArray<BoundExpression> args)
762public BoundObjectCreationExpression New(MethodSymbol constructor, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKinds)
777public BoundObjectCreationExpression New(WellKnownMember wm, ImmutableArray<BoundExpression> args)
802return new BoundBadExpression(Syntax, default(LookupResultKind), ImmutableArray<Symbol?>.Empty, args.AsImmutable(), receiver);
808public BoundExpression StaticCall(MethodSymbol method, ImmutableArray<BoundExpression> args)
819public BoundExpression StaticCall(WellKnownMember method, ImmutableArray<TypeSymbol> typeArgs, params BoundExpression[] args)
839return Call(receiver, method, ImmutableArray<BoundExpression>.Empty);
860public BoundCall Call(BoundExpression? receiver, MethodSymbol method, ImmutableArray<BoundExpression> args, bool useStrictArgumentRefKinds = false)
866argumentNamesOpt: default(ImmutableArray<string?>), argumentRefKindsOpt: ArgumentRefKindsFromParameterRefKinds(method, useStrictArgumentRefKinds), isDelegateCall: false, expanded: false,
867invokedAsExtensionMethod: false, argsToParamsOpt: default(ImmutableArray<int>), defaultArguments: default(BitVector), resultKind: LookupResultKind.Viable,
872public static ImmutableArray<RefKind> ArgumentRefKindsFromParameterRefKinds(MethodSymbol method, bool useStrictArgumentRefKinds)
874var result = method.ParameterRefKinds;
902public BoundCall Call(BoundExpression? receiver, MethodSymbol method, ImmutableArray<RefKind> refKinds, ImmutableArray<BoundExpression> args)
907argumentNamesOpt: default(ImmutableArray<String?>), argumentRefKindsOpt: refKinds, isDelegateCall: false, expanded: false, invokedAsExtensionMethod: false,
908argsToParamsOpt: ImmutableArray<int>.Empty, defaultArguments: default(BitVector), resultKind: LookupResultKind.Viable, type: method.ReturnType)
934return If(condition, ImmutableArray<LocalSymbol>.Empty, thenClause, elseClauseOpt);
942public BoundStatement If(BoundExpression condition, ImmutableArray<LocalSymbol> locals, BoundStatement thenClause, BoundStatement? elseClauseOpt = null)
1010return MakeSequence(ImmutableArray<LocalSymbol>.Empty, parts);
1013public BoundExpression MakeSequence(ImmutableArray<LocalSymbol> locals, params BoundExpression[] parts)
1039return new BoundSequence(Syntax, ImmutableArray<LocalSymbol>.Empty, sideEffects.AsImmutableOrNull(), result, resultType) { WasCompilerGenerated = true };
1042public BoundExpression Sequence(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundExpression> sideEffects, BoundExpression result)
1051public BoundSpillSequence SpillSequence(ImmutableArray<LocalSymbol> locals, ImmutableArray<BoundStatement> sideEffects, BoundExpression result)
1062public readonly ImmutableArray<int> Values;
1063public readonly ImmutableArray<BoundStatement> Statements;
1065public SyntheticSwitchSection(ImmutableArray<int> values, ImmutableArray<BoundStatement> statements)
1075public SyntheticSwitchSection SwitchSection(ImmutableArray<int> values, params BoundStatement[] statements)
1081public BoundStatement Switch(BoundExpression ex, ImmutableArray<SyntheticSwitchSection> sections)
1120private static void CheckSwitchSections(ImmutableArray<SyntheticSwitchSection> sections)
1186ImmutableArray<BoundExpression> firstElementIndices = ArrayBuilder<BoundExpression>.GetInstance(rank, Literal(0)).ToImmutableAndFree();
1195public BoundArrayAccess ArrayAccess(BoundExpression array, ImmutableArray<BoundExpression> indices)
1297public ImmutableArray<BoundExpression> TypeOfs(ImmutableArray<TypeWithAnnotations> typeArguments, TypeSymbol systemType)
1549public BoundExpression ArrayOrEmpty(TypeSymbol elementType, ImmutableArray<BoundExpression> elements)
1564public BoundExpression Array(TypeSymbol elementType, ImmutableArray<BoundExpression> elements)
1595ImmutableArray<BoundCatchBlock> catchBlocks,
1602internal ImmutableArray<BoundCatchBlock> CatchBlocks(
1620return new BoundCatchBlock(Syntax, ImmutableArray<LocalSymbol>.Empty, source, source.Type, exceptionFilterPrologueOpt: null, exceptionFilterOpt: null, body: block, isSynthesizedAsyncCatchAll: false);
1625return new BoundTryStatement(Syntax, tryBlock, ImmutableArray<BoundCatchBlock>.Empty, faultBlock, finallyLabelOpt: null, preferFaultHandler: true);
1744internal ImmutableArray<BoundExpression> MakeTempsForDiscardArguments(ImmutableArray<BoundExpression> arguments, ArrayBuilder<LocalSymbol> builder)
1862locals: ImmutableArray<LocalSymbol>.Empty,
Operations\CSharpOperationFactory.cs (118)
319ImmutableArray<IOperation> children = GetIOperationChildren(boundNode);
337public ImmutableArray<TOperation> CreateFromArray<TBoundNode, TOperation>(ImmutableArray<TBoundNode> boundNodes) where TBoundNode : BoundNode where TOperation : class, IOperation
341return ImmutableArray<TOperation>.Empty;
373internal ImmutableArray<IOperation> GetIOperationChildren(IBoundNodeWithIOperationChildren boundNodeWithChildren)
375var children = boundNodeWithChildren.Children;
378return ImmutableArray<IOperation>.Empty;
396internal ImmutableArray<IVariableDeclaratorOperation> CreateVariableDeclarator(BoundNode declaration, SyntaxNode declarationSyntax)
450ImmutableArray<IOperation> children = CreateFromArray<BoundNode, IOperation>(((IBoundInvalidNode)boundCall).InvalidNodeChildren);
457ImmutableArray<IArgumentOperation> arguments = DeriveArguments(boundCall);
480ImmutableArray<IOperation> children = CreateFromArray<BoundNode, IOperation>(((IBoundInvalidNode)boundFunctionPointerInvocation).InvalidNodeChildren);
485var arguments = DeriveArguments(boundFunctionPointerInvocation);
511var namedArguments = CreateFromArray<BoundAssignmentOperator, IOperation>(boundAttribute.NamedArguments);
520internal ImmutableArray<IOperation> CreateIgnoredDimensions(BoundNode declaration)
533var declarations = ((BoundMultipleLocalDeclarationsBase)declaration).LocalDeclarations;
534ImmutableArray<BoundExpression> dimensions;
543dimensions = ImmutableArray<BoundExpression>.Empty;
615var arguments = ImmutableArray<IArgumentOperation>.Empty;
633var children = CreateFromArray<BoundNode, IOperation>(((IBoundInvalidNode)boundIndexerAccess).InvalidNodeChildren);
637ImmutableArray<IArgumentOperation> arguments = DeriveArguments(boundIndexerAccess);
697ImmutableArray<IOperation> initializers = GetAnonymousObjectCreationInitializers(boundAnonymousObjectCreationExpression.Arguments, boundAnonymousObjectCreationExpression.Declarations, syntax, type, isImplicit);
713var children = CreateFromArray<BoundNode, IOperation>(((IBoundInvalidNode)boundObjectCreationExpression).InvalidNodeChildren);
721ImmutableArray<IOperation> initializers = GetAnonymousObjectCreationInitializers(
723declarations: ImmutableArray<BoundAnonymousPropertyDeclaration>.Empty,
730ImmutableArray<IArgumentOperation> arguments = DeriveArguments(boundObjectCreationExpression);
750ImmutableArray<IOperation> arguments = CreateFromArray<BoundExpression, IOperation>(boundDynamicObjectCreationExpression.Arguments);
751ImmutableArray<string?> argumentNames = boundDynamicObjectCreationExpression.ArgumentNamesOpt.NullToEmpty();
752ImmutableArray<RefKind> argumentRefKinds = boundDynamicObjectCreationExpression.ArgumentRefKindsOpt.NullToEmpty();
764return CreateBoundDynamicMemberAccessOperation(implicitReceiver, typeArgumentsOpt: ImmutableArray<TypeSymbol>.Empty, memberName: "Add",
779ImmutableArray<IOperation> arguments = CreateFromArray<BoundExpression, IOperation>(boundDynamicInvocation.Arguments);
780ImmutableArray<string?> argumentNames = boundDynamicInvocation.ArgumentNamesOpt.NullToEmpty();
781ImmutableArray<RefKind> argumentRefKinds = boundDynamicInvocation.ArgumentRefKindsOpt.NullToEmpty();
803internal ImmutableArray<IOperation> CreateBoundDynamicIndexerAccessArguments(BoundExpression indexer)
822ImmutableArray<IOperation> arguments = CreateBoundDynamicIndexerAccessArguments(boundDynamicIndexerAccess);
823ImmutableArray<string?> argumentNames = boundDynamicIndexerAccess.ArgumentNamesOpt.NullToEmpty();
824ImmutableArray<RefKind> argumentRefKinds = boundDynamicIndexerAccess.ArgumentRefKindsOpt.NullToEmpty();
833ImmutableArray<IOperation> initializers = CreateFromArray<BoundExpression, IOperation>(BoundObjectCreationExpression.GetChildInitializers(boundObjectInitializerExpression));
842ImmutableArray<IOperation> initializers = CreateFromArray<BoundExpression, IOperation>(BoundObjectCreationExpression.GetChildInitializers(boundCollectionInitializerExpression));
861ImmutableArray<IOperation> arguments = CreateBoundDynamicIndexerAccessArguments(boundObjectInitializerMember);
862ImmutableArray<string?> argumentNames = boundObjectInitializerMember.ArgumentNamesOpt.NullToEmpty();
863ImmutableArray<RefKind> argumentRefKinds = boundObjectInitializerMember.ArgumentRefKindsOpt.NullToEmpty();
879ImmutableArray<IArgumentOperation> arguments;
889var children = CreateFromArray<BoundNode, IOperation>(((IBoundInvalidNode)boundObjectInitializerMember).InvalidNodeChildren);
897arguments = ImmutableArray<IArgumentOperation>.Empty;
914ImmutableArray<ITypeSymbol> typeArguments = ImmutableArray<ITypeSymbol>.Empty;
927ImmutableArray<IArgumentOperation> arguments = DeriveArguments(boundCollectionElementInitializer);
935var children = CreateFromArray<BoundNode, IOperation>(((IBoundInvalidNode)boundCollectionElementInitializer).InvalidNodeChildren);
951ImmutableArray<TypeSymbol> typeArgumentsOpt,
964ImmutableArray<ITypeSymbol> typeArguments = ImmutableArray<ITypeSymbol>.Empty;
977ImmutableArray<IOperation> arguments = CreateFromArray<BoundExpression, IOperation>(boundCollectionElementInitializer.Arguments);
981return new DynamicInvocationOperation(operation, arguments, argumentNames: ImmutableArray<string?>.Empty, argumentRefKinds: ImmutableArray<RefKind>.Empty, _semanticModel, syntax, type, isImplicit);
1206ImmutableArray<IOperation> dimensionSizes = CreateFromArray<BoundExpression, IOperation>(boundArrayCreation.Bounds);
1217ImmutableArray<IOperation> elementValues = CreateFromArray<BoundExpression, IOperation>(boundArrayInitialization.Initializers);
1229ImmutableArray<IOperation> elements = expr.Elements.SelectAsArray((element, expr) => CreateBoundCollectionExpressionElement(expr, element), expr);
1409var children = CreateFromArray<BoundExpression, IOperation>(boundBadExpression.ChildBoundNodes);
1627ImmutableArray<IOperation> indices = CreateFromArray<BoundExpression, IOperation>(boundArrayAccess.Indices);
1726ImmutableArray<IFieldSymbol> initializedFields = ImmutableArray.Create<IFieldSymbol>(boundFieldEqualsValue.Field.GetPublicSymbol());
1735ImmutableArray<IPropertySymbol> initializedProperties = ImmutableArray.Create<IPropertySymbol>(boundPropertyEqualsValue.Property.GetPublicSymbol());
1753ImmutableArray<IOperation> operations = CreateFromArray<BoundStatement, IOperation>(boundBlock.Statements);
1754ImmutableArray<ILocalSymbol> locals = boundBlock.Locals.GetPublicSymbols();
1848ImmutableArray<ILocalSymbol> locals = boundWhileStatement.Locals.GetPublicSymbols();
1866ImmutableArray<ILocalSymbol> locals = boundDoStatement.Locals.GetPublicSymbols();
1874ImmutableArray<IOperation> before = CreateFromArray<BoundStatement, IOperation>(ToStatements(boundForStatement.Initializer));
1876ImmutableArray<IOperation> atLoopBottom = CreateFromArray<BoundStatement, IOperation>(ToStatements(boundForStatement.Increment));
1878ImmutableArray<ILocalSymbol> locals = boundForStatement.OuterLocals.GetPublicSymbols();
1879ImmutableArray<ILocalSymbol> conditionLocals = boundForStatement.InnerLocals.GetPublicSymbols();
1932ImmutableArray<IArgumentOperation> createArgumentOperations(MethodArgumentInfo? info)
1940return ImmutableArray<IArgumentOperation>.Empty;
1942var args = DeriveArguments(
1969return new VariableDeclaratorOperation(local.GetPublicSymbol(), initializer: null, ignoredArguments: ImmutableArray<IOperation>.Empty, semanticModel: _semanticModel, syntax: declaratorSyntax, isImplicit: false);
1981var nextVariables = ImmutableArray<IOperation>.Empty;
1985ImmutableArray<ILocalSymbol> locals = boundForEachStatement.IterationVariables.GetPublicSymbols();
1998ImmutableArray<ICatchClauseOperation> catches = CreateFromArray<BoundCatchBlock, ICatchClauseOperation>(boundTryStatement.CatchBlocks);
2013ImmutableArray<ILocalSymbol> locals = boundCatchBlock.Locals.GetPublicSymbols();
2023ImmutableArray<ILocalSymbol> locals = boundFixedStatement.Locals.GetPublicSymbols();
2035ImmutableArray<ILocalSymbol> locals = boundUsingStatement.Locals.GetPublicSymbols();
2095var children = CreateFromArray<BoundNode, IOperation>(boundBadStatement.ChildBoundNodes);
2141ImmutableArray<IVariableDeclaratorOperation> declarators = CreateVariableDeclarator(boundLocalDeclaration, varDeclaration);
2142ImmutableArray<IOperation> ignoredDimensions = CreateIgnoredDimensions(boundLocalDeclaration);
2161ImmutableArray<IVariableDeclaratorOperation> declarators = CreateVariableDeclarator(boundMultipleLocalDeclarations, declarationSyntax);
2162ImmutableArray<IOperation> ignoredDimensions = CreateIgnoredDimensions(boundMultipleLocalDeclarations);
2250ImmutableArray<IOperation> elements = CreateFromArray<BoundExpression, IOperation>(boundTupleExpression.Arguments);
2254private IInterpolatedStringOperation CreateBoundInterpolatedStringExpressionOperation(BoundInterpolatedString boundInterpolatedString, ImmutableArray<(bool IsLiteral, bool HasAlignment, bool HasFormat)>? positionInfo = null)
2263ImmutableArray<IInterpolatedStringContentOperation> parts = CreateBoundInterpolatedStringContentOperation(boundInterpolatedString.Parts, positionInfo);
2271internal ImmutableArray<IInterpolatedStringContentOperation> CreateBoundInterpolatedStringContentOperation(ImmutableArray<BoundExpression> parts, ImmutableArray<(bool IsLiteral, bool HasAlignment, bool HasFormat)>? positionInfo)
2275ImmutableArray<IInterpolatedStringContentOperation> createNonHandlerInterpolatedStringContent()
2293ImmutableArray<IInterpolatedStringContentOperation> createHandlerInterpolatedStringContent(ImmutableArray<(bool IsLiteral, bool HasAlignment, bool HasFormat)> positionInfo)
2377static (BoundExpression Value, BoundExpression? Alignment, BoundExpression? Format) getCallInfo(ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, (bool IsLiteral, bool HasAlignment, bool HasFormat) currentPosition)
2489return new InvalidOperation(ImmutableArray<IOperation>.Empty, _semanticModel, syntax, type, placeholder.ConstantValueOpt, isImplicit);
2556ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundRecursivePattern.Deconstruction is { IsDefault: false } deconstructions
2558: ImmutableArray<IPatternOperation>.Empty;
2559ImmutableArray<IPropertySubpatternOperation> propertySubpatterns = boundRecursivePattern.Properties is { IsDefault: false } properties
2561: ImmutableArray<IPropertySubpatternOperation>.Empty;
2577ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundITuplePattern.Subpatterns is { IsDefault: false } subpatterns
2579: ImmutableArray<IPatternOperation>.Empty;
2585propertySubpatterns: ImmutableArray<IPropertySubpatternOperation>.Empty,
2687ImmutableArray<ISwitchCaseOperation> cases = CreateFromArray<BoundSwitchSection, ISwitchCaseOperation>(boundSwitchStatement.SwitchSections);
2688ImmutableArray<ILocalSymbol> locals = boundSwitchStatement.InnerLocals.GetPublicSymbols();
2697ImmutableArray<ICaseClauseOperation> clauses = CreateFromArray<BoundSwitchLabel, ICaseClauseOperation>(boundSwitchSection.SwitchLabels);
2698ImmutableArray<IOperation> body = CreateFromArray<BoundStatement, IOperation>(boundSwitchSection.Statements);
2699ImmutableArray<ILocalSymbol> locals = boundSwitchSection.Locals.GetPublicSymbols();
2707ImmutableArray<ISwitchExpressionArmOperation> arms = CreateFromArray<BoundSwitchExpressionArm, ISwitchExpressionArmOperation>(boundSwitchExpression.SwitchArms);
2861var reference = OperationFactory.CreateInvalidOperation(_semanticModel, subpatternSyntax, ImmutableArray<IOperation>.Empty, isImplicit: true);
2883matchedType: previousType, deconstructSymbol: null, deconstructionSubpatterns: ImmutableArray<IPatternOperation>.Empty,
2907reference = new PropertyReferenceOperation(property.GetPublicSymbol(), constrainedToType: null, ImmutableArray<IArgumentOperation>.Empty,
2915reference = OperationFactory.CreateInvalidOperation(_semanticModel, nameSyntax, ImmutableArray<IOperation>.Empty, isImplicit: false);
2940private ImmutableArray<IArgumentOperation> CreateDisposeArguments(MethodArgumentInfo patternDisposeInfo)
2947return ImmutableArray<IArgumentOperation>.Empty;
2950var args = DeriveArguments(
Operations\CSharpOperationFactory_Methods.cs (26)
18internal ImmutableArray<BoundStatement> ToStatements(BoundStatement? statement)
22return ImmutableArray<BoundStatement>.Empty;
75return new VariableInitializerOperation(locals: ImmutableArray<ILocalSymbol>.Empty, value, _semanticModel, initializerSyntax, initializerIsImplicit);
87ImmutableArray<IOperation> ignoredDimensions = CreateFromArray<BoundExpression, IOperation>(boundLocalDeclaration.ArgumentsOpt);
95return boundLocal == null ? null : new VariableDeclaratorOperation(boundLocal.LocalSymbol.GetPublicSymbol(), initializer: null, ignoredArguments: ImmutableArray<IOperation>.Empty, semanticModel: _semanticModel, syntax: boundLocal.Syntax, isImplicit: false);
194internal ImmutableArray<IArgumentOperation> DeriveArguments(BoundNode containingExpression)
264private ImmutableArray<IArgumentOperation> DeriveArguments(
266ImmutableArray<BoundExpression> boundArguments,
267ImmutableArray<int> argumentsToParametersOpt,
276return ImmutableArray<IArgumentOperation>.Empty;
288private static ImmutableArray<IArgumentOperation> MakeArgumentsInEvaluationOrder(
290ImmutableArray<BoundExpression> arguments,
292ImmutableArray<int> argsToParamsOpt,
307ImmutableArray<ParameterSymbol> parameters = methodOrIndexer.GetParameters();
359private static ImmutableArray<IArgumentOperation> BuildArgumentsInEvaluationOrder(
362ImmutableArray<int> argsToParamsOpt,
364ImmutableArray<BoundExpression> arguments)
366ImmutableArray<ParameterSymbol> parameters = methodOrIndexer.GetParameters();
387internal static ImmutableArray<BoundNode> CreateInvalidChildrenFromArgumentsExpression(BoundNode? receiverOpt, ImmutableArray<BoundExpression> arguments, BoundExpression? additionalNodeOpt = null)
407internal ImmutableArray<IOperation> GetAnonymousObjectCreationInitializers(
408ImmutableArray<BoundExpression> arguments,
409ImmutableArray<BoundAnonymousPropertyDeclaration> declarations,
443arguments: ImmutableArray<IArgumentOperation>.Empty,
455ImmutableArray<IArgumentOperation>.Empty,
474static BoundAnonymousPropertyDeclaration? getDeclaration(ImmutableArray<BoundAnonymousPropertyDeclaration> declarations, PropertySymbol currentProperty, ref int currentDeclarationIndex)
Symbols\AliasSymbol.cs (6)
50private readonly ImmutableArray<Location> _locations; // NOTE: can be empty for the "global" alias.
55protected AliasSymbol(string aliasName, Symbol containingSymbol, ImmutableArray<Location> locations, bool isExtern)
70return new AliasSymbolFromResolvedTarget(globalNamespace, "global", globalNamespace, ImmutableArray<Location>.Empty, isExtern: false);
118public override ImmutableArray<Location> Locations
126public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences
436internal AliasSymbolFromResolvedTarget(NamespaceOrTypeSymbol target, string aliasName, Symbol containingSymbol, ImmutableArray<Location> locations, bool isExtern)
Symbols\ArrayTypeSymbol.cs (40)
46return CreateMDArray(declaringAssembly, elementTypeWithAnnotations, rank, default(ImmutableArray<int>), default(ImmutableArray<int>));
52ImmutableArray<int> sizes,
53ImmutableArray<int> lowerBounds,
69ImmutableArray<int> sizes,
70ImmutableArray<int> lowerBounds)
85ImmutableArray<NamedTypeSymbol> constructedInterfaces)
104private static ImmutableArray<NamedTypeSymbol> GetSZArrayInterfaces(
149public virtual ImmutableArray<int> Sizes
153return ImmutableArray<int>.Empty;
162public virtual ImmutableArray<int> LowerBounds
166return default(ImmutableArray<int>);
177var thisLowerBounds = this.LowerBounds;
184var otherLowerBounds = other.LowerBounds;
263public override ImmutableArray<Symbol> GetMembers()
265return ImmutableArray<Symbol>.Empty;
268public override ImmutableArray<Symbol> GetMembers(string name)
270return ImmutableArray<Symbol>.Empty;
273public override ImmutableArray<NamedTypeSymbol> GetTypeMembers()
275return ImmutableArray<NamedTypeSymbol>.Empty;
278public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name)
280return ImmutableArray<NamedTypeSymbol>.Empty;
283public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity)
285return ImmutableArray<NamedTypeSymbol>.Empty;
312public override ImmutableArray<Location> Locations
316return ImmutableArray<Location>.Empty;
320public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences
324return ImmutableArray<SyntaxReference>.Empty;
393internal override bool ApplyNullableTransforms(byte defaultTransformFlag, ImmutableArray<byte> transforms, ref int position, out TypeSymbol result)
511private readonly ImmutableArray<NamedTypeSymbol> _interfaces;
516ImmutableArray<NamedTypeSymbol> constructedInterfaces)
550internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null)
597internal sealed override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null)
599return ImmutableArray<NamedTypeSymbol>.Empty;
629private readonly ImmutableArray<int> _sizes;
630private readonly ImmutableArray<int> _lowerBounds;
635ImmutableArray<int> sizes,
636ImmutableArray<int> lowerBounds,
651public override ImmutableArray<int> Sizes
659public override ImmutableArray<int> LowerBounds
Symbols\Attributes\SourceAttributeData.cs (16)
23private readonly ImmutableArray<TypedConstant> _constructorArguments;
24private readonly ImmutableArray<int> _constructorArgumentsSourceIndices;
25private readonly ImmutableArray<KeyValuePair<string, TypedConstant>> _namedArguments;
35ImmutableArray<TypedConstant> constructorArguments,
36ImmutableArray<int> constructorArgumentsSourceIndices,
37ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments,
67constructorArguments: ImmutableArray<TypedConstant>.Empty,
69namedArguments: ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty,
80ImmutableArray<TypedConstant> constructorArguments,
81ImmutableArray<int> constructorArgumentsSourceIndices,
82ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments,
118internal ImmutableArray<int> ConstructorArgumentsSourceIndices
202protected internal sealed override ImmutableArray<TypedConstant> CommonConstructorArguments
207protected internal sealed override ImmutableArray<KeyValuePair<string, TypedConstant>> CommonNamedArguments
242ImmutableArray<ParameterSymbol> parameters = ctor.Parameters;
256bool matches(byte[] targetSignature, ImmutableArray<ParameterSymbol> parameters, ref TypeSymbol? lazySystemType)
Symbols\Compilation_WellKnownMembers.cs (22)
247var members = declaringType.GetMembers(descriptor.Name);
251internal static Symbol? GetRuntimeMember(ImmutableArray<Symbol> members, in MemberDescriptor descriptor, SignatureComparer<MethodSymbol, FieldSymbol, PropertySymbol, TypeSymbol, ParameterSymbol> comparer, AssemblySymbol? accessWithinOpt)
390ImmutableArray<TypedConstant> arguments = default,
391ImmutableArray<KeyValuePair<WellKnownMember, TypedConstant>> namedArguments = default,
405arguments = ImmutableArray<TypedConstant>.Empty;
408ImmutableArray<KeyValuePair<string, TypedConstant>> namedStringArguments;
411namedStringArguments = ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty;
452arguments: ImmutableArray<TypedConstant>.Empty,
453namedArguments: ImmutableArray<KeyValuePair<string, TypedConstant>>.Empty);
788var transformFlags = DynamicTransformsEncoder.Encode(type, refKindOpt, customModifiersCount, booleanType);
790var arguments = ImmutableArray.Create(new TypedConstant(boolArray, transformFlags));
807var args = ImmutableArray.Create(new TypedConstant(stringArray, names));
815var arguments = ImmutableArray.Create(
817var namedArguments = ImmutableArray.Create(
825public static ImmutableArray<string?> Encode(TypeSymbol type)
838public static ImmutableArray<TypedConstant> Encode(TypeSymbol type, TypeSymbol stringType)
889internal static ImmutableArray<TypedConstant> Encode(TypeSymbol type, RefKind refKind, int customModifiersCount, TypeSymbol booleanType)
901internal static ImmutableArray<bool> Encode(TypeSymbol type, RefKind refKind, int customModifiersCount)
908internal static ImmutableArray<bool> EncodeWithoutCustomModifierFlags(TypeSymbol type, RefKind refKind)
1010void handle(RefKind refKind, ImmutableArray<CustomModifier> customModifiers, TypeWithAnnotations twa)
1131protected override ImmutableArray<ParameterSymbol> GetParameters(MethodSymbol method)
1136protected override ImmutableArray<ParameterSymbol> GetParameters(PropertySymbol property)
Symbols\ConstraintsHelper.cs (29)
75ImmutableArray<TypeWithAnnotations> constraintTypes,
132ImmutableArray<TypeWithAnnotations> constraintTypes,
141ImmutableArray<NamedTypeSymbol> interfaces;
148interfaces = ImmutableArray<NamedTypeSymbol>.Empty;
344internal static ImmutableArray<ImmutableArray<TypeWithAnnotations>> MakeTypeParameterConstraintTypes(
347ImmutableArray<TypeParameterSymbol> typeParameters,
354return ImmutableArray<ImmutableArray<TypeWithAnnotations>>.Empty;
362ImmutableArray<TypeParameterConstraintClause> clauses;
368return ImmutableArray<ImmutableArray<TypeWithAnnotations>>.Empty;
374internal static ImmutableArray<TypeParameterConstraintKind> MakeTypeParameterConstraintKinds(
377ImmutableArray<TypeParameterSymbol> typeParameters,
383return ImmutableArray<TypeParameterConstraintKind>.Empty;
386ImmutableArray<TypeParameterConstraintClause> clauses;
409return ImmutableArray<TypeParameterConstraintKind>.Empty;
415internal static ImmutableArray<TypeParameterConstraintClause> AdjustConstraintKindsBasedOnConstraintTypes(ImmutableArray<TypeParameterSymbol> typeParameters, ImmutableArray<TypeParameterConstraintClause> constraintClauses)
470var constraintTypes = bounds.ConstraintTypes;
602ImmutableArray<Location> elementLocations,
761var array = type.OriginalDefinition.InterfacesNoUseSiteDiagnostics(basesBeingResolved);
893ImmutableArray<TypeParameterSymbol> typeParameters,
894ImmutableArray<TypeWithAnnotations> typeArguments,
1076ImmutableArray<TypeWithAnnotations> originalConstraintTypes = typeParameter.ConstraintTypesWithDefinitionUseSiteDiagnostics(ref useSiteInfo);
1427private static bool IsReferenceType(TypeParameterSymbol typeParameter, ImmutableArray<TypeWithAnnotations> constraintTypes)
1432private static bool IsValueType(TypeParameterSymbol typeParameter, ImmutableArray<TypeWithAnnotations> constraintTypes)
1443private static void AddInterfaces(ArrayBuilder<NamedTypeSymbol> builder, ImmutableArray<NamedTypeSymbol> interfaces)
Symbols\ExtendedErrorTypeSymbol.cs (10)
25private readonly ImmutableArray<Symbol> _candidateSymbols; // Best guess at what user meant, but was wrong.
52private ExtendedErrorTypeSymbol(NamespaceOrTypeSymbol? containingSymbol, string name, int arity, DiagnosticInfo? errorInfo, bool unreported, bool variableUsedBeforeDeclaration, ImmutableArray<Symbol> candidateSymbols, LookupResultKind resultKind)
74internal ExtendedErrorTypeSymbol(NamespaceOrTypeSymbol? containingSymbol, ImmutableArray<Symbol> candidateSymbols, LookupResultKind resultKind, DiagnosticInfo errorInfo, int arity, bool unreported = false)
88private static ImmutableArray<Symbol> UnwrapErrorCandidates(ImmutableArray<Symbol> candidateSymbols)
115public override ImmutableArray<Symbol> CandidateSymbols => _candidateSymbols.NullToEmpty();
176public override ImmutableArray<Location> Locations
180return ImmutableArray<Location>.Empty;
197internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved)
199return ImmutableArray<NamedTypeSymbol>.Empty;
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (65)
20private readonly ImmutableArray<FunctionPointerParameterSymbol> _parameters;
87var refCustomModifiers = ImmutableArray<CustomModifier>.Empty;
246ImmutableArray<CustomModifier> refCustomModifiers,
248ImmutableArray<TypeWithAnnotations> parameterTypes,
249ImmutableArray<ImmutableArray<CustomModifier>> parameterRefCustomModifiers,
250ImmutableArray<RefKind> parameterRefKinds,
269ImmutableArray<CustomModifier> callingConventionModifiers,
272ImmutableArray<TypeWithAnnotations> parameterTypes,
273ImmutableArray<RefKind> parameterRefKinds,
284ImmutableArray<CustomModifier> refCustomModifiers;
287refCustomModifiers = ImmutableArray<CustomModifier>.Empty;
330public static FunctionPointerMethodSymbol CreateFromMetadata(ModuleSymbol containingModule, CallingConvention callingConvention, ImmutableArray<ParamInfo<TypeSymbol>> retAndParamTypes)
335ImmutableArray<TypeWithAnnotations> substitutedParameterTypes,
336ImmutableArray<CustomModifier> refCustomModifiers = default,
337ImmutableArray<ImmutableArray<CustomModifier>> paramRefCustomModifiers = default)
354var mergedParameterTypes = ImmutableArray<TypeWithAnnotations>.Empty;
404var transformedParameterTypes = ImmutableArray<TypeWithAnnotations>.Empty;
445ImmutableArray<CustomModifier> refCustomModifiers,
446ImmutableArray<ParameterSymbol> originalParameters,
447ImmutableArray<TypeWithAnnotations> substitutedParameterTypes,
448ImmutableArray<ImmutableArray<CustomModifier>> substitutedRefCustomModifiers,
466var customModifiers = substitutedRefCustomModifiers.IsDefault ? originalParam.RefCustomModifiers : substitutedRefCustomModifiers[i];
479_parameters = ImmutableArray<FunctionPointerParameterSymbol>.Empty;
490ImmutableArray<CustomModifier> refCustomModifiers,
491ImmutableArray<TypeWithAnnotations> parameterTypes,
492ImmutableArray<ImmutableArray<CustomModifier>> parameterRefCustomModifiers,
493ImmutableArray<RefKind> parameterRefKinds,
513static ImmutableArray<CustomModifier> getCustomModifierArrayForRefKind(RefKind refKind, CSharpCompilation compilation)
514=> GetCustomModifierForRefKind(refKind, compilation) is { } modifier ? ImmutableArray.Create(modifier) : ImmutableArray<CustomModifier>.Empty;
521ImmutableArray<CustomModifier> refCustomModifiers,
540: ImmutableArray<FunctionPointerParameterSymbol>.Empty;
543private FunctionPointerMethodSymbol(CallingConvention callingConvention, ImmutableArray<ParamInfo<TypeSymbol>> retAndParamTypes, bool useUpdatedEscapeRules)
558static ImmutableArray<FunctionPointerParameterSymbol> makeParametersFromMetadata(ReadOnlySpan<ParamInfo<TypeSymbol>> parameterTypes, FunctionPointerMethodSymbol parent)
567var paramRefCustomMods = CSharpCustomModifier.Convert(param.RefCustomModifiers);
577return ImmutableArray<FunctionPointerParameterSymbol>.Empty;
581static RefKind getRefKind(ParamInfo<TypeSymbol> param, ImmutableArray<CustomModifier> paramRefCustomMods, RefKind hasInRefKind, RefKind hasOutRefKind, bool requiresLocationAllowed)
603internal FunctionPointerMethodSymbol ApplyNullableTransforms(byte defaultTransformFlag, ImmutableArray<byte> transforms, ref int position)
606var newParamTypes = ImmutableArray<TypeWithAnnotations>.Empty;
639internal override ImmutableArray<NamedTypeSymbol> UnmanagedCallingConventionTypes
645return ImmutableArray<NamedTypeSymbol>.Empty;
648var modifiersToSearch = RefKind != RefKind.None ? RefCustomModifiers : ReturnTypeWithAnnotations.CustomModifiers;
651return ImmutableArray<NamedTypeSymbol>.Empty;
671var modifiersToSearch = RefKind != RefKind.None ? RefCustomModifiers : ReturnTypeWithAnnotations.CustomModifiers;
769public override ImmutableArray<ParameterSymbol> Parameters =>
771public override ImmutableArray<CustomModifier> RefCustomModifiers { get; }
820public override ImmutableArray<TypeParameterSymbol> TypeParameters => ImmutableArray<TypeParameterSymbol>.Empty;
824public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations => ImmutableArray<MethodSymbol>.Empty;
826public override ImmutableArray<Location> Locations => ImmutableArray<Location>.Empty;
827public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences => ImmutableArray<SyntaxReference>.Empty;
836public override ImmutableArray<TypeWithAnnotations> TypeArgumentsWithAnnotations => ImmutableArray<TypeWithAnnotations>.Empty;
844internal override ImmutableArray<string> GetAppliedConditionalSymbols() => ImmutableArray<string>.Empty;
Symbols\FunctionPointers\FunctionPointerTypeSymbol.cs (28)
34ImmutableArray<CustomModifier> refCustomModifiers,
36ImmutableArray<TypeWithAnnotations> parameterTypes,
37ImmutableArray<ImmutableArray<CustomModifier>> parameterRefCustomModifiers,
38ImmutableArray<RefKind> parameterRefKinds,
47ImmutableArray<CustomModifier> callingConventionModifiers,
50ImmutableArray<TypeWithAnnotations> parameterTypes,
51ImmutableArray<RefKind> parameterRefKinds,
55public static FunctionPointerTypeSymbol CreateFromMetadata(ModuleSymbol containingModule, Cci.CallingConvention callingConvention, ImmutableArray<ParamInfo<TypeSymbol>> retAndParamTypes)
61ImmutableArray<TypeWithAnnotations> substitutedParameterTypes,
62ImmutableArray<CustomModifier> refCustomModifiers,
63ImmutableArray<ImmutableArray<CustomModifier>> paramRefCustomModifiers)
81public override ImmutableArray<Location> Locations => ImmutableArray<Location>.Empty;
82public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences => ImmutableArray<SyntaxReference>.Empty;
93public override ImmutableArray<Symbol> GetMembers() => ImmutableArray<Symbol>.Empty;
94public override ImmutableArray<Symbol> GetMembers(string name) => ImmutableArray<Symbol>.Empty;
95public override ImmutableArray<NamedTypeSymbol> GetTypeMembers() => ImmutableArray<NamedTypeSymbol>.Empty;
96public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name) => ImmutableArray<NamedTypeSymbol>.Empty;
98internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol>? basesBeingResolved = null) => ImmutableArray<NamedTypeSymbol>.Empty;
136internal override bool ApplyNullableTransforms(byte defaultTransformFlag, ImmutableArray<byte> transforms, ref int position, out TypeSymbol result)
Symbols\Metadata\PE\DynamicTypeDecoder.cs (13)
34private readonly ImmutableArray<bool> _dynamicTransformFlags;
44private DynamicTypeDecoder(ImmutableArray<bool> dynamicTransformFlags, bool haveCustomModifierFlags, bool checkLength, AssemblySymbol containingAssembly)
73ImmutableArray<bool> dynamicTransformFlags;
90ImmutableArray<bool> dynamicTransformFlags,
108ImmutableArray<bool> dynamicTransformFlags,
242ImmutableArray<TypeWithAnnotations> typeArguments = namedType.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics;
244ImmutableArray<TypeWithAnnotations> transformedTypeArguments = TransformTypeArguments(typeArguments); // Note, modifiers are not involved, this is behavior of the native compiler.
270private ImmutableArray<TypeWithAnnotations> TransformTypeArguments(ImmutableArray<TypeWithAnnotations> typeArguments)
285return default(ImmutableArray<TypeWithAnnotations>);
360var transformedParameters = ImmutableArray<TypeWithAnnotations>.Empty;
398static (TypeWithAnnotations, bool madeChanges) handle(ref DynamicTypeDecoder decoder, RefKind refKind, ImmutableArray<CustomModifier> refCustomModifiers, TypeWithAnnotations typeWithAnnotations)
Symbols\Metadata\PE\PEModuleSymbol.cs (25)
79internal readonly ImmutableArray<MetadataLocation> MetadataLocation;
86private ImmutableArray<CSharpAttributeData> _lazyCustomAttributes;
91private ImmutableArray<CSharpAttributeData> _lazyAssemblyAttributes;
234public override ImmutableArray<Location> Locations
242public override ImmutableArray<CSharpAttributeData> GetAttributes()
251internal ImmutableArray<CSharpAttributeData> GetAssemblyAttributes()
290(moduleAssemblyAttributesBuilder != null) ? moduleAssemblyAttributesBuilder.ToImmutableAndFree() : ImmutableArray<CSharpAttributeData>.Empty,
291default(ImmutableArray<CSharpAttributeData>));
296internal void LoadCustomAttributes(EntityHandle token, ref ImmutableArray<CSharpAttributeData> customAttributes)
298var loaded = GetCustomAttributesForToken(token);
303ref ImmutableArray<CSharpAttributeData> customAttributes)
305var loadedCustomAttributes = GetCustomAttributesFilterCompilerAttributes(token, out _, out _);
309internal ImmutableArray<CSharpAttributeData> GetCustomAttributesForToken(EntityHandle token,
316internal ImmutableArray<CSharpAttributeData> GetCustomAttributesForToken(EntityHandle token,
329internal ImmutableArray<CSharpAttributeData> GetCustomAttributesForToken(EntityHandle token,
410return ImmutableArray<CSharpAttributeData>.Empty;
416internal ImmutableArray<CSharpAttributeData> GetCustomAttributesForToken(EntityHandle token)
428internal ImmutableArray<CSharpAttributeData> GetCustomAttributesForToken(EntityHandle token,
466private ImmutableArray<CSharpAttributeData> GetCustomAttributesFilterCompilerAttributes(EntityHandle token, out bool foundExtension, out bool foundReadOnly)
468var result = GetCustomAttributesForToken(
481Dictionary<ReadOnlyMemory<char>, ImmutableArray<PENamedTypeSymbol>> typesDict)
485foreach (var types in typesDict.Values)
529internal override ImmutableArray<byte> GetHash(AssemblyHashAlgorithm algorithmId)
667ImmutableArray<CSharpAttributeData> assemblyAttributes = GetAssemblyAttributes();
680ImmutableArray<CSharpAttributeData> assemblyAttributes = GetAssemblyAttributes();
Symbols\Metadata\PE\PENamedTypeSymbol.cs (68)
33private static readonly Dictionary<ReadOnlyMemory<char>, ImmutableArray<PENamedTypeSymbol>> s_emptyNestedTypes =
34new Dictionary<ReadOnlyMemory<char>, ImmutableArray<PENamedTypeSymbol>>(EmptyReadOnlyMemoryOfCharComparer.Instance);
55private ImmutableArray<Symbol> _lazyMembersInDeclarationOrder;
61private Dictionary<string, ImmutableArray<Symbol>> _lazyMembersByName;
67private Dictionary<ReadOnlyMemory<char>, ImmutableArray<PENamedTypeSymbol>> _lazyNestedTypes;
77private ImmutableArray<NamedTypeSymbol> _lazyInterfaces = default(ImmutableArray<NamedTypeSymbol>);
79private ImmutableArray<NamedTypeSymbol> _lazyDeclaredInterfaces = default(ImmutableArray<NamedTypeSymbol>);
135internal ImmutableArray<PEFieldSymbol> lazyInstanceEnumFields;
139internal ImmutableArray<CSharpAttributeData> lazyCustomAttributes;
140internal ImmutableArray<string> lazyConditionalAttributeSymbols;
154internal ImmutableArray<byte> lazyFilePathChecksum = default;
488ImmutableArray<TypeParameterSymbol> combinedTypeParameters = @this.TypeParameters.Concat(method.TypeParameters);
679internal override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved = null)
683ImmutableInterlocked.InterlockedCompareExchange(ref _lazyInterfaces, MakeAcyclicInterfaces(), default(ImmutableArray<NamedTypeSymbol>));
689internal override ImmutableArray<NamedTypeSymbol> GetInterfacesToEmit()
726internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved)
730ImmutableInterlocked.InterlockedCompareExchange(ref _lazyDeclaredInterfaces, MakeDeclaredInterfaces(), default(ImmutableArray<NamedTypeSymbol>));
758private ImmutableArray<NamedTypeSymbol> MakeDeclaredInterfaces()
786return ImmutableArray<NamedTypeSymbol>.Empty;
890public override ImmutableArray<CSharpAttributeData> GetAttributes()
895return ImmutableArray<CSharpAttributeData>.Empty;
1094public override ImmutableArray<Symbol> GetMembers()
1148ImmutableArray<Symbol> staticFields = GetMembers();
1258ImmutableArray<Symbol> members = GetMembers();
1361internal override ImmutableArray<Symbol> GetEarlyAttributeDecodingMembers()
1366internal override ImmutableArray<Symbol> GetEarlyAttributeDecodingMembers(string name)
1618var peMembers = members.ToImmutableAndFree();
1625var membersInDeclarationOrder = members.ToImmutable();
1654Dictionary<string, ImmutableArray<Symbol>> membersDict = GroupByName(members);
1687internal override ImmutableArray<Symbol> GetSimpleNonTypeMembers(string name)
1691ImmutableArray<Symbol> m;
1694m = ImmutableArray<Symbol>.Empty;
1700public override ImmutableArray<Symbol> GetMembers(string name)
1704ImmutableArray<Symbol> m;
1707m = ImmutableArray<Symbol>.Empty;
1711ImmutableArray<PENamedTypeSymbol> t;
1729var candidates = this.GetMembers(FixedFieldImplementationType.FixedElementFieldName);
1739internal override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered()
1744public override ImmutableArray<NamedTypeSymbol> GetTypeMembers()
1750private ImmutableArray<NamedTypeSymbol> GetMemberTypesPrivate()
1781public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name)
1785ImmutableArray<PENamedTypeSymbol> t;
1792return ImmutableArray<NamedTypeSymbol>.Empty;
1795public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity)
1800public override ImmutableArray<Location> Locations
1808public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences
1812return ImmutableArray<SyntaxReference>.Empty;
1832internal override ImmutableArray<TypeWithAnnotations> TypeArgumentsWithAnnotationsNoUseSiteDiagnostics
1836return ImmutableArray<TypeWithAnnotations>.Empty;
1840public override ImmutableArray<TypeParameterSymbol> TypeParameters
1844return ImmutableArray<TypeParameterSymbol>.Empty;
2092private ImmutableArray<NamedTypeSymbol> MakeAcyclicInterfaces()
2115ImmutableArray<TypeDefinitionHandle> nestedTypeDefs;
2340private static Dictionary<string, ImmutableArray<Symbol>> GroupByName(ArrayBuilder<Symbol> symbols)
2345private static Dictionary<ReadOnlyMemory<char>, ImmutableArray<PENamedTypeSymbol>> GroupByName(ArrayBuilder<PENamedTypeSymbol> symbols)
2628internal override ImmutableArray<string> GetAppliedConditionalSymbols()
2633return ImmutableArray<string>.Empty;
2638ImmutableArray<string> conditionalSymbols = this.ContainingPEModule.Module.GetConditionalAttributeValues(_handle);
2640ImmutableInterlocked.InterlockedCompareExchange(ref uncommon.lazyConditionalAttributeSymbols, conditionalSymbols, default(ImmutableArray<string>));
2697private static int GetIndexOfFirstMember(ImmutableArray<Symbol> members, SymbolKind kind)
2714private static IEnumerable<TSymbol> GetMembers<TSymbol>(ImmutableArray<Symbol> members, SymbolKind kind, int offset = -1)
2871private ImmutableArray<TypeParameterSymbol> _lazyTypeParameters;
2891_lazyTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty;
2925internal override ImmutableArray<TypeWithAnnotations> TypeArgumentsWithAnnotationsNoUseSiteDiagnostics
2934public override ImmutableArray<TypeParameterSymbol> TypeParameters
3001var containingTypeParameters = container.GetAllTypeParameters();
Symbols\Metadata\PE\SymbolFactory.cs (12)
18internal override TypeSymbol GetMDArrayTypeSymbol(PEModuleSymbol moduleSymbol, int rank, TypeSymbol elementType, ImmutableArray<ModifierInfo<TypeSymbol>> customModifiers,
19ImmutableArray<int> sizes, ImmutableArray<int> lowerBounds)
39internal override TypeSymbol MakePointerTypeSymbol(PEModuleSymbol moduleSymbol, TypeSymbol type, ImmutableArray<ModifierInfo<TypeSymbol>> customModifiers)
49internal override TypeSymbol MakeFunctionPointerTypeSymbol(PEModuleSymbol moduleSymbol, Cci.CallingConvention callingConvention, ImmutableArray<ParamInfo<TypeSymbol>> retAndParamTypes)
64internal override TypeSymbol GetSZArrayTypeSymbol(PEModuleSymbol moduleSymbol, TypeSymbol elementType, ImmutableArray<ModifierInfo<TypeSymbol>> customModifiers)
82ImmutableArray<KeyValuePair<TypeSymbol, ImmutableArray<ModifierInfo<TypeSymbol>>>> arguments,
83ImmutableArray<bool> refersToNoPiaLocalType)
103ImmutableArray<AssemblySymbol> linkedAssemblies = moduleSymbol.ContainingAssembly.GetLinkedReferencedAssemblies();
141ImmutableArray<TypeParameterSymbol> typeParameters = genericType.GetAllTypeParameters();
167private static TypeWithAnnotations CreateType(TypeSymbol type, ImmutableArray<ModifierInfo<TypeSymbol>> customModifiers)
Symbols\Retargeting\RetargetingSymbolTranslator.cs (47)
190var newModifiers = RetargetModifiers(underlyingType.CustomModifiers, out modifiersHaveChanged);
610ImmutableArray<AssemblySymbol> assembliesToEmbedTypesFrom = this.UnderlyingModule.GetAssembliesToEmbedTypesFrom();
623ImmutableArray<AssemblySymbol> linkedAssemblies = RetargetingAssembly.GetLinkedReferencedAssemblies();
713internal ImmutableArray<CustomModifier> RetargetModifiers(ImmutableArray<CustomModifier> oldModifiers, out bool modifiersHaveChanged)
763var newRefModifiers = RetargetModifiers(signature.RefCustomModifiers, out bool symbolModified);
766var newParameterTypes = ImmutableArray<TypeWithAnnotations>.Empty;
767ImmutableArray<ImmutableArray<CustomModifier>> newParamModifiers = default;
773var newParameterCustomModifiersBuilder = ArrayBuilder<ImmutableArray<CustomModifier>>.GetInstance(paramCount);
779var newModifiers = RetargetModifiers(parameter.RefCustomModifiers, out bool customModifiersChanged);
827public ImmutableArray<Symbol> Retarget(ImmutableArray<Symbol> arr)
834public ImmutableArray<NamedTypeSymbol> Retarget(ImmutableArray<NamedTypeSymbol> sequence)
848public ImmutableArray<TypeSymbol> Retarget(ImmutableArray<TypeSymbol> sequence)
860public ImmutableArray<TypeWithAnnotations> Retarget(ImmutableArray<TypeWithAnnotations> sequence)
867public ImmutableArray<TypeParameterSymbol> Retarget(ImmutableArray<TypeParameterSymbol> list)
1027ImmutableArray<MethodSymbol>.Empty);
1093ImmutableArray<PropertySymbol>.Empty);
1129internal ImmutableArray<CustomModifier> RetargetModifiers(
1130ImmutableArray<CustomModifier> oldModifiers,
1131ref ImmutableArray<CustomModifier> lazyCustomModifiers)
1136ImmutableArray<CustomModifier> newModifiers = this.RetargetModifiers(oldModifiers, out modifiersHaveChanged);
1137ImmutableInterlocked.InterlockedCompareExchange(ref lazyCustomModifiers, newModifiers, default(ImmutableArray<CustomModifier>));
1143private ImmutableArray<CSharpAttributeData> RetargetAttributes(ImmutableArray<CSharpAttributeData> oldAttributes)
1178ImmutableArray<TypedConstant> oldAttributeCtorArguments = oldAttributeData.CommonConstructorArguments;
1179ImmutableArray<TypedConstant> newAttributeCtorArguments = RetargetAttributeConstructorArguments(oldAttributeCtorArguments);
1181ImmutableArray<KeyValuePair<string, TypedConstant>> oldAttributeNamedArguments = oldAttributeData.CommonNamedArguments;
1182ImmutableArray<KeyValuePair<string, TypedConstant>> newAttributeNamedArguments = RetargetAttributeNamedArguments(oldAttributeNamedArguments);
1195private ImmutableArray<TypedConstant> RetargetAttributeConstructorArguments(ImmutableArray<TypedConstant> constructorArguments)
1197ImmutableArray<TypedConstant> retargetedArguments = constructorArguments;
1230var newArray = RetargetAttributeConstructorArguments(oldConstant.Values);
1264private ImmutableArray<KeyValuePair<string, TypedConstant>> RetargetAttributeNamedArguments(ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments)
1266var retargetedArguments = namedArguments;
1302internal ImmutableArray<CSharpAttributeData> GetRetargetedAttributes(
1303ImmutableArray<CSharpAttributeData> underlyingAttributes,
1304ref ImmutableArray<CSharpAttributeData> lazyCustomAttributes)
1309ImmutableArray<CSharpAttributeData> retargetedAttributes = this.RetargetAttributes(underlyingAttributes);
1311ImmutableInterlocked.InterlockedCompareExchange(ref lazyCustomAttributes, retargetedAttributes, default(ImmutableArray<CSharpAttributeData>));
Symbols\Source\ParameterHelpers.cs (26)
20public static ImmutableArray<SourceParameterSymbol> MakeParameters(
115public static ImmutableArray<FunctionPointerParameterSymbol> MakeFunctionPointerParameters(
142ImmutableArray<CustomModifier> customModifiers = refKind switch
147_ => ImmutableArray<CustomModifier>.Empty
166private static ImmutableArray<TParameterSymbol> MakeParameters<TParameterSyntax, TParameterSymbol, TOwningSymbol>(
206ImmutableArray<TParameterSymbol> parameters = builder.ToImmutableAndFree();
215ImmutableArray<ParameterSymbol> parametersForNameConflict = parameters.Cast<TParameterSymbol, ParameterSymbol>();
327internal static void EnsureRefKindAttributesExist(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
332internal static void EnsureRefKindAttributesExist(CSharpCompilation? compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
344private static void EnsureRefKindAttributesExist(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
373internal static void EnsureParamCollectionAttributeExistsAndModifyCompilation(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics)
381internal static void EnsureNativeIntegerAttributeExists(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
387internal static void EnsureNativeIntegerAttributeExists(CSharpCompilation? compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
404private static void EnsureNativeIntegerAttributeExists(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
449internal static void EnsureScopedRefAttributeExists(PEModuleBuilder moduleBuilder, ImmutableArray<ParameterSymbol> parameters)
454internal static void EnsureScopedRefAttributeExists(CSharpCompilation? compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag diagnostics, bool modifyCompilation)
466private static void EnsureScopedRefAttributeExists(CSharpCompilation compilation, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
484internal static void EnsureNullableAttributeExists(PEModuleBuilder moduleBuilder, Symbol container, ImmutableArray<ParameterSymbol> parameters)
489internal static void EnsureNullableAttributeExists(CSharpCompilation? compilation, Symbol container, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation)
501private static void EnsureNullableAttributeExists(CSharpCompilation compilation, Symbol container, ImmutableArray<ParameterSymbol> parameters, BindingDiagnosticBag? diagnostics, bool modifyCompilation, PEModuleBuilder? moduleBuilder)
1119internal static ImmutableArray<CustomModifier> ConditionallyCreateInModifiers(RefKind refKind, bool addRefReadOnlyModifier, Binder binder, BindingDiagnosticBag diagnostics, SyntaxNode syntax)
1127return ImmutableArray<CustomModifier>.Empty;
1131internal static ImmutableArray<CustomModifier> CreateInModifiers(Binder binder, BindingDiagnosticBag diagnostics, SyntaxNode syntax)
1137private static ImmutableArray<CustomModifier> CreateRefReadonlyParameterModifiers(Binder binder, BindingDiagnosticBag diagnostics, SyntaxNode syntax)
1143internal static ImmutableArray<CustomModifier> CreateOutModifiers(Binder binder, BindingDiagnosticBag diagnostics, SyntaxNode syntax)
1148private static ImmutableArray<CustomModifier> CreateModifiers(WellKnownType modifier, Binder binder, BindingDiagnosticBag diagnostics, SyntaxNode syntax)
Symbols\Source\SourceAssemblySymbol.cs (42)
60private readonly ImmutableArray<ModuleSymbol> _modules;
113private ImmutableArray<Diagnostic> _unusedFieldWarnings;
119ImmutableArray<PEModule> netModules)
559internal override ImmutableArray<byte> PublicKey
564public override ImmutableArray<ModuleSymbol> Modules
573public override ImmutableArray<Location> Locations
1062ImmutableArray<NamespaceSymbol> constituent = mergedNs.ConstituentNamespaces;
1190ImmutableArray<CSharpAttributeData> appliedSourceAttributes = this.GetSourceAttributesBag().Attributes;
1280private ImmutableArray<CSharpAttributeData> GetNetModuleAttributes(out ImmutableArray<string> netModuleNames)
1304netModuleNames = ImmutableArray<string>.Empty;
1305return ImmutableArray<CSharpAttributeData>.Empty;
1313ImmutableArray<CSharpAttributeData> attributesFromNetModules,
1314ImmutableArray<string> netModuleNames,
1372ImmutableArray<string> netModuleNames;
1373ImmutableArray<CSharpAttributeData> attributesFromNetModules = GetNetModuleAttributes(out netModuleNames);
1469ImmutableArray<string> netModuleNames;
1470ImmutableArray<CSharpAttributeData> attributesFromNetModules = GetNetModuleAttributes(out netModuleNames);
1483WellKnownAttributeData limitedDecodeWellKnownAttributes(ImmutableArray<CSharpAttributeData> attributesFromNetModules,
1484ImmutableArray<string> netModuleNames, QuickAttributes attributeMatches)
1550internal ImmutableArray<SyntaxList<AttributeListSyntax>> GetAttributeDeclarations()
1553var declarations = DeclaringCompilation.MergedRootDeclaration.Declarations;
1595public sealed override ImmutableArray<CSharpAttributeData> GetAttributes()
1597var attributes = this.GetSourceAttributesBag().Attributes;
1598var netmoduleAttributes = this.GetNetModuleAttributesBag().Attributes;
1852internal override ImmutableArray<AssemblySymbol> GetNoPiaResolutionAssemblies()
1857internal override void SetNoPiaResolutionAssemblies(ImmutableArray<AssemblySymbol> assemblies)
1862internal override ImmutableArray<AssemblySymbol> GetLinkedReferencedAssemblies()
1866return default(ImmutableArray<AssemblySymbol>);
1869internal override void SetLinkedReferencedAssemblies(ImmutableArray<AssemblySymbol> assemblies)
1995ImmutableArray<TypedConstant>.Empty,
2057private static bool ContainsExtensionMethods(ImmutableArray<ModuleSymbol> modules)
2119internal override IEnumerable<ImmutableArray<byte>> GetInternalsVisibleToPublicKeys(string simpleName)
2128return SpecializedCollections.EmptyEnumerable<ImmutableArray<byte>>();
2130ConcurrentDictionary<ImmutableArray<byte>, Tuple<Location, string>> result = null;
2134return (result != null) ? result.Keys : SpecializedCollections.EmptyEnumerable<ImmutableArray<byte>>();
2194private ConcurrentDictionary<string, ConcurrentDictionary<ImmutableArray<byte>, Tuple<Location, string>>> _lazyInternalsVisibleToMap;
2272ref ConcurrentDictionary<string, ConcurrentDictionary<ImmutableArray<byte>, Tuple<Location, string>>> lazyInternalsVisibleToMap)
2306new ConcurrentDictionary<string, ConcurrentDictionary<ImmutableArray<byte>, Tuple<Location, String>>>(StringComparer.OrdinalIgnoreCase), null);
2326ConcurrentDictionary<ImmutableArray<byte>, Tuple<Location, string>> keys = null;
2333keys = new ConcurrentDictionary<ImmutableArray<byte>, Tuple<Location, String>>();
2664internal ImmutableArray<Diagnostic> GetUnusedFieldWarnings(CancellationToken cancellationToken)
Symbols\Source\SourceComplexParameterSymbol.cs (19)
137internal override ImmutableArray<int> InterpolatedStringHandlerArgumentIndexes
346ImmutableArray<LocalSymbol>.Empty,
474ImmutableArray<ParameterSymbol> implParameters = this.ContainingSymbol.GetPartialImplementationPart()?.GetParameters() ?? default;
490ImmutableArray<ParameterSymbol> defParameters = this.ContainingSymbol.GetPartialDefinitionPart()?.GetParameters() ?? default;
607public ImmutableArray<(CSharpAttributeData, BoundAttribute)> BindParameterAttributes()
680var parameters = ContainingSymbol.GetParameters();
882var arguments = attribute.CommonConstructorArguments;
1259ImmutableArray<ParameterSymbol> containingSymbolParameters = ContainingSymbol.GetParameters();
1261ImmutableArray<int> parameterOrdinals;
1384internal override void PostDecodeWellKnownAttributes(ImmutableArray<CSharpAttributeData> boundAttributes, ImmutableArray<AttributeSyntax> allAttributeSyntaxNodes, BindingDiagnosticBag diagnostics, AttributeLocation symbolPart, WellKnownAttributeData decodedData)
1468var attributes = GetAttributes();
1511public abstract override ImmutableArray<CustomModifier> RefCustomModifiers { get; }
1584if (!binder.HasCollectionExpressionApplicableAddMethod(syntax, Type, out ImmutableArray<MethodSymbol> addMethods, diagnostics))
1704public override ImmutableArray<CustomModifier> RefCustomModifiers => ImmutableArray<CustomModifier>.Empty;
1709private readonly ImmutableArray<CustomModifier> _refCustomModifiers;
1717ImmutableArray<CustomModifier> refCustomModifiers,
1736public override ImmutableArray<CustomModifier> RefCustomModifiers => _refCustomModifiers;
Symbols\Source\SourceMemberContainerSymbol.cs (200)
188private ImmutableArray<DiagnosticInfo> _managedKindUseSiteDiagnostics;
189private ImmutableArray<AssemblySymbol> _managedKindUseSiteDependencies;
198private ImmutableArray<SynthesizedSimpleProgramEntryPointSymbol> _lazySimpleProgramEntryPoints;
205private Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>? _lazyMembersDictionary;
206private Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>? _lazyEarlyAttributeDecodingMembersDictionary;
208private static readonly Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> s_emptyTypeMembers =
209new Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>>(EmptyReadOnlyMemoryOfCharComparer.Instance);
211private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>>? _lazyTypeMembers;
212private ImmutableArray<Symbol> _lazyMembersFlattened;
594var tmp = this.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics; // force type arguments
640ImmutableArray<Symbol> members = this.GetMembersUnordered();
823ImmutableInterlocked.InterlockedInitialize(ref _managedKindUseSiteDiagnostics, managedKindUseSiteInfo.Diagnostics?.ToImmutableArray() ?? ImmutableArray<DiagnosticInfo>.Empty);
824ImmutableInterlocked.InterlockedInitialize(ref _managedKindUseSiteDependencies, managedKindUseSiteInfo.Dependencies?.ToImmutableArray() ?? ImmutableArray<AssemblySymbol>.Empty);
830ImmutableArray<DiagnosticInfo> useSiteDiagnostics = _managedKindUseSiteDiagnostics;
839ImmutableArray<AssemblySymbol> useSiteDependencies = _managedKindUseSiteDependencies;
996public sealed override ImmutableArray<Location> Locations
997=> ImmutableArray<Location>.CastUp(declaration.NameLocations.ToImmutable());
1002public ImmutableArray<SyntaxReference> SyntaxReferences
1010public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences
1021var declarations = declaration.Declarations;
1056internal readonly ImmutableArray<Symbol> NonTypeMembers;
1057internal readonly ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> StaticInitializers;
1058internal readonly ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> InstanceInitializers;
1065ImmutableArray<Symbol> nonTypeMembers,
1066ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> staticInitializers,
1067ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> instanceInitializers,
1091internal ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> StaticInitializers
1096internal ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> InstanceInitializers
1149var allInitializers = isStatic ? membersAndInitializers.StaticInitializers : membersAndInitializers.InstanceInitializers;
1175static bool findInitializer(ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> initializers, int position, SyntaxTree tree,
1179foreach (var group in initializers)
1204static int getGroupLength(ImmutableArray<FieldOrPropertyInitializer> initializers)
1215static int getPrecedingInitializersLength(ImmutableArray<FieldOrPropertyInitializer> initializers, int index)
1226static int getInitializersLength(ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> initializers)
1229foreach (var group in initializers)
1252private static int IndexOfInitializerContainingPosition(ImmutableArray<FieldOrPropertyInitializer> initializers, int position)
1282internal override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered()
1287public override ImmutableArray<NamedTypeSymbol> GetTypeMembers()
1292public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name)
1294ImmutableArray<NamedTypeSymbol> members;
1300return ImmutableArray<NamedTypeSymbol>.Empty;
1303public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity)
1308private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> GetTypeMembersDictionary()
1326private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> MakeTypeMembers(BindingDiagnosticBag diagnostics)
1454internal override ImmutableArray<Symbol> GetMembersUnordered()
1456var result = _lazyMembersFlattened;
1468public override ImmutableArray<Symbol> GetMembers()
1476var allMembers = this.GetMembersUnordered();
1490public sealed override ImmutableArray<Symbol> GetMembers(string name)
1492ImmutableArray<Symbol> members;
1498return ImmutableArray<Symbol>.Empty;
1509internal override ImmutableArray<Symbol> GetSimpleNonTypeMembers(string name)
1516return ImmutableArray<Symbol>.Empty;
1559internal override ImmutableArray<Symbol> GetEarlyAttributeDecodingMembers()
1571internal override ImmutableArray<Symbol> GetEarlyAttributeDecodingMembers(string name)
1573ImmutableArray<Symbol> result;
1574return GetEarlyAttributeDecodingMembersDictionary().TryGetValue(name.AsMemory(), out result) ? result : ImmutableArray<Symbol>.Empty;
1577private Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> GetEarlyAttributeDecodingMembersDictionary()
1581if (Volatile.Read(ref _lazyMembersDictionary) is Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> result)
1591Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName;
1614private static Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> ToNameKeyedDictionary(ImmutableArray<Symbol> symbols)
1618return new Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>(1, ReadOnlyMemoryOfCharComparer.Instance)
1626return new Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>(ReadOnlyMemoryOfCharComparer.Instance);
1639var dictionary = new Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>(accumulator.Count, ReadOnlyMemoryOfCharComparer.Instance);
1766protected Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> GetMembersByName()
1776private Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> GetMembersByNameSlow()
1846var interfaces = GetInterfacesToEmit();
1969Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>>? typesByName,
1970Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName,
2019Symbol? lastSym = typesByName?.TryGetValue(name, out var types) == true ? types.FirstOrDefault() : null;
2228BindingDiagnosticBag diagnostics, Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName)
2237foreach (var members in membersByName.Values)
2297Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName,
2360Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName,
2361Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>>? typesByName,
2362ImmutableArray<Symbol> membersUnordered,
2376Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>? membersByName;
2377ImmutableArray<Symbol> membersUnordered;
2388static (Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>? membersByName, ImmutableArray<Symbol> membersUnordered) mergeMembersInGroup(IGrouping<ExtensionGroupingKey, NamedTypeSymbol> grouping)
2390Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>? membersByName = null;
2391ImmutableArray<Symbol> membersUnordered = [];
2398Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByNameToMerge = ((SourceMemberContainerTypeSymbol)extension).GetMembersByName();
2419membersByName = new Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>>(membersByName, ReadOnlyMemoryOfCharComparer.Instance);
2434if (membersByName.TryGetValue(pair.Key, out var members))
2449static ImmutableArray<Symbol> concatMembers(ImmutableArray<Symbol> existingMembers, NamedTypeSymbol extension, ImmutableArray<Symbol> newMembers, ref ImmutableArray<Symbol> membersUnordered)
2554Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName,
2555ImmutableArray<Symbol> membersUnordered,
3103private Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> MakeAllMembers()
3105Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName;
3127Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName,
3128Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> typesByName)
3130foreach ((ReadOnlyMemory<char> name, ImmutableArray<NamedTypeSymbol> types) in typesByName)
3132ImmutableArray<Symbol> typesAsSymbols = StaticCast<Symbol>.From(types);
3134ImmutableArray<Symbol> membersForName;
3209public readonly ImmutableArray<Symbol> NonTypeMembersWithPartialImplementations;
3210public readonly ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> StaticInitializers;
3211public readonly ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> InstanceInitializers;
3218private ImmutableArray<Symbol> _lazyNonTypeMembers;
3227ImmutableArray<Symbol> nonTypeMembersWithPartialImplementations,
3228ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> staticInitializers,
3229ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> instanceInitializers,
3255public static void AssertInitializers(ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> initializers, CSharpCompilation compilation)
3263foreach (ImmutableArray<FieldOrPropertyInitializer> group in initializers)
3287public ImmutableArray<Symbol> GetNonTypeMembers(SourceMemberContainerTypeSymbol container)
3330ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> mergeInitializers()
3358ArrayBuilder<ImmutableArray<FieldOrPropertyInitializer>> groupsBuilder;
3365var declaredInitializers = declaredMembers.InstanceInitializers[insertAt];
3375groupsBuilder = ArrayBuilder<ImmutableArray<FieldOrPropertyInitializer>>.GetInstance(groupCount);
3385groupsBuilder = ArrayBuilder<ImmutableArray<FieldOrPropertyInitializer>>.GetInstance(groupCount + 1);
3392var result = groupsBuilder.ToImmutableAndFree();
3418var declaredNonTypeMembers = declaredMembers.GetNonTypeMembers(container);
3443internal static ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> ToReadOnlyAndFree(ArrayBuilder<ArrayBuilder<FieldOrPropertyInitializer>> initializers)
3448return ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>>.Empty;
3451var builder = ArrayBuilder<ImmutableArray<FieldOrPropertyInitializer>>.GetInstance(initializers.Count);
3561private void MergePartialMembersAndInitializeNonTypeMembers(ImmutableArray<Symbol> nonTypeMembersWithPartialImplementations, ref ImmutableArray<Symbol> nonTypeMembers)
3598internal ImmutableArray<SynthesizedSimpleProgramEntryPointSymbol> GetSimpleProgramEntryPoints()
3604var simpleProgramEntryPoints = buildSimpleProgramEntryPoint(diagnostics);
3617ImmutableArray<SynthesizedSimpleProgramEntryPointSymbol> buildSimpleProgramEntryPoint(BindingDiagnosticBag diagnostics)
3622return ImmutableArray<SynthesizedSimpleProgramEntryPointSymbol>.Empty;
3646return ImmutableArray<SynthesizedSimpleProgramEntryPointSymbol>.Empty;
3680ImmutableArray<Symbol> nonTypeMembersToCheck;
3726internal ImmutableArray<Symbol> GetMembersToMatchAgainstDeclarationSpan()
3742internal ImmutableArray<Symbol> GetCandidateMembersForLookup(string name)
3750ImmutableArray<Symbol> nonTypeMembersToCheck;
3773ImmutableArray<Symbol> types = GetTypeMembers(name).Cast<NamedTypeSymbol, Symbol>();
4347Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName,
4368foreach (var symbol in membersByName.TryGetValue(accessorName.AsMemory(), out var members) ? members : [])
4398Dictionary<ReadOnlyMemory<char>, ImmutableArray<Symbol>> membersByName,
4407foreach (var symbol in membersByName.TryGetValue(accessorName.AsMemory(), out var members) ? members : [])
4452private static bool ParametersMatchPropertyAccessor(PropertySymbol propertySymbol, bool getNotSet, ImmutableArray<ParameterSymbol> methodParams)
4483private static bool ParametersMatchEventAccessor(EventSymbol eventSymbol, ImmutableArray<ParameterSymbol> methodParams)
4555private static void CheckInterfaceMembers(ImmutableArray<Symbol> nonTypeMembers, BindingDiagnosticBag diagnostics)
4610private static void CheckExtensionMembers(ImmutableArray<Symbol> members, BindingDiagnosticBag diagnostics)
4724var simpleProgramEntryPoints = GetSimpleProgramEntryPoints();
4806var existingOrAddedMembers = addProperties(ctor.Parameters);
4857void addDeconstruct(SynthesizedPrimaryConstructor ctor, ImmutableArray<Symbol> positionalMembers)
4866ImmutableArray<TypeParameterSymbol>.Empty,
4868ImmutableArray<CustomModifier>.Empty,
4877ImmutableArray<CustomModifier>.Empty,
4878ImmutableArray<MethodSymbol>.Empty);
4913ImmutableArray<TypeParameterSymbol>.Empty,
4916ImmutableArray<CustomModifier>.Empty,
4925ImmutableArray<CustomModifier>.Empty,
4926ImmutableArray<MethodSymbol>.Empty);
4966ImmutableArray<TypeParameterSymbol>.Empty,
4969ImmutableArray<CustomModifier>.Empty,
4977refCustomModifiers: ImmutableArray<CustomModifier>.Empty,
4978explicitInterfaceImplementations: ImmutableArray<MethodSymbol>.Empty);
5026ImmutableArray<TypeParameterSymbol>.Empty,
5027ImmutableArray<ParameterSymbol>.Empty,
5032refCustomModifiers: ImmutableArray<CustomModifier>.Empty,
5033explicitInterfaceImplementations: ImmutableArray<MethodSymbol>.Empty);
5095ImmutableArray<Symbol> addProperties(ImmutableArray<ParameterSymbol> recordParameters)
5106ImmutableArray<ParameterSymbol>.Empty,
5109ImmutableArray<CustomModifier>.Empty,
5111ImmutableArray<PropertySymbol>.Empty);
5200ImmutableArray<TypeParameterSymbol>.Empty,
5201ImmutableArray<ParameterSymbol>.Empty,
5206ImmutableArray<CustomModifier>.Empty,
5207ImmutableArray<MethodSymbol>.Empty);
5232ImmutableArray<ParameterSymbol>.Empty,
5235ImmutableArray<CustomModifier>.Empty,
5237ImmutableArray<PropertySymbol>.Empty);
5293ImmutableArray<TypeParameterSymbol>.Empty,
5296ImmutableArray<CustomModifier>.Empty,
5305ImmutableArray<CustomModifier>.Empty,
5306ImmutableArray<MethodSymbol>.Empty);
5439static bool hasNonConstantInitializer(ImmutableArray<ImmutableArray<FieldOrPropertyInitializer>> initializers)
6008public static readonly SynthesizedExplicitImplementations Empty = new SynthesizedExplicitImplementations(ImmutableArray<SynthesizedExplicitImplementationForwardingMethod>.Empty,
6009ImmutableArray<(MethodSymbol Body, MethodSymbol Implemented)>.Empty);
6011public readonly ImmutableArray<SynthesizedExplicitImplementationForwardingMethod> ForwardingMethods;
6012public readonly ImmutableArray<(MethodSymbol Body, MethodSymbol Implemented)> MethodImpls;
6015ImmutableArray<SynthesizedExplicitImplementationForwardingMethod> forwardingMethods,
6016ImmutableArray<(MethodSymbol Body, MethodSymbol Implemented)> methodImpls)
6023ImmutableArray<SynthesizedExplicitImplementationForwardingMethod> forwardingMethods,
6024ImmutableArray<(MethodSymbol Body, MethodSymbol Implemented)> methodImpls)
Symbols\Source\SourceNamedTypeSymbol.cs (53)
140private ImmutableArray<TypeParameterSymbol> MakeTypeParameters(BindingDiagnosticBag diagnostics)
144return ImmutableArray<TypeParameterSymbol>.Empty;
268internal ImmutableArray<TypeWithAnnotations> GetTypeParameterConstraintTypes(int ordinal)
270var constraintTypes = GetTypeParameterConstraintTypes();
271return (constraintTypes.Length > 0) ? constraintTypes[ordinal] : ImmutableArray<TypeWithAnnotations>.Empty;
274private ImmutableArray<ImmutableArray<TypeWithAnnotations>> GetTypeParameterConstraintTypes()
299var constraintKinds = GetTypeParameterConstraintKinds();
303private ImmutableArray<TypeParameterConstraintKind> GetTypeParameterConstraintKinds()
316private ImmutableArray<ImmutableArray<TypeWithAnnotations>> MakeTypeParameterConstraintTypes(BindingDiagnosticBag diagnostics)
318var typeParameters = this.TypeParameters;
319var results = ImmutableArray<TypeParameterConstraintClause>.Empty;
325ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null;
339ImmutableArray<TypeParameterConstraintClause> constraints;
367(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints);
375results = ImmutableArray<TypeParameterConstraintClause>.Empty;
397private ImmutableArray<TypeParameterConstraintKind> MakeTypeParameterConstraintKinds()
399var typeParameters = this.TypeParameters;
400var results = ImmutableArray<TypeParameterConstraintClause>.Empty;
406ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses = null;
420ImmutableArray<TypeParameterConstraintClause> constraints;
449(otherPartialClauses ??= ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>>.GetInstance()).Add(constraints);
458results = ImmutableArray<TypeParameterConstraintClause>.Empty;
492private ImmutableArray<TypeParameterConstraintClause> MergeConstraintTypesForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses,
493ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses,
502var typeParameters = TypeParameters;
511ImmutableArray<TypeWithAnnotations> originalConstraintTypes = constraint.ConstraintTypes;
518foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses)
560static bool mergeConstraints(ImmutableArray<TypeWithAnnotations> originalConstraintTypes,
630static SmallDictionary<TypeWithAnnotations, int> toDictionary(ImmutableArray<TypeWithAnnotations> constraintTypes, IEqualityComparer<TypeWithAnnotations> comparer)
646private ImmutableArray<TypeParameterConstraintClause> MergeConstraintKindsForPartialDeclarations(ImmutableArray<TypeParameterConstraintClause> constraintClauses,
647ArrayBuilder<ImmutableArray<TypeParameterConstraintClause>> otherPartialClauses)
655var typeParameters = TypeParameters;
665ImmutableArray<TypeWithAnnotations> originalConstraintTypes = constraint.ConstraintTypes;
667foreach (ImmutableArray<TypeParameterConstraintClause> otherPartialConstraints in otherPartialClauses)
698static void mergeConstraints(ref TypeParameterConstraintKind mergedKind, ImmutableArray<TypeWithAnnotations> originalConstraintTypes, TypeParameterConstraintClause clause)
739internal sealed override ImmutableArray<TypeWithAnnotations> TypeArgumentsWithAnnotationsNoUseSiteDiagnostics
747public override ImmutableArray<TypeParameterSymbol> TypeParameters
780internal ImmutableArray<SyntaxList<AttributeListSyntax>> GetAttributeDeclarations(QuickAttributes? quickAttributes = null)
861public sealed override ImmutableArray<CSharpAttributeData> GetAttributes()
1274ImmutableArray<SyntaxList<AttributeListSyntax>> attributeLists = GetAttributeDeclarations(QuickAttributes.TypeIdentifier);
1576internal override ImmutableArray<string> GetAppliedConditionalSymbols()
1579return data != null ? data.ConditionalSymbols : ImmutableArray<string>.Empty;
1582internal override void PostDecodeWellKnownAttributes(ImmutableArray<CSharpAttributeData> boundAttributes, ImmutableArray<AttributeSyntax> allAttributeSyntaxNodes, BindingDiagnosticBag diagnostics, AttributeLocation symbolPart, WellKnownAttributeData decodedData)
1613var initializers = this.StaticInitializers;
1616foreach (var initializerGroup in initializers)
1632foreach (var initializerGroup in initializers)
Symbols\Source\SourceNamedTypeSymbol_Bases.cs (20)
24private Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> _lazyDeclaredBases;
27private ImmutableArray<NamedTypeSymbol> _lazyInterfaces;
66internal sealed override ImmutableArray<NamedTypeSymbol> InterfacesNoUseSiteDiagnostics(ConsList<TypeSymbol> basesBeingResolved)
72return ImmutableArray<NamedTypeSymbol>.Empty;
76var acyclicInterfaces = MakeAcyclicInterfaces(basesBeingResolved, diagnostics);
77if (ImmutableInterlocked.InterlockedCompareExchange(ref _lazyInterfaces, acyclicInterfaces, default(ImmutableArray<NamedTypeSymbol>)).IsDefault)
255internal Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> GetDeclaredBases(ConsList<TypeSymbol> basesBeingResolved)
275internal override ImmutableArray<NamedTypeSymbol> GetDeclaredInterfaces(ConsList<TypeSymbol> basesBeingResolved)
280private Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> MakeDeclaredBases(ConsList<TypeSymbol> basesBeingResolved, BindingDiagnosticBag diagnostics)
285return new Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>>(null, ImmutableArray<NamedTypeSymbol>.Empty);
300Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> one = MakeOneDeclaredBases(newBasesBeingResolved, decl, diagnostics);
304var partInterfaces = one.Item2;
401var baseInterfacesRO = baseInterfaces.ToImmutableAndFree();
423return new Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>>(baseType, baseInterfacesRO);
438private Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>> MakeOneDeclaredBases(ConsList<TypeSymbol> newBasesBeingResolved, SingleTypeDeclaration decl, BindingDiagnosticBag diagnostics)
628return new Tuple<NamedTypeSymbol, ImmutableArray<NamedTypeSymbol>>(localBase, localInterfaces.ToImmutableAndFree());
658private ImmutableArray<NamedTypeSymbol> MakeAcyclicInterfaces(ConsList<TypeSymbol> basesBeingResolved, BindingDiagnosticBag diagnostics)
665return ImmutableArray<NamedTypeSymbol>.Empty;
668var declaredInterfaces = GetDeclaredInterfaces(basesBeingResolved: basesBeingResolved);
Symbols\Source\SourceNamespaceSymbol.AliasesAndUsings.cs (41)
112public ImmutableArray<AliasAndExternAliasDirective> GetExternAliases(CSharpSyntaxNode declarationSyntax)
122return ImmutableArray<AliasAndExternAliasDirective>.Empty;
132return ImmutableArray<AliasAndExternAliasDirective>.Empty;
143public ImmutableArray<AliasAndUsingDirective> GetUsingAliases(CSharpSyntaxNode declarationSyntax, ConsList<TypeSymbol>? basesBeingResolved)
153return ImmutableArray<AliasAndUsingDirective>.Empty;
163return ImmutableArray<AliasAndUsingDirective>.Empty;
206public ImmutableArray<NamespaceOrTypeAndUsingDirective> GetUsingNamespacesOrTypes(CSharpSyntaxNode declarationSyntax, ConsList<TypeSymbol>? basesBeingResolved)
213var result = GetGlobalUsingNamespacesOrTypes(basesBeingResolved);
227return ImmutableArray<NamespaceOrTypeAndUsingDirective>.Empty;
248private ImmutableArray<NamespaceOrTypeAndUsingDirective> GetGlobalUsingNamespacesOrTypes(ConsList<TypeSymbol>? basesBeingResolved)
319var namespacesOrTypes = GetAliasesAndUsings(singleDeclaration).GetGlobalUsingNamespacesOrTypes(this, singleDeclaration.SyntaxReference, basesBeingResolved);
355var externAliases = GetAliasesAndUsings(singleDeclaration).GetExternAliases(this, singleDeclaration.SyntaxReference);
413internal ImmutableArray<AliasAndExternAliasDirective> GetExternAliases(SourceNamespaceSymbol declaringSymbol, CSharpSyntaxNode declarationSyntax)
418internal ImmutableArray<AliasAndExternAliasDirective> GetExternAliases(SourceNamespaceSymbol declaringSymbol, SyntaxReference declarationSyntax)
446var result = buildExternAliases(externAliasDirectives, declaringSymbol, diagnostics);
465static ImmutableArray<AliasAndExternAliasDirective> buildExternAliases(
510internal ImmutableArray<AliasAndUsingDirective> GetUsingAliases(SourceNamespaceSymbol declaringSymbol, CSharpSyntaxNode declarationSyntax, ConsList<TypeSymbol>? basesBeingResolved)
515internal ImmutableArray<AliasAndUsingDirective> GetGlobalUsingAliases(SourceNamespaceSymbol declaringSymbol, CSharpSyntaxNode declarationSyntax, ConsList<TypeSymbol>? basesBeingResolved)
530internal ImmutableArray<NamespaceOrTypeAndUsingDirective> GetUsingNamespacesOrTypes(SourceNamespaceSymbol declaringSymbol, CSharpSyntaxNode declarationSyntax, ConsList<TypeSymbol>? basesBeingResolved)
540internal ImmutableArray<NamespaceOrTypeAndUsingDirective> GetGlobalUsingNamespacesOrTypes(SourceNamespaceSymbol declaringSymbol, SyntaxReference declarationSyntax, ConsList<TypeSymbol>? basesBeingResolved)
623var externAliases = GetExternAliases(declaringSymbol, declarationSyntax);
625var globalUsingNamespacesOrTypes = ImmutableArray<NamespaceOrTypeAndUsingDirective>.Empty;
626var globalUsingAliases = ImmutableArray<AliasAndUsingDirective>.Empty;
863static PooledHashSet<NamespaceOrTypeSymbol> getOrCreateUniqueUsings(ref PooledHashSet<NamespaceOrTypeSymbol>? uniqueUsings, ImmutableArray<NamespaceOrTypeAndUsingDirective> globalUsingNamespacesOrTypes)
874static PooledHashSet<NamespaceOrTypeSymbol> getOrCreateUniqueGlobalUsingsNotInTree(ref PooledHashSet<NamespaceOrTypeSymbol>? uniqueUsings, ImmutableArray<NamespaceOrTypeAndUsingDirective> globalUsingNamespacesOrTypes, SyntaxTree tree)
885static ArrayBuilder<NamespaceOrTypeAndUsingDirective> getOrCreateUsingsBuilder(ref ArrayBuilder<NamespaceOrTypeAndUsingDirective>? usings, ImmutableArray<NamespaceOrTypeAndUsingDirective> globalUsingNamespacesOrTypes)
1086public static readonly ExternAliasesAndDiagnostics Empty = new ExternAliasesAndDiagnostics() { ExternAliases = ImmutableArray<AliasAndExternAliasDirective>.Empty, Diagnostics = ImmutableArray<Diagnostic>.Empty };
1088public ImmutableArray<AliasAndExternAliasDirective> ExternAliases { get; init; }
1089public ImmutableArray<Diagnostic> Diagnostics { get; init; }
1097UsingAliases = ImmutableArray<AliasAndUsingDirective>.Empty,
1099UsingNamespacesOrTypes = ImmutableArray<NamespaceOrTypeAndUsingDirective>.Empty,
1103public ImmutableArray<AliasAndUsingDirective> UsingAliases { get; init; }
1105public ImmutableArray<NamespaceOrTypeAndUsingDirective> UsingNamespacesOrTypes { get; init; }
1123UsingNamespacesOrTypes = ImmutableArray<NamespaceOrTypeAndUsingDirective>.Empty,
1124Diagnostics = ImmutableArray<Diagnostic>.Empty,
1129public ImmutableArray<NamespaceOrTypeAndUsingDirective> UsingNamespacesOrTypes { get; init; }
1130public ImmutableArray<Diagnostic> Diagnostics { get; init; }
1141ImmutableArray<AliasAndExternAliasDirective>.Empty),
Symbols\Source\SourceNamespaceSymbol.cs (28)
29private ImmutableArray<Location> _locations;
30private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamespaceOrTypeSymbol>> _nameToMembersMap;
31private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> _nameToTypeMembersMap;
32private ImmutableArray<Symbol> _lazyAllMembers;
33private ImmutableArray<NamedTypeSymbol> _lazyTypeMembersUnordered;
87public override ImmutableArray<Location> Locations
123public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences
126private ImmutableArray<SyntaxReference> ComputeDeclaringReferencesCore()
134internal override ImmutableArray<Symbol> GetMembersUnordered()
136var result = _lazyAllMembers;
148public override ImmutableArray<Symbol> GetMembers()
156var allMembers = this.GetMembersUnordered();
170public override ImmutableArray<Symbol> GetMembers(ReadOnlyMemory<char> name)
172ImmutableArray<NamespaceOrTypeSymbol> members;
175: ImmutableArray<Symbol>.Empty;
178internal override ImmutableArray<NamedTypeSymbol> GetTypeMembersUnordered()
189public override ImmutableArray<NamedTypeSymbol> GetTypeMembers()
194public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name)
196ImmutableArray<NamedTypeSymbol> members;
199: ImmutableArray<NamedTypeSymbol>.Empty;
202public override ImmutableArray<NamedTypeSymbol> GetTypeMembers(ReadOnlyMemory<char> name, int arity)
223private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamespaceOrTypeSymbol>> GetNameToMembersMap()
247private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamedTypeSymbol>> GetNameToTypeMembersMap()
263private Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamespaceOrTypeSymbol>> MakeNameToMembersMap(BindingDiagnosticBag diagnostics)
281var result = new Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamespaceOrTypeSymbol>>(builder.Count, ReadOnlyMemoryOfCharComparer.Instance);
290private static void CheckMembers(NamespaceSymbol @namespace, Dictionary<ReadOnlyMemory<char>, ImmutableArray<NamespaceOrTypeSymbol>> result, BindingDiagnosticBag diagnostics)
330var types = constituent.GetTypeMembers(symbol.Name, arity);
438foreach (var array in _nameToMembersMap.Values)
Symbols\Source\SourceParameterSymbol.cs (10)
58ImmutableArray<CustomModifier> inModifiers = ParameterHelpers.ConditionallyCreateInModifiers(refKind, addRefReadOnlyModifier, context, declarationDiagnostics, syntax);
118internal override ParameterSymbol WithCustomModifiersAndParams(TypeSymbol newType, ImmutableArray<CustomModifier> newCustomModifiers, ImmutableArray<CustomModifier> newRefCustomModifiers, bool newIsParams)
123internal SourceParameterSymbol WithCustomModifiersAndParamsCore(TypeSymbol newType, ImmutableArray<CustomModifier> newCustomModifiers, ImmutableArray<CustomModifier> newRefCustomModifiers, bool newIsParams)
197public sealed override ImmutableArray<CSharpAttributeData> GetAttributes()
264public sealed override ImmutableArray<Location> Locations
265=> _location is null ? ImmutableArray<Location>.Empty : ImmutableArray.Create(_location);
274public sealed override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences
279ImmutableArray<SyntaxReference>.Empty :
Symbols\Source\SourceTypeParameterSymbol.cs (35)
25private readonly ImmutableArray<SyntaxReference> _syntaxRefs;
26private readonly ImmutableArray<Location> _locations;
34protected SourceTypeParameterSymbol(string name, int ordinal, ImmutableArray<Location> locations, ImmutableArray<SyntaxReference> syntaxRefs)
44public override ImmutableArray<Location> Locations
52public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences
60internal ImmutableArray<SyntaxReference> SyntaxReferences
92internal override ImmutableArray<TypeWithAnnotations> GetConstraintTypes(ConsList<TypeParameterSymbol> inProgress)
95return (bounds != null) ? bounds.ConstraintTypes : ImmutableArray<TypeWithAnnotations>.Empty;
98internal override ImmutableArray<NamedTypeSymbol> GetInterfaces(ConsList<TypeParameterSymbol> inProgress)
101return (bounds != null) ? bounds.Interfaces : ImmutableArray<NamedTypeSymbol>.Empty;
116internal ImmutableArray<SyntaxList<AttributeListSyntax>> MergedAttributeDeclarationSyntaxLists
166public sealed override ImmutableArray<CSharpAttributeData> GetAttributes()
216protected abstract ImmutableArray<TypeParameterSymbol> ContainerTypeParameters
256var constraintTypes = this.ConstraintTypesNoUseSiteDiagnostics;
363var constraintTypes = this.ConstraintTypesNoUseSiteDiagnostics;
464public SourceTypeTypeParameterSymbol(SourceNamedTypeSymbol owner, string name, int ordinal, VarianceKind varianceKind, ImmutableArray<Location> locations, ImmutableArray<SyntaxReference> syntaxRefs)
583protected override ImmutableArray<TypeParameterSymbol> ContainerTypeParameters
590var constraintTypes = _owner.GetTypeParameterConstraintTypes(this.Ordinal);
607protected SourceMethodTypeParameterSymbol(string name, int ordinal, ImmutableArray<Location> locations, ImmutableArray<SyntaxReference> syntaxRefs)
650protected sealed override ImmutableArray<TypeParameterSymbol> ContainerTypeParameters
662public SourceNotOverridingMethodTypeParameterSymbol(SourceMethodSymbol owner, string name, int ordinal, ImmutableArray<Location> locations, ImmutableArray<SyntaxReference> syntaxRefs)
766var constraints = _owner.GetTypeParameterConstraintTypes();
767var constraintTypes = constraints.IsEmpty ? ImmutableArray<TypeWithAnnotations>.Empty : constraints[Ordinal];
779var constraintKinds = _owner.GetTypeParameterConstraintKinds();
825var overriddenTypeParameters = overriddenMethod.TypeParameters;
826var overridingTypeParameters = _overridingMethod.TypeParameters;
885var explicitImplementations = overridingMethod.ExplicitInterfaceImplementations;
904public SourceOverridingMethodTypeParameterSymbol(OverriddenMethodTypeParameterMapBase map, string name, int ordinal, ImmutableArray<Location> locations, ImmutableArray<SyntaxReference> syntaxRefs)
1013var constraintTypes = map.SubstituteTypes(typeParameter.ConstraintTypesNoUseSiteDiagnostics);
Symbols\Source\SynthesizedAttributeData.cs (10)
17public static SynthesizedAttributeData Create(CSharpCompilation compilation, MethodSymbol wellKnownMember, ImmutableArray<TypedConstant> arguments, ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments)
31private readonly ImmutableArray<TypedConstant> _arguments;
32private readonly ImmutableArray<KeyValuePair<string, TypedConstant>> _namedArguments;
34internal FromMethodAndArguments(CSharpCompilation compilation, MethodSymbol wellKnownMember, ImmutableArray<TypedConstant> arguments, ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments)
49protected internal override ImmutableArray<TypedConstant> CommonConstructorArguments => _arguments;
50protected internal override ImmutableArray<KeyValuePair<string, TypedConstant>> CommonNamedArguments => _namedArguments;
79protected internal override ImmutableArray<TypedConstant> CommonConstructorArguments => _original.CommonConstructorArguments;
80protected internal override ImmutableArray<KeyValuePair<string, TypedConstant>> CommonNamedArguments => _original.CommonNamedArguments;
Symbols\Symbol.cs (17)
316ImmutableArray<Location> ISymbolInternal.Locations => this.Locations;
416public abstract ImmutableArray<Location> Locations { get; }
423var locations = this.Locations;
487public abstract ImmutableArray<SyntaxReference> DeclaringSyntaxReferences { get; }
493internal static ImmutableArray<SyntaxReference> GetDeclaringSyntaxReferenceHelper<TNode>(ImmutableArray<Location> locations)
498return ImmutableArray<SyntaxReference>.Empty;
935var declaringReferences = this.DeclaringSyntaxReferences;
1244internal bool DeriveUseSiteInfoFromParameters(ref UseSiteInfo<AssemblySymbol> result, ImmutableArray<ParameterSymbol> parameters)
1267internal bool DeriveUseSiteInfoFromCustomModifiers(ref UseSiteInfo<AssemblySymbol> result, ImmutableArray<CustomModifier> customModifiers, AllowedRequiredModifierType allowedRequiredModifierType)
1330internal static bool GetUnificationUseSiteDiagnosticRecursive<T>(ref DiagnosticInfo result, ImmutableArray<T> types, Symbol owner, ref HashSet<TypeSymbol> checkedTypes) where T : TypeSymbol
1343internal static bool GetUnificationUseSiteDiagnosticRecursive(ref DiagnosticInfo result, ImmutableArray<TypeWithAnnotations> types, Symbol owner, ref HashSet<TypeSymbol> checkedTypes)
1356internal static bool GetUnificationUseSiteDiagnosticRecursive(ref DiagnosticInfo result, ImmutableArray<CustomModifier> modifiers, Symbol owner, ref HashSet<TypeSymbol> checkedTypes)
1369internal static bool GetUnificationUseSiteDiagnosticRecursive(ref DiagnosticInfo result, ImmutableArray<ParameterSymbol> parameters, Symbol owner, ref HashSet<TypeSymbol> checkedTypes)
1383internal static bool GetUnificationUseSiteDiagnosticRecursive(ref DiagnosticInfo result, ImmutableArray<TypeParameterSymbol> typeParameters, Symbol owner, ref HashSet<TypeSymbol> checkedTypes)
1462public ImmutableArray<SymbolDisplayPart> ToDisplayParts(SymbolDisplayFormat format = null)
1475public ImmutableArray<SymbolDisplayPart> ToMinimalDisplayParts(
Symbols\Symbol_Attributes.cs (27)
24/// Gets the attributes for this symbol. Returns an empty <see cref="ImmutableArray<AttributeData>"/> if
27public virtual ImmutableArray<CSharpAttributeData> GetAttributes()
34return ImmutableArray<CSharpAttributeData>.Empty;
259internal virtual void PostDecodeWellKnownAttributes(ImmutableArray<CSharpAttributeData> boundAttributes, ImmutableArray<AttributeSyntax> allAttributeSyntaxNodes, BindingDiagnosticBag diagnostics, AttributeLocation symbolPart, WellKnownAttributeData decodedData)
311ImmutableArray<Binder> binders;
313ImmutableArray<AttributeSyntax> attributesToBind = this.GetAttributesToBind(attributesSyntaxLists, symbolPart, diagnostics, compilation, attributeMatchesOpt, binderOpt, out binders);
317ImmutableArray<CSharpAttributeData> boundAttributes;
348ImmutableArray<NamedTypeSymbol> boundAttributeTypes = attributeTypesBuilder.AsImmutableOrNull();
392boundAttributes = ImmutableArray<CSharpAttributeData>.Empty;
424Binder.CheckRequiredMembersInObjectInitializer(ctor, ImmutableArray<BoundExpression>.CastUp(boundAttribute.NamedArguments), boundAttribute.Syntax, diagnostics);
441void removeObsoleteDiagnosticsForForwardedTypes(ImmutableArray<CSharpAttributeData> boundAttributes, ImmutableArray<AttributeSyntax> attributesToBind, ref BindingDiagnosticBag diagnostics)
539protected ImmutableArray<(CSharpAttributeData, BoundAttribute)> BindAttributes(OneOrMany<SyntaxList<AttributeListSyntax>> attributeDeclarations, Binder? rootBinder)
561private void RecordPresenceOfBadAttributes(ImmutableArray<CSharpAttributeData> boundAttributes)
583private ImmutableArray<AttributeSyntax> GetAttributesToBind(
590out ImmutableArray<Binder> binders)
657binders = ImmutableArray<Binder>.Empty;
658return ImmutableArray<AttributeSyntax>.Empty;
765ImmutableArray<Binder> binders,
766ImmutableArray<NamedTypeSymbol> boundAttributeTypes,
767ImmutableArray<AttributeSyntax> attributesToBind,
813private void EarlyDecodeWellKnownAttributeTypes(ImmutableArray<NamedTypeSymbol> attributeTypes, ImmutableArray<AttributeSyntax> attributeSyntaxList)
837ImmutableArray<Binder> binders,
838ImmutableArray<AttributeSyntax> attributeSyntaxList,
839ImmutableArray<CSharpAttributeData> boundAttributes,
Symbols\Synthesized\SynthesizedEmbeddedNullableAttributeSymbol.cs (10)
18private readonly ImmutableArray<FieldSymbol> _fields;
19private readonly ImmutableArray<MethodSymbol> _constructors;
66public override ImmutableArray<MethodSymbol> Constructors => _constructors;
76private void GenerateByteArrayConstructorBody(SyntheticBoundNodeFactory factory, ArrayBuilder<BoundStatement> statements, ImmutableArray<ParameterSymbol> parameters)
90private void GenerateSingleByteConstructorBody(SyntheticBoundNodeFactory factory, ArrayBuilder<BoundStatement> statements, ImmutableArray<ParameterSymbol> parameters)
112private readonly ImmutableArray<ParameterSymbol> _parameters;
114private readonly Action<SyntheticBoundNodeFactory, ArrayBuilder<BoundStatement>, ImmutableArray<ParameterSymbol>> _getConstructorBody;
118Func<MethodSymbol, ImmutableArray<ParameterSymbol>> getParameters,
119Action<SyntheticBoundNodeFactory, ArrayBuilder<BoundStatement>, ImmutableArray<ParameterSymbol>> getConstructorBody) :
126public override ImmutableArray<ParameterSymbol> Parameters => _parameters;
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (34)
92public override ImmutableArray<TypeParameterSymbol> TypeParameters
94get { return ImmutableArray<TypeParameterSymbol>.Empty; }
102public override ImmutableArray<Location> Locations
104get { return ImmutableArray<Location>.Empty; }
107public override ImmutableArray<SyntaxReference> DeclaringSyntaxReferences
111return ImmutableArray<SyntaxReference>.Empty;
120public override ImmutableArray<CustomModifier> RefCustomModifiers
122get { return ImmutableArray<CustomModifier>.Empty; }
125public override ImmutableArray<TypeWithAnnotations> TypeArgumentsWithAnnotations
127get { return ImmutableArray<TypeWithAnnotations>.Empty; }
218public override ImmutableArray<MethodSymbol> ExplicitInterfaceImplementations
220get { return ImmutableArray<MethodSymbol>.Empty; }
275internal sealed override ImmutableArray<string> GetAppliedConditionalSymbols()
277return ImmutableArray<string>.Empty;
298ImmutableArray<BoundExpression>.Empty,
299default(ImmutableArray<string>),
300default(ImmutableArray<RefKind>),
304argsToParamsOpt: default(ImmutableArray<int>),
336private readonly ImmutableArray<ParameterSymbol> _parameters;
362argumentNamesOpt: default(ImmutableArray<string>),
363argumentRefKindsOpt: default(ImmutableArray<RefKind>),
367argsToParamsOpt: default(ImmutableArray<int>),
390public override ImmutableArray<ParameterSymbol> Parameters => _parameters;
402locals: ImmutableArray<LocalSymbol>.Empty,
425locals: ImmutableArray<LocalSymbol>.Empty,
456public override ImmutableArray<ParameterSymbol> Parameters => ImmutableArray<ParameterSymbol>.Empty;
496locals: ImmutableArray<LocalSymbol>.Empty,
497statements: ImmutableArray<BoundStatement>.Empty,
532private readonly ImmutableArray<ParameterSymbol> _parameters;
551public override ImmutableArray<ParameterSymbol> Parameters
591argumentNamesOpt: default(ImmutableArray<string>),
592argumentRefKindsOpt: default(ImmutableArray<RefKind>),
594argsToParamsOpt: default(ImmutableArray<int>),
Symbols\Tuples\TupleTypeSymbol.cs (64)
31ImmutableArray<TypeWithAnnotations> elementTypesWithAnnotations,
32ImmutableArray<Location?> elementLocations,
33ImmutableArray<string?> elementNames,
37ImmutableArray<bool> errorPositions,
60var locations = locationOpt is null ? ImmutableArray<Location>.Empty : ImmutableArray.Create(locationOpt);
73static NamedTypeSymbol getTupleUnderlyingType(ImmutableArray<TypeWithAnnotations> elementTypes, CSharpSyntaxNode? syntax, CSharpCompilation compilation, BindingDiagnosticBag? diagnostics)
101ImmutableArray<string?> elementNames = default,
102ImmutableArray<bool> errorPositions = default,
103ImmutableArray<Location?> elementLocations = default,
104ImmutableArray<Location> locations = default)
126internal NamedTypeSymbol WithElementTypes(ImmutableArray<TypeWithAnnotations> newElementTypes)
160internal NamedTypeSymbol WithElementNames(ImmutableArray<string?> newElementNames,
161ImmutableArray<Location?> newElementLocations,
162ImmutableArray<bool> errorPositions,
163ImmutableArray<Location> locations)
231private static NamedTypeSymbol ConstructTupleUnderlyingType(NamedTypeSymbol firstTupleType, NamedTypeSymbol? chainedTupleTypeOpt, ImmutableArray<TypeWithAnnotations> elementTypes)
243var chainedTypes = ImmutableArray.Create(elementTypes, (loop - 1) * (ValueTupleRestPosition - 1), ValueTupleRestPosition - 1).Add(TypeWithAnnotations.Create(currentSymbol));
279var sourceNames = literal.ArgumentNamesOpt;
285ImmutableArray<bool> inferredNames = literal.InferredNamesOpt;
287ImmutableArray<string> destinationNames = destination.TupleElementNames;
521var members = type.GetMembers(relativeDescriptor.Name);
549public sealed override ImmutableArray<string?> TupleElementNames
552private ImmutableArray<bool> TupleErrorPositions
555private ImmutableArray<Location?> TupleElementLocations
558public sealed override ImmutableArray<TypeWithAnnotations> TupleElementTypesWithAnnotations
561public sealed override ImmutableArray<FieldSymbol> TupleElements
569protected ArrayBuilder<Symbol> MakeSynthesizedTupleMembers(ImmutableArray<Symbol> currentMembers, HashSet<Symbol>? replacedFields = null)
574var elementTypes = TupleElementTypesWithAnnotations;
586var elementNames = TupleElementNames;
587var elementLocations = TupleData!.ElementLocations;
625ImmutableArray<Location> locations = getElementLocations(in elementLocations, tupleFieldIndex);
670var errorPositions = TupleErrorPositions;
798static void collectTargetTupleFields(int arity, ImmutableArray<Symbol> members, ArrayBuilder<FieldSymbol?> fieldsForElements)
809static Symbol? getWellKnownMemberInType(ImmutableArray<Symbol> members, WellKnownMember relativeMember)
818static ImmutableArray<Symbol> getOriginalFields(ImmutableArray<Symbol> members)
841static ImmutableArray<Location> getElementLocations(in ImmutableArray<Location?> elementLocations, int tupleFieldIndex)
845return ImmutableArray<Location>.Empty;
849return elementLocation == null ? ImmutableArray<Location>.Empty : ImmutableArray.Create(elementLocation);
856ImmutableArray<string?> names1 = TupleElementNames;
857ImmutableArray<string?> names2 = other.TupleElementNames;
858ImmutableArray<string?> mergedNames;
888internal ImmutableArray<string?> ElementNames { get; }
894internal ImmutableArray<Location?> ElementLocations { get; }
901internal ImmutableArray<bool> ErrorPositions { get; }
903internal ImmutableArray<Location> Locations { get; }
908private ImmutableArray<TypeWithAnnotations> _lazyElementTypes;
910private ImmutableArray<FieldSymbol> _lazyDefaultElementFields;
926Locations = ImmutableArray<Location>.Empty;
929internal TupleExtraData(NamedTypeSymbol underlyingType, ImmutableArray<string?> elementNames,
930ImmutableArray<Location?> elementLocations, ImmutableArray<bool> errorPositions, ImmutableArray<Location> locations)
951static bool areEqual<T>(ImmutableArray<T> one, ImmutableArray<T> other)
967public ImmutableArray<TypeWithAnnotations> TupleElementTypesWithAnnotations(NamedTypeSymbol tuple)
977static ImmutableArray<TypeWithAnnotations> collectTupleElementTypesWithAnnotations(NamedTypeSymbol tuple)
979ImmutableArray<TypeWithAnnotations> elementTypes;
984var extensionTupleElementTypes = tuple.TypeArgumentsWithAnnotationsNoUseSiteDiagnostics[ValueTupleRestPosition - 1].Type.TupleElementTypesWithAnnotations;
999public ImmutableArray<FieldSymbol> TupleElements(NamedTypeSymbol tuple)
1009ImmutableArray<FieldSymbol> collectTupleElementFields(NamedTypeSymbol tuple)
1053var members = TupleUnderlyingType.GetMembers();
Symbols\TypeMap.cs (21)
25internal static ImmutableArray<TypeWithAnnotations> TypeParametersAsTypeSymbolsWithAnnotations(ImmutableArray<TypeParameterSymbol> typeParameters)
30internal static ImmutableArray<TypeWithAnnotations> TypeParametersAsTypeSymbolsWithIgnoredAnnotations(ImmutableArray<TypeParameterSymbol> typeParameters)
35internal static ImmutableArray<TypeSymbol> AsTypeSymbols(ImmutableArray<TypeWithAnnotations> typesOpt)
41internal TypeMap(ImmutableArray<TypeParameterSymbol> from, ImmutableArray<TypeWithAnnotations> to, bool allowAlpha = false)
49internal TypeMap(ImmutableArray<TypeParameterSymbol> from, ImmutableArray<TypeParameterSymbol> to, bool allowAlpha = false)
69internal TypeMap(NamedTypeSymbol containingType, ImmutableArray<TypeParameterSymbol> typeParameters, ImmutableArray<TypeWithAnnotations> typeArguments)
102internal TypeMap WithAlphaRename(ImmutableArray<TypeParameterSymbol> oldTypeParameters, Symbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters)
106newTypeParameters = ImmutableArray<TypeParameterSymbol>.Empty;
138internal TypeMap WithAlphaRename(NamedTypeSymbol oldOwner, NamedTypeSymbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters)
144internal TypeMap WithAlphaRename(MethodSymbol oldOwner, Symbol newOwner, out ImmutableArray<TypeParameterSymbol> newTypeParameters)
150internal static ImmutableArray<TypeParameterSymbol> ConcatMethodTypeParameters(MethodSymbol oldOwner, MethodSymbol stopAt)
170var currentParameters = oldOwner.OriginalDefinition.TypeParameters;
193private static SmallDictionary<TypeParameterSymbol, TypeWithAnnotations> ConstructMapping(ImmutableArray<TypeParameterSymbol> from, ImmutableArray<TypeWithAnnotations> to)
Symbols\TypeWithAnnotations.cs (27)
85internal static TypeWithAnnotations Create(TypeSymbol typeSymbol, NullableAnnotation nullableAnnotation = NullableAnnotation.Oblivious, ImmutableArray<CustomModifier> customModifiers = default)
168private static TypeWithAnnotations CreateNonLazyType(TypeSymbol typeSymbol, NullableAnnotation nullableAnnotation, ImmutableArray<CustomModifier> customModifiers)
178private static TypeWithAnnotations CreateLazySubstitutedType(TypeSymbol substitutedTypeSymbol, ImmutableArray<CustomModifier> customModifiers, TypeParameterSymbol typeParameter)
250public TypeWithAnnotations WithModifiers(ImmutableArray<CustomModifier> customModifiers) =>
269public ImmutableArray<CustomModifier> CustomModifiers => _extensions.CustomModifiers;
444var newCustomModifiers = typeMap.SubstituteCustomModifiers(this.CustomModifiers);
567public TypeWithAnnotations WithTypeAndModifiers(TypeSymbol typeSymbol, ImmutableArray<CustomModifier> customModifiers) =>
661public bool ApplyNullableTransforms(byte defaultTransformFlag, ImmutableArray<byte> transforms, ref int position, out TypeWithAnnotations result)
840internal static readonly Extensions Default = new NonLazyType(customModifiers: ImmutableArray<CustomModifier>.Empty);
842internal static Extensions Create(ImmutableArray<CustomModifier> customModifiers)
854internal abstract ImmutableArray<CustomModifier> CustomModifiers { get; }
859internal abstract TypeWithAnnotations WithModifiers(TypeWithAnnotations type, ImmutableArray<CustomModifier> customModifiers);
873internal abstract TypeWithAnnotations WithTypeAndModifiers(TypeWithAnnotations type, TypeSymbol typeSymbol, ImmutableArray<CustomModifier> customModifiers);
884private readonly ImmutableArray<CustomModifier> _customModifiers;
886public NonLazyType(ImmutableArray<CustomModifier> customModifiers)
895internal override ImmutableArray<CustomModifier> CustomModifiers => _customModifiers;
907internal override TypeWithAnnotations WithModifiers(TypeWithAnnotations type, ImmutableArray<CustomModifier> customModifiers)
914internal override TypeWithAnnotations WithTypeAndModifiers(TypeWithAnnotations type, TypeSymbol typeSymbol, ImmutableArray<CustomModifier> customModifiers)
956private readonly ImmutableArray<CustomModifier> _customModifiers;
962public LazySubstitutedType(ImmutableArray<CustomModifier> customModifiers, TypeParameterSymbol typeParameter)
1010internal override ImmutableArray<CustomModifier> CustomModifiers => _customModifiers;
1012internal override TypeWithAnnotations WithModifiers(TypeWithAnnotations type, ImmutableArray<CustomModifier> customModifiers)
1017internal override TypeWithAnnotations WithTypeAndModifiers(TypeWithAnnotations type, TypeSymbol typeSymbol, ImmutableArray<CustomModifier> customModifiers)
1110internal override ImmutableArray<CustomModifier> CustomModifiers => ImmutableArray<CustomModifier>.Empty;
1112internal override TypeWithAnnotations WithModifiers(TypeWithAnnotations type, ImmutableArray<CustomModifier> customModifiers)
1128internal override TypeWithAnnotations WithTypeAndModifiers(TypeWithAnnotations type, TypeSymbol typeSymbol, ImmutableArray<CustomModifier> customModifiers)
src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AbstractAssignOutParametersCodeFixProvider.cs (8)
25public sealed override ImmutableArray<string> FixableDiagnosticIds { get; } =
94private static async Task<MultiDictionary<SyntaxNode, (SyntaxNode exprOrStatement, ImmutableArray<IParameterSymbol>)>> GetUnassignedParametersAsync(
95Document document, ImmutableArray<Diagnostic> diagnostics, CancellationToken cancellationToken)
104var result = new MultiDictionary<SyntaxNode, (SyntaxNode exprOrStatement, ImmutableArray<IParameterSymbol>)>();
135Document document, ImmutableArray<Diagnostic> diagnostics,
150MultiDictionary<SyntaxNode, (SyntaxNode exprOrStatement, ImmutableArray<IParameterSymbol> unassignedParameters)>.ValueSet values,
153protected static ImmutableArray<SyntaxNode> GenerateAssignmentStatements(
154SyntaxGenerator generator, ImmutableArray<IParameterSymbol> unassignedParameters)
src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\PassInCapturedVariablesAsArgumentsCodeFixProvider.cs (5)
29public override ImmutableArray<string> FixableDiagnosticIds { get; } = [CS8421];
52protected override Task FixAllAsync(Document document, ImmutableArray<Diagnostic> diagnostics, SyntaxEditor editor, CancellationToken cancellationToken)
64ImmutableArray<Diagnostic> diagnostics,
65Func<Document, LocalFunctionStatementSyntax, ImmutableArray<ISymbol>, Task> fixer,
89if (MakeLocalFunctionStaticHelper.CanMakeLocalFunctionStaticByRefactoringCaptures(localFunction, semanticModel, out var captures))
CodeRefactorings\SyncNamespace\CSharpChangeNamespaceService.cs (11)
39protected override async Task<ImmutableArray<(DocumentId, SyntaxNode)>> GetValidContainersFromAllLinkedDocumentsAsync(
108ImmutableArray<string> newNamespaceParts,
205ImmutableArray<string> newNamespaceParts,
234ImmutableArray<string> declaredNamespaceParts,
235ImmutableArray<string> targetNamespaceParts)
312private static CompilationUnitSyntax MoveMembersFromGlobalToNamespace(CompilationUnitSyntax compilationUnit, ImmutableArray<string> targetNamespaceParts)
364var namespaceDecls = node.AncestorsAndSelf().OfType<BaseNamespaceDeclarationSyntax>().ToImmutableArray();
414private static NameSyntax CreateNamespaceAsQualifiedName(ImmutableArray<string> namespaceParts, string? aliasQualifier, int index)
427private static ExpressionSyntax CreateNamespaceAsMemberAccess(ImmutableArray<string> namespaceParts, string? aliasQualifier, int index)
452private static (ImmutableArray<SyntaxTrivia> openingTrivia, ImmutableArray<SyntaxTrivia> closingTrivia)
Completion\CompletionProviders\CrefCompletionProvider.cs (11)
89protected override async Task<(SyntaxToken, SemanticModel?, ImmutableArray<ISymbol>)> GetSymbolsAsync(
164private static ImmutableArray<ISymbol> GetSymbols(
179private static ImmutableArray<ISymbol> GetUnqualifiedSymbols(
210private static ImmutableArray<ISymbol> GetQualifiedSymbols(
237SemanticModel semanticModel, ImmutableArray<ISymbol> symbols, SyntaxToken token, int position, ImmutableArray<KeyValuePair<string, string>> options)
260ImmutableArray<KeyValuePair<string, string>> options, [NotNullWhen(true)] out CompletionItem? item)
283ImmutableArray<KeyValuePair<string, string>> options,
329ISymbol symbol, int position, StringBuilder builder, string sortText, ImmutableArray<KeyValuePair<string, string>> options)
353var commitRules = ImmutableArray<CharacterSetModificationRule>.Empty;
Completion\CompletionProviders\DeclarationName\DeclarationNameRecommender.NameGenerator.cs (13)
11using Words = System.Collections.Immutable.ImmutableArray<string>;
22internal static ImmutableArray<Words> GetBaseNames(ITypeSymbol type, bool pluralize)
27var result = GetInterleavedPatterns(parts, baseName, pluralize);
32internal static ImmutableArray<Words> GetBaseNames(IAliasSymbol alias)
44var result = GetInterleavedPatterns(breaks, name, pluralize: false);
48private static ImmutableArray<Words> GetInterleavedPatterns(
51using var result = TemporaryArray<Words>.Empty;
67private static Words GetLongestBackwardSubsequence(int length, in TemporaryArray<TextSpan> breaks, string baseName, bool pluralize)
74private static Words GetLongestForwardSubsequence(int length, in TemporaryArray<TextSpan> breaks, string baseName, bool pluralize)
77private static Words GetWords(int start, int end, in TemporaryArray<TextSpan> breaks, string baseName, bool pluralize)
Completion\CompletionProviders\PropertySubPatternCompletionProvider.cs (4)
70var members = GetCandidatePropertiesAndFields(document, semanticModel, position, type);
119var members = GetCandidatePropertiesAndFields(document, semanticModel, position, type);
134static ImmutableArray<ISymbol> GetCandidatePropertiesAndFields(Document document, SemanticModel semanticModel, int position, ITypeSymbol? type)
136var members = semanticModel.LookupSymbols(position, type);
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryNullableDirective\CSharpRemoveUnnecessaryNullableDirectiveDiagnosticAnalyzer.cs (6)
81private static ImmutableArray<TextSpan> AnalyzeCodeBlock(CodeBlockAnalysisContext context, int positionOfFirstReducingNullableDirective)
88private ImmutableArray<Diagnostic> AnalyzeSemanticModel(SemanticModelAnalysisContext context, int positionOfFirstReducingNullableDirective, TextSpanMutableIntervalTree? codeBlockIntervalTree, TextSpanMutableIntervalTree? possibleNullableImpactIntervalTree)
220public bool TryReportNullableImpactingSpans(TextSpan span, ImmutableArray<TextSpan> nullableImpactingSpans)
224private bool TryProceedOrReportNullableImpactingSpans(TextSpan span, ImmutableArray<TextSpan>? nullableImpactingSpans)
286var nullableImpactingSpans = CSharpRemoveUnnecessaryNullableDirectiveDiagnosticAnalyzer.AnalyzeCodeBlock(context, syntaxTreeState.PositionOfFirstReducingNullableDirective.Value);
314var diagnostics = _analyzer.AnalyzeSemanticModel(context, positionOfFirstReducingNullableDirective, syntaxTreeState.IntervalTree, syntaxTreeState.PossibleNullableImpactIntervalTree);
src\Analyzers\CSharp\CodeFixes\AssignOutParameters\AbstractAssignOutParametersCodeFixProvider.cs (8)
25public sealed override ImmutableArray<string> FixableDiagnosticIds { get; } =
94private static async Task<MultiDictionary<SyntaxNode, (SyntaxNode exprOrStatement, ImmutableArray<IParameterSymbol>)>> GetUnassignedParametersAsync(
95Document document, ImmutableArray<Diagnostic> diagnostics, CancellationToken cancellationToken)
104var result = new MultiDictionary<SyntaxNode, (SyntaxNode exprOrStatement, ImmutableArray<IParameterSymbol>)>();
135Document document, ImmutableArray<Diagnostic> diagnostics,
150MultiDictionary<SyntaxNode, (SyntaxNode exprOrStatement, ImmutableArray<IParameterSymbol> unassignedParameters)>.ValueSet values,
153protected static ImmutableArray<SyntaxNode> GenerateAssignmentStatements(
154SyntaxGenerator generator, ImmutableArray<IParameterSymbol> unassignedParameters)
src\Analyzers\CSharp\CodeFixes\MakeLocalFunctionStatic\PassInCapturedVariablesAsArgumentsCodeFixProvider.cs (5)
29public override ImmutableArray<string> FixableDiagnosticIds { get; } = [CS8421];
52protected override Task FixAllAsync(Document document, ImmutableArray<Diagnostic> diagnostics, SyntaxEditor editor, CancellationToken cancellationToken)
64ImmutableArray<Diagnostic> diagnostics,
65Func<Document, LocalFunctionStatementSyntax, ImmutableArray<ISymbol>, Task> fixer,
89if (MakeLocalFunctionStaticHelper.CanMakeLocalFunctionStaticByRefactoringCaptures(localFunction, semanticModel, out var captures))
EditAndContinue\ActiveStatementTrackingService.cs (15)
55public ValueTask<ImmutableArray<ActiveStatementSpan>> GetSpansAsync(Solution solution, DocumentId? documentId, string filePath, CancellationToken cancellationToken)
93public ValueTask<ImmutableArray<ActiveStatementSpan>> GetSpansAsync(Solution solution, DocumentId? documentId, string filePath, CancellationToken cancellationToken)
96public ValueTask<ImmutableArray<ActiveStatementTrackingSpan>> GetAdjustedTrackingSpansAsync(TextDocument document, ITextSnapshot snapshot, CancellationToken cancellationToken)
116private readonly Dictionary<string, ImmutableArray<ActiveStatementTrackingSpan>> _trackingSpans = [];
130internal Dictionary<string, ImmutableArray<ActiveStatementTrackingSpan>> Test_GetTrackingSpans()
198var openDocumentIds = _workspace.GetOpenDocumentIds().ToImmutableArray();
259private static ImmutableArray<ActiveStatementTrackingSpan> CreateTrackingSpans(ITextSnapshot snapshot, ImmutableArray<ActiveStatementSpan> activeStatementSpans)
262private static ImmutableArray<ActiveStatementTrackingSpan> UpdateTrackingSpans(
264ImmutableArray<ActiveStatementTrackingSpan> oldSpans,
265ImmutableArray<ActiveStatementSpan> newSpans)
315public async ValueTask<ImmutableArray<ActiveStatementSpan>> GetSpansAsync(Solution solution, DocumentId? documentId, string filePath, CancellationToken cancellationToken)
329if (_trackingSpans.TryGetValue(filePath, out var documentSpans) && !documentSpans.IsDefaultOrEmpty)
345internal async ValueTask<ImmutableArray<ActiveStatementTrackingSpan>> GetAdjustedTrackingSpansAsync(TextDocument document, ITextSnapshot snapshot, CancellationToken cancellationToken)
367var hasExistingSpans = _trackingSpans.TryGetValue(document.FilePath, out var oldSpans);
Extensibility\NavigationBar\SimpleNavigationBarItem.cs (2)
12internal sealed class SimpleNavigationBarItem(ITextVersion textVersion, string text, Glyph glyph, ImmutableArray<TextSpan> spans, ImmutableArray<NavigationBarItem> childItems, int indent, bool bolded, bool grayed) : NavigationBarItem(textVersion, text, glyph, spans, childItems, indent, bolded, grayed), IEquatable<SimpleNavigationBarItem>
ExternalAccess\VSTypeScript\Api\IVSTypeScriptFormattingInteractionService.cs (4)
31Task<ImmutableArray<TextChange>> GetFormattingChangesAsync(Document document, TextSpan? textSpan, DocumentOptionSet? documentOptions, CancellationToken cancellationToken);
36Task<ImmutableArray<TextChange>> GetFormattingChangesOnPasteAsync(Document document, TextSpan textSpan, DocumentOptionSet? documentOptions, CancellationToken cancellationToken);
43Task<ImmutableArray<TextChange>> GetFormattingChangesAsync(Document document, char typedChar, int position, DocumentOptionSet? documentOptions, CancellationToken cancellationToken);
48Task<ImmutableArray<TextChange>> GetFormattingChangesOnReturnAsync(Document document, int position, DocumentOptionSet? documentOptions, CancellationToken cancellationToken);
ExternalAccess\VSTypeScript\VSTypeScriptFormattingInteractionService.cs (4)
33public Task<ImmutableArray<TextChange>> GetFormattingChangesAsync(Document document, ITextBuffer textBuffer, TextSpan? textSpan, CancellationToken cancellationToken)
36public Task<ImmutableArray<TextChange>> GetFormattingChangesOnPasteAsync(Document document, ITextBuffer textBuffer, TextSpan textSpan, CancellationToken cancellationToken)
39public Task<ImmutableArray<TextChange>> GetFormattingChangesAsync(Document document, ITextBuffer textBuffer, char typedChar, int position, CancellationToken cancellationToken)
42public Task<ImmutableArray<TextChange>> GetFormattingChangesOnReturnAsync(Document document, int position, CancellationToken cancellationToken)
Formatting\IFormattingInteractionService.cs (4)
31Task<ImmutableArray<TextChange>> GetFormattingChangesAsync(Document document, ITextBuffer textBuffer, TextSpan? textSpan, CancellationToken cancellationToken);
36Task<ImmutableArray<TextChange>> GetFormattingChangesOnPasteAsync(Document document, ITextBuffer textBuffer, TextSpan textSpan, CancellationToken cancellationToken);
43Task<ImmutableArray<TextChange>> GetFormattingChangesAsync(Document document, ITextBuffer textBuffer, char typedChar, int position, CancellationToken cancellationToken);
48Task<ImmutableArray<TextChange>> GetFormattingChangesOnReturnAsync(Document document, int position, CancellationToken cancellationToken);
InlineRename\UI\SmartRename\SmartRenameViewModel.cs (6)
39/// Cancellation token source for <see cref="ISmartRenameSessionWrapper.GetSuggestionsAsync(ImmutableDictionary{string, ImmutableArray{ValueTuple{string, string}}}, CancellationToken)"/>.
71/// and call to <see cref="ISmartRenameSessionWrapper.GetSuggestionsAsync(ImmutableDictionary{string, ImmutableArray{ValueTuple{string, string}}}, CancellationToken)"/>.
201/// 3. Call to <see cref="ISmartRenameSessionWrapper.GetSuggestionsAsync(ImmutableDictionary{string, ImmutableArray{ValueTuple{string, string}}}, CancellationToken)"/>.
227var smartRenameContext = ImmutableDictionary<string, ImmutableArray<(string filePath, string content)>>.Empty;
235smartRenameContext = ImmutableDictionary.CreateRange<string, ImmutableArray<(string filePath, string content)>>(
237.Select(n => new KeyValuePair<string, ImmutableArray<(string filePath, string content)>>(n.Key, n.Value)));
Interactive\InteractiveSession.cs (16)
63private ImmutableArray<string> _referenceSearchPaths;
64private ImmutableArray<string> _sourceSearchPaths;
177var imports = ImmutableArray<string>.Empty;
178var references = ImmutableArray<MetadataReference>.Empty;
180var initializationScriptImports = ImmutableArray<string>.Empty;
181var initializationScriptReferences = ImmutableArray<MetadataReference>.Empty;
271private Project CreateSubmissionProjectNoLock(Solution solution, ProjectId newSubmissionProjectId, ProjectId? previousSubmissionProjectId, string languageName, ImmutableArray<string> imports, ImmutableArray<MetadataReference> references)
385private static RuntimeMetadataReferenceResolver CreateMetadataReferenceResolver(IMetadataService metadataService, InteractiveHostPlatformInfo platformInfo, ImmutableArray<string> searchPaths, string baseDirectory)
395private static SourceReferenceResolver CreateSourceReferenceResolver(ImmutableArray<string> searchPaths, string baseDirectory)
398public Task SetPathsAsync(ImmutableArray<string> referenceSearchPaths, ImmutableArray<string> sourceSearchPaths, string workingDirectory)
Interactive\ResetInteractive.cs (12)
46if (GetProjectProperties(out var references, out var referenceSearchPaths, out var sourceSearchPaths, out var projectNamespaces, out var projectDirectory, out var platform))
77ImmutableArray<string> referencePaths,
78ImmutableArray<string> referenceSearchPaths,
79ImmutableArray<string> sourceSearchPaths,
80ImmutableArray<string> projectNamespaces,
133out ImmutableArray<string> references,
134out ImmutableArray<string> referenceSearchPaths,
135out ImmutableArray<string> sourceSearchPaths,
136out ImmutableArray<string> projectNamespaces,
AddConstructorParametersFromMembers\AddConstructorParametersFromMembersCodeRefactoringProvider.State.cs (14)
24public ImmutableArray<ConstructorCandidate> ConstructorCandidates { get; private set; }
30ImmutableArray<ISymbol> selectedMembers,
45ImmutableArray<ISymbol> selectedMembers,
51var rules = await document.GetNamingRulesAsync(cancellationToken).ConfigureAwait(false);
52var parametersForSelectedMembers = DetermineParameters(selectedMembers, rules);
77private static async Task<ImmutableArray<ConstructorCandidate>> GetConstructorCandidatesInfoAsync(
79ImmutableArray<ISymbol> selectedMembers,
81ImmutableArray<IParameterSymbol> parametersForSelectedMembers,
98private static async Task<bool> IsApplicableConstructorAsync(IMethodSymbol constructor, Document document, ImmutableArray<string> parameterNamesForSelectedMembers, CancellationToken cancellationToken)
100var constructorParams = constructor.Parameters;
118private static bool SelectedMembersAlreadyExistAsParameters(ImmutableArray<string> parameterNamesForSelectedMembers, ImmutableArray<IParameterSymbol> constructorParams)
122private static ConstructorCandidate CreateConstructorCandidate(ImmutableArray<IParameterSymbol> parametersForSelectedMembers, ImmutableArray<ISymbol> selectedMembers, IMethodSymbol constructor)
AddImport\AbstractAddImportFeatureService.cs (32)
64public async Task<ImmutableArray<AddImportFixData>> GetFixesAsync(
67ImmutableArray<PackageSource> packageSources, CancellationToken cancellationToken)
72var result = await client.TryInvokeAsync<IRemoteMissingImportDiscoveryService, ImmutableArray<AddImportFixData>>(
88private async Task<ImmutableArray<AddImportFixData>> GetFixesInCurrentProcessAsync(
91ImmutableArray<PackageSource> packageSources, CancellationToken cancellationToken)
131private async Task<ImmutableArray<Reference>> FindResultsAsync(
139ImmutableArray<PackageSource> packageSources,
152var exactReferences = await FindResultsAsync(projectToAssembly, referenceToCompilation, project, maxResults, finder, exact: true, cancellationToken).ConfigureAwait(false);
162var fuzzyReferences = await FindResultsAsync(projectToAssembly, referenceToCompilation, project, maxResults, finder, exact: false, cancellationToken).ConfigureAwait(false);
169private async Task<ImmutableArray<Reference>> FindResultsAsync(
234await ProducerConsumer<ImmutableArray<SymbolReference>>.RunParallelAsync(
275var newReferences = GetUnreferencedMetadataReferences(project, seenReferences);
285await ProducerConsumer<ImmutableArray<SymbolReference>>.RunParallelAsync(
321private static ImmutableArray<(Project, PortableExecutableReference)> GetUnreferencedMetadataReferences(
351IAsyncEnumerable<ImmutableArray<SymbolReference>> reader,
354await foreach (var symbolReferences in reader)
474private static void AddRange(ConcurrentQueue<Reference> allSymbolReferences, ImmutableArray<SymbolReference> proposedReferences)
514public async Task<ImmutableArray<(Diagnostic Diagnostic, ImmutableArray<AddImportFixData> Fixes)>> GetFixesForDiagnosticsAsync(
515Document document, TextSpan span, ImmutableArray<Diagnostic> diagnostics, int maxResultsPerDiagnostic,
517ImmutableArray<PackageSource> packageSources, CancellationToken cancellationToken)
522var result = new FixedSizeArrayBuilder<(Diagnostic, ImmutableArray<AddImportFixData>)>(diagnostics.Length);
526var fixes = await GetFixesAsync(
537public async Task<ImmutableArray<AddImportFixData>> GetUniqueFixesAsync(
538Document document, TextSpan span, ImmutableArray<string> diagnosticIds,
540ImmutableArray<PackageSource> packageSources, CancellationToken cancellationToken)
545var result = await client.TryInvokeAsync<IRemoteMissingImportDiscoveryService, ImmutableArray<AddImportFixData>>(
561private async Task<ImmutableArray<AddImportFixData>> GetUniqueFixesAsyncInCurrentProcessAsync(
564ImmutableArray<string> diagnosticIds,
567ImmutableArray<PackageSource> packageSources,
603public ImmutableArray<CodeAction> GetCodeActionsForFixes(
604Document document, ImmutableArray<AddImportFixData> fixes,
AddImport\AddImportFixData.cs (10)
18ImmutableArray<TextChange> textChanges,
20ImmutableArray<string> tags = default,
41public readonly ImmutableArray<TextChange> TextChanges = textChanges;
53public readonly ImmutableArray<string> Tags = tags;
113public static AddImportFixData CreateForProjectSymbol(ImmutableArray<TextChange> textChanges, string title, ImmutableArray<string> tags, CodeActionPriority priority, ProjectId projectReferenceToAdd)
121public static AddImportFixData CreateForMetadataSymbol(ImmutableArray<TextChange> textChanges, string title, ImmutableArray<string> tags, CodeActionPriority priority, ProjectId portableExecutableReferenceProjectId, string portableExecutableReferenceFilePathToAdd)
130public static AddImportFixData CreateForReferenceAssemblySymbol(ImmutableArray<TextChange> textChanges, string title, string assemblyReferenceAssemblyName, string assemblyReferenceFullyQualifiedTypeName)
139public static AddImportFixData CreateForPackageSymbol(ImmutableArray<TextChange> textChanges, string packageSource, string packageName, string packageVersionOpt)
AddImport\IAddImportFeatureService.cs (12)
22Task<ImmutableArray<AddImportFixData>> GetFixesAsync(
25ImmutableArray<PackageSource> packageSources, CancellationToken cancellationToken);
31Task<ImmutableArray<(Diagnostic Diagnostic, ImmutableArray<AddImportFixData> Fixes)>> GetFixesForDiagnosticsAsync(
32Document document, TextSpan span, ImmutableArray<Diagnostic> diagnostics, int maxResultsPerDiagnostic,
34ImmutableArray<PackageSource> packageSources, CancellationToken cancellationToken);
40ImmutableArray<CodeAction> GetCodeActionsForFixes(
41Document document, ImmutableArray<AddImportFixData> fixes,
46/// Similar to <see cref="GetFixesAsync(Document, TextSpan, string, int, ISymbolSearchService, AddImportOptions, ImmutableArray{PackageSource}, CancellationToken)"/>
49Task<ImmutableArray<AddImportFixData>> GetUniqueFixesAsync(
50Document document, TextSpan span, ImmutableArray<string> diagnosticIds,
52ImmutableArray<PackageSource> packageSources, CancellationToken cancellationToken);
AddImport\Remote\IRemoteMissingImportDiscoveryService.cs (8)
19ValueTask<ImmutableArray<PackageResult>> FindPackagesAsync(RemoteServiceCallbackId callbackId, string source, TypeQuery typeQuery, NamespaceQuery namespaceQuery, CancellationToken cancellationToken);
20ValueTask<ImmutableArray<PackageWithAssemblyResult>> FindPackagesWithAssemblyAsync(RemoteServiceCallbackId callbackId, string source, string name, CancellationToken cancellationToken);
21ValueTask<ImmutableArray<ReferenceAssemblyResult>> FindReferenceAssembliesAsync(RemoteServiceCallbackId callbackId, TypeQuery typeQuery, NamespaceQuery namespaceQuery, CancellationToken cancellationToken);
24ValueTask<ImmutableArray<AddImportFixData>> GetFixesAsync(
26AddImportOptions options, ImmutableArray<PackageSource> packageSources, CancellationToken cancellationToken);
28ValueTask<ImmutableArray<AddImportFixData>> GetUniqueFixesAsync(
29Checksum solutionChecksum, RemoteServiceCallbackId callbackId, DocumentId id, TextSpan span, ImmutableArray<string> diagnosticIds,
30AddImportOptions options, ImmutableArray<PackageSource> packageSources, CancellationToken cancellationToken);
AddImport\Remote\RemoteMissingImportDiscoveryServiceCallbackDispatcher.cs (3)
34public ValueTask<ImmutableArray<PackageResult>> FindPackagesAsync(RemoteServiceCallbackId callbackId, string source, TypeQuery typeQuery, NamespaceQuery namespaceQuery, CancellationToken cancellationToken)
37public ValueTask<ImmutableArray<PackageWithAssemblyResult>> FindPackagesWithAssemblyAsync(RemoteServiceCallbackId callbackId, string source, string name, CancellationToken cancellationToken)
40public ValueTask<ImmutableArray<ReferenceAssemblyResult>> FindReferenceAssembliesAsync(RemoteServiceCallbackId callbackId, TypeQuery typeQuery, NamespaceQuery namespaceQuery, CancellationToken cancellationToken)
AddImport\SymbolReferenceFinder.cs (44)
42private readonly ImmutableArray<PackageSource> _packageSources;
57ImmutableArray<PackageSource> packageSources,
95internal Task<ImmutableArray<SymbolReference>> FindInAllSymbolsInStartingProjectAsync(bool exact, CancellationToken cancellationToken)
98internal Task<ImmutableArray<SymbolReference>> FindInSourceSymbolsInProjectAsync(ConcurrentDictionary<Project, AsyncLazy<IAssemblySymbol>> projectToAssembly, Project project, bool exact, CancellationToken cancellationToken)
101internal Task<ImmutableArray<SymbolReference>> FindInMetadataSymbolsAsync(IAssemblySymbol assembly, Project assemblyProject, PortableExecutableReference metadataReference, bool exact, CancellationToken cancellationToken)
104private async Task<ImmutableArray<SymbolReference>> DoAsync(SearchScope searchScope, CancellationToken cancellationToken)
115using var _1 = ArrayBuilder<Task<ImmutableArray<SymbolReference>>>.GetInstance(out var tasks);
150private ImmutableArray<SymbolReference> DeDupeAndSortReferences(ImmutableArray<SymbolReference> allReferences)
176private async Task<ImmutableArray<SymbolReference>> GetReferencesForMatchingTypesAsync(
194var symbols = await searchScope.FindDeclarationsAsync(name, nameNode, SymbolFilter.Type, cancellationToken).ConfigureAwait(false);
199var attributeSymbols = await searchScope.FindDeclarationsAsync(
206var typeSymbols = OfType<ITypeSymbol>(symbols);
223var namespaceReferences = GetNamespaceSymbolReferences(searchScope,
261private async Task<ImmutableArray<SymbolReference>> GetReferencesForMatchingNamespacesAsync(
272var symbols = await searchScope.FindDeclarationsAsync(name, nameNode, SymbolFilter.Namespace, cancellationToken).ConfigureAwait(false);
273var namespaceSymbols = OfType<INamespaceSymbol>(symbols);
288private async Task<ImmutableArray<SymbolReference>> GetReferencesForMatchingFieldsAndPropertiesAsync(
321var namedTypeSymbols = OfType<INamedTypeSymbol>(symbolResults);
352private async Task<ImmutableArray<SymbolReference>> GetReferencesForMatchingExtensionMethodsAsync(
367var symbols = await searchScope.FindDeclarationsAsync(name, nameNode, SymbolFilter.Member, cancellationToken).ConfigureAwait(false);
369var methodSymbols = OfType<IMethodSymbol>(symbols);
371var extensionMethodSymbols = GetViableExtensionMethods(
383private ImmutableArray<SymbolResult<IMethodSymbol>> GetViableExtensionMethods(
384ImmutableArray<SymbolResult<IMethodSymbol>> methodSymbols,
391private ImmutableArray<SymbolResult<IMethodSymbol>> GetViableExtensionMethods(
392ImmutableArray<SymbolResult<IMethodSymbol>> methodSymbols, ITypeSymbol typeSymbol)
398private ImmutableArray<SymbolResult<IMethodSymbol>> GetViableExtensionMethodsWorker(
399ImmutableArray<SymbolResult<IMethodSymbol>> methodSymbols)
411private async Task<ImmutableArray<SymbolReference>> GetReferencesForCollectionInitializerMethodsAsync(
419var symbols = await searchScope.FindDeclarationsAsync(
427var viableMethods = GetViableExtensionMethods(
442private async Task<ImmutableArray<SymbolReference>> GetReferencesForQueryPatternsAsync(
466private async Task<ImmutableArray<SymbolReference>> GetReferencesForGetAwaiterAsync(
491private async Task<ImmutableArray<SymbolReference>> GetReferencesForGetEnumeratorAsync(
516private async Task<ImmutableArray<SymbolReference>> GetReferencesForGetAsyncEnumeratorAsync(
541private async Task<ImmutableArray<SymbolReference>> GetReferencesForDeconstructAsync(
563private async Task<ImmutableArray<SymbolReference>> GetReferencesForExtensionMethodAsync(
566var symbols = await searchScope.FindDeclarationsAsync(
574var viableExtensionMethods = GetViableExtensionMethods(methodSymbols, type);
601private ImmutableArray<SymbolReference> GetNamespaceSymbolReferences(
602SearchScope scope, ImmutableArray<SymbolResult<INamespaceSymbol>> namespaces)
618private static ImmutableArray<SymbolResult<T>> OfType<T>(ImmutableArray<SymbolResult<ISymbol>> symbols) where T : ISymbol
ChangeSignature\AbstractChangeSignatureService.cs (21)
49public abstract Task<ImmutableArray<ISymbol>> DetermineCascadedSymbolsFromDelegateInvokeAsync(
61protected abstract ImmutableArray<AbstractFormattingRule> GetFormattingRules(Document document);
89protected abstract ImmutableArray<IParameterSymbol> GetParameters(ISymbol declarationSymbol);
94public async Task<ImmutableArray<ChangeSignatureCodeAction>> GetChangeSignatureCodeActionAsync(Document document, TextSpan span, CancellationToken cancellationToken)
100: ImmutableArray<ChangeSignatureCodeAction>.Empty;
225private static async Task<ImmutableArray<ReferencedSymbol>> FindChangeSignatureReferencesAsync(
470protected ImmutableArray<IUnifiedArgumentSyntax> PermuteArguments(
472ImmutableArray<IUnifiedArgumentSyntax> arguments,
477var declarationParameters = GetParameters(declarationSymbol);
478var declarationParametersToPermute = GetParametersToPermute(arguments, declarationParameters, isReducedExtensionMethod);
583var realParameters = GetParameters(declarationSymbol);
602private static ImmutableArray<IParameterSymbol> GetParametersToPermute(
603ImmutableArray<IUnifiedArgumentSyntax> arguments,
604ImmutableArray<IParameterSymbol> originalParameters,
680protected (ImmutableArray<T> parameters, ImmutableArray<SyntaxToken> separators) UpdateDeclarationBase<T>(
746protected ImmutableArray<SyntaxToken> GetSeparators<T>(SeparatedSyntaxList<T> arguments, int numSeparatorsToSkip) where T : SyntaxNode
793var parameters = GetParameters(declarationSymbol);
937var recommendations = recommender.GetRecommendedSymbolsInContext(context, recommendationOptions, cancellationToken).NamedSymbols;
971protected ImmutableArray<SyntaxTrivia> GetPermutedDocCommentTrivia(SyntaxNode node, ImmutableArray<SyntaxNode> permutedParamNodes, LanguageServices services, LineFormattingOptions options)
CodeFixes\Service\CodeFixService.cs (48)
42private readonly ImmutableArray<Lazy<CodeFixProvider, CodeChangeProviderMetadata>> _fixers;
43private readonly Lazy<ImmutableDictionary<string, ImmutableArray<Lazy<CodeFixProvider, CodeChangeProviderMetadata>>>> _fixersPerLanguageMap;
45private readonly ConditionalWeakTable<IReadOnlyList<AnalyzerReference>, ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>>> _projectFixersMap = new();
48private readonly Lazy<ImmutableDictionary<LanguageKind, Lazy<ImmutableArray<IConfigurationFixProvider>>>> _configurationProvidersMap;
49private readonly ImmutableArray<Lazy<IErrorLoggerService>> _errorLoggers;
51private ImmutableDictionary<LanguageKind, Lazy<ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>>>>? _lazyWorkspaceFixersMap;
54private ImmutableDictionary<CodeFixProvider, ImmutableArray<DiagnosticId>> _fixerToFixableIdsMap = ImmutableDictionary<CodeFixProvider, ImmutableArray<DiagnosticId>>.Empty;
103ImmutableArray<DiagnosticData> allDiagnostics;
119var copilotDiagnostics = await GetCopilotDiagnosticsAsync(document, range, priorityProvider.Priority, cancellationToken).ConfigureAwait(false);
195ImmutableArray<DiagnosticData> diagnostics;
208var copilotDiagnostics = await GetCopilotDiagnosticsAsync(document, range, priorityProvider.Priority, cancellationToken).ConfigureAwait(false);
251private static async Task<ImmutableArray<DiagnosticData>> GetCopilotDiagnosticsAsync(
264SourceText text, ImmutableArray<DiagnosticData> diagnostics)
297ImmutableArray<DiagnosticData> diagnostics;
367private bool TryGetWorkspaceFixersMap(TextDocument document, [NotNullWhen(true)] out ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>>? fixerMap)
377fixerMap = ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>>.Empty;
381using var _ = PooledDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>>.GetInstance(out var builder);
384var filteredFixers = ProjectCodeFixProvider.FilterExtensions(document, fixers, GetExtensionInfo);
479if (hasAnyProjectFixer && projectFixersMap.TryGetValue(diagnosticId, out var projectFixers))
485if (hasAnySharedFixer && fixerMap!.TryGetValue(diagnosticId, out var workspaceFixers))
594ImmutableArray<CodeFixProvider> fixers,
629private static async Task<ImmutableArray<CodeFix>> GetCodeFixesAsync(
631ImmutableArray<Diagnostic> diagnostics,
667static ImmutableArray<Diagnostic> FilterApplicableDiagnostics(
668ImmutableArray<Diagnostic> applicableDiagnostics,
751Func<ImmutableArray<Diagnostic>, Task<ImmutableArray<CodeFix>>> getFixes,
780var supportedScopes = ImmutableArray<FixAllScope>.Empty;
838private ImmutableArray<DiagnosticId> GetFixableDiagnosticIds(CodeFixProvider fixer, IExtensionManager? extensionManager)
865private static ImmutableArray<string> GetAndTestFixableDiagnosticIds(CodeFixProvider codeFixProvider)
867var ids = codeFixProvider.FixableDiagnosticIds;
879private ImmutableDictionary<LanguageKind, Lazy<ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>>>> GetFixerPerLanguageMap(
882var fixerMap = ImmutableDictionary.Create<LanguageKind, Lazy<ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>>>>();
886var lazyMap = new Lazy<ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>>>(() =>
917private static ImmutableDictionary<LanguageKind, Lazy<ImmutableArray<IConfigurationFixProvider>>> GetConfigurationProvidersPerLanguageMap(
922var configurationFixerMap = ImmutableDictionary.CreateBuilder<LanguageKind, Lazy<ImmutableArray<IConfigurationFixProvider>>>();
925var lazyConfigurationFixers = new Lazy<ImmutableArray<IConfigurationFixProvider>>(() => GetConfigurationFixProviders(lazyFixers));
931static ImmutableArray<IConfigurationFixProvider> GetConfigurationFixProviders(ImmutableArray<Lazy<IConfigurationFixProvider, CodeChangeProviderMetadata>> languageKindAndFixers)
969private ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>> GetProjectFixers(TextDocument document)
973? ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>>.Empty
977private ImmutableDictionary<DiagnosticId, ImmutableArray<CodeFixProvider>> ComputeProjectFixers(TextDocument document)
982var codeFixProviders = ProjectCodeFixProvider.GetExtensions(document, GetExtensionInfo);
985var fixableIds = this.GetFixableDiagnosticIds(fixer, extensionManager);
1000var kinds = EnumArrayConverter.FromStringArray<TextDocumentKind>(attribute.DocumentKinds);
1011ImmutableArray<CodeFixProvider> allFixers,
CodeFixes\Suppression\AbstractSuppressionBatchFixAllProvider.cs (16)
45ImmutableDictionary<Document, ImmutableArray<Diagnostic>> documentsAndDiagnosticsToFixMap,
57var diagnosticsAndCodeActions = await GetDiagnosticsAndCodeActionsAsync(documentsAndDiagnosticsToFixMap, fixAllContext).ConfigureAwait(false);
74private async Task<ImmutableArray<(Diagnostic diagnostic, CodeAction action)>> GetDiagnosticsAndCodeActionsAsync(
75ImmutableDictionary<Document, ImmutableArray<Diagnostic>> documentsAndDiagnosticsToFixMap,
112Document document, ImmutableArray<Diagnostic> diagnostics,
135ImmutableDictionary<Project, ImmutableArray<Diagnostic>> projectsAndDiagnosticsToFixMap,
159var result = bag.ToImmutableArray();
175private static Action<CodeAction, ImmutableArray<Diagnostic>> GetRegisterCodeFixAction(
200Project project, ImmutableArray<Diagnostic> diagnostics,
208ImmutableArray<(Diagnostic diagnostic, CodeAction action)> batchOfFixes,
227ImmutableArray<(Diagnostic diagnostic, CodeAction action)> diagnosticsAndCodeActions,
238var documentIdToFinalText = await GetDocumentIdToFinalTextAsync(
250ImmutableArray<(Diagnostic diagnostic, CodeAction action)> diagnosticsAndCodeActions,
270private static async Task<ImmutableArray<(DocumentId documentId, SourceText newText)>> GetDocumentIdToFinalTextAsync(
273ImmutableArray<(Diagnostic diagnostic, CodeAction action)> diagnosticsAndCodeActions,
305var orderedDocuments = changedDocuments.OrderBy(t => codeActionToDiagnosticLocation[t.action])
CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.GlobalSuppressMessageFixAllCodeAction.cs (13)
28private readonly IEnumerable<KeyValuePair<ISymbol, ImmutableArray<Diagnostic>>> _diagnosticsBySymbol;
33IEnumerable<KeyValuePair<ISymbol, ImmutableArray<Diagnostic>>> diagnosticsBySymbol,
41internal static CodeAction Create(string title, AbstractSuppressionCodeFixProvider fixer, Document triggerDocument, ImmutableDictionary<Document, ImmutableArray<Diagnostic>> diagnosticsByDocument)
48internal static CodeAction Create(string title, AbstractSuppressionCodeFixProvider fixer, Project triggerProject, ImmutableDictionary<Project, ImmutableArray<Diagnostic>> diagnosticsByProject)
70ImmutableDictionary<Document, ImmutableArray<Diagnostic>> diagnosticsByDocument,
99ImmutableDictionary<Project, ImmutableArray<Diagnostic>> diagnosticsByProject,
152private static async Task<IEnumerable<KeyValuePair<ISymbol, ImmutableArray<Diagnostic>>>> CreateDiagnosticsBySymbolAsync(AbstractSuppressionCodeFixProvider fixer, IEnumerable<KeyValuePair<Document, ImmutableArray<Diagnostic>>> diagnosticsByDocument, CancellationToken cancellationToken)
173private static async Task<IEnumerable<KeyValuePair<ISymbol, ImmutableArray<Diagnostic>>>> CreateDiagnosticsBySymbolAsync(Project project, ImmutableArray<Diagnostic> diagnostics, CancellationToken cancellationToken)
206private static IEnumerable<KeyValuePair<ISymbol, ImmutableArray<Diagnostic>>> CreateDiagnosticsBySymbol(ImmutableDictionary<ISymbol, List<Diagnostic>>.Builder diagnosticsMapBuilder)
211var builder = new List<KeyValuePair<ISymbol, ImmutableArray<Diagnostic>>>();
218private static ImmutableArray<Diagnostic> GetUniqueDiagnostics(List<Diagnostic> diagnostics)
CodeRefactorings\SyncNamespace\AbstractChangeNamespaceService.cs (31)
57public abstract bool TryGetReplacementReferenceSyntax(SyntaxNode reference, ImmutableArray<string> newNamespaceParts, ISyntaxFactsService syntaxFacts, [NotNullWhen(returnValue: true)] out SyntaxNode? old, [NotNullWhen(returnValue: true)] out SyntaxNode? @new);
78TCompilationUnitSyntax root, ImmutableArray<string> declaredNamespaceParts, ImmutableArray<string> targetNamespaceParts);
95protected abstract Task<ImmutableArray<(DocumentId id, SyntaxNode container)>> GetValidContainersFromAllLinkedDocumentsAsync(Document document, SyntaxNode container, CancellationToken cancellationToken);
100protected static bool IsGlobalNamespace(ImmutableArray<string> parts)
110var applicableContainers = await GetValidContainersFromAllLinkedDocumentsAsync(document, container, cancellationToken).ConfigureAwait(false);
125var originalNamespaceDeclarations = await GetTopLevelNamespacesAsync(document, cancellationToken).ConfigureAwait(false);
154var namespaces = await GetTopLevelNamespacesAsync(document, cancellationToken).ConfigureAwait(false);
163static async Task<ImmutableArray<SyntaxNode>> GetTopLevelNamespacesAsync(Document document, CancellationToken cancellationToken)
195var containersFromAllDocuments = await GetValidContainersFromAllLinkedDocumentsAsync(document, container, cancellationToken).ConfigureAwait(false);
266protected async Task<ImmutableArray<(DocumentId, SyntaxNode)>> TryGetApplicableContainersFromAllDocumentsAsync(
268ImmutableArray<DocumentId> ids,
309protected static async Task<Solution> AnnotateContainersAsync(Solution solution, ImmutableArray<(DocumentId, SyntaxNode)> containers, CancellationToken cancellationToken)
344protected static bool IsSupportedLinkedDocument(Document document, out ImmutableArray<DocumentId> allDocumentIds)
347var linkedDocumentIds = document.GetLinkedDocumentIds();
364private async Task<ImmutableArray<ISymbol>> GetDeclaredSymbolsInContainerAsync(
382private static ImmutableArray<string> GetNamespaceParts(string @namespace)
385private static ImmutableArray<string> GetAllNamespaceImportsForDeclaringDocument(string oldNamespace, string newNamespace)
387var parts = GetNamespaceParts(oldNamespace);
399private static ImmutableArray<SyntaxNode> CreateImports(Document document, ImmutableArray<string> names, bool withFormatterAnnotation)
425private async Task<(Solution, ImmutableArray<DocumentId>)> ChangeNamespaceInSingleDocumentAsync(
513private static async Task<ImmutableArray<LocationForAffectedSymbol>> FindReferenceLocationsForSymbolAsync(
547private static async Task<ImmutableArray<ReferencedSymbol>> FindReferencesAsync(ISymbol symbol, Document document, CancellationToken cancellationToken)
586ImmutableArray<SyntaxNode> containersToAddImports;
683private static async Task<(Document, ImmutableArray<SyntaxNode>)> FixReferencesAsync(
688ImmutableArray<string> newNamespaceParts,
760ImmutableArray<DocumentId> ids,
761ImmutableArray<string> names,
815ImmutableArray<SyntaxNode> containers,
816ImmutableArray<string> names,
Common\AbstractProjectExtensionProvider.cs (20)
21public sealed record class ExtensionInfo(ImmutableArray<TextDocumentKind> DocumentKinds, string[]? DocumentExtensions);
25private static readonly ConditionalWeakTable<IReadOnlyList<AnalyzerReference>, StrongBox<ImmutableArray<TExtension>>> s_referencesToExtensionsMap = new();
30private ImmutableDictionary<string, ImmutableArray<TExtension>> _extensionsPerLanguage = ImmutableDictionary<string, ImmutableArray<TExtension>>.Empty;
32protected abstract ImmutableArray<string> GetLanguages(TExportAttribute exportAttribute);
33protected abstract bool TryGetExtensionsFromReference(AnalyzerReference reference, out ImmutableArray<TExtension> extensions);
35public static bool TryGetCachedExtensions(IReadOnlyList<AnalyzerReference> analyzerReferences, out ImmutableArray<TExtension> extensions)
47public static ImmutableArray<TExtension> GetExtensions(Project? project)
55public static ImmutableArray<TExtension> GetExtensions(string language, IReadOnlyList<AnalyzerReference> analyzerReferences)
57if (TryGetCachedExtensions(analyzerReferences, out var providers))
62static ImmutableArray<TExtension> GetExtensionsSlow(string language, IReadOnlyList<AnalyzerReference> analyzerReferences)
65static ImmutableArray<TExtension> ComputeExtensions(string language, IReadOnlyList<AnalyzerReference> analyzerReferences)
80public static ImmutableArray<TExtension> GetExtensions(TextDocument document, Func<TExportAttribute, ExtensionInfo>? getExtensionInfoForFiltering)
82var extensions = GetExtensions(document.Project);
88public static ImmutableArray<TExtension> FilterExtensions(TextDocument document, ImmutableArray<TExtension> extensions, Func<TExportAttribute, ExtensionInfo> getExtensionInfoForFiltering)
139private ImmutableArray<TExtension> GetExtensions(string language)
142private ImmutableArray<TExtension> CreateExtensions(string language)
145if (TryGetExtensionsFromReference(this.Reference, out var extensions))
170var languages = GetLanguages(attribute);
Completion\CompletionChange.cs (10)
28public ImmutableArray<TextChange> TextChanges { get; }
52TextChange textChange, ImmutableArray<TextChange> textChanges, int? newPosition, bool includesCommitCharacter)
58TextChange textChange, ImmutableArray<TextChange> textChanges, int? newPosition, bool includesCommitCharacter, ImmutableDictionary<string, string> properties)
64TextChange textChange, ImmutableArray<TextChange> textChanges, TextSpan? newSelection, bool includesCommitCharacter, ImmutableDictionary<string, string> properties)
86/// are multiple entries, <see cref="Create(TextChange, ImmutableArray{TextChange}, int?, bool)"/> must be called instead,
91ImmutableArray<TextChange> textChanges,
114ImmutableArray<TextChange> textChanges,
123ImmutableArray<TextChange> textChanges,
133ImmutableArray<TextChange> textChanges,
150public CompletionChange WithTextChanges(ImmutableArray<TextChange> textChanges)
Completion\CompletionItem.cs (21)
25private readonly ImmutableArray<KeyValuePair<string, string>> _properties;
57internal ImmutableArray<string> AdditionalFilterTexts { get; init; } = [];
106internal ImmutableArray<KeyValuePair<string, string>> GetProperties()
145public ImmutableArray<string> Tags { get; }
182ImmutableArray<KeyValuePair<string, string>> properties,
183ImmutableArray<string> tags,
220ImmutableArray<string> tags,
232ImmutableArray<string> tags,
246ImmutableArray<string> tags,
262ImmutableArray<string> tags = default,
282ImmutableArray<KeyValuePair<string, string>> properties = default,
283ImmutableArray<string> tags = default,
322ImmutableArray<string> tags,
348Optional<ImmutableArray<KeyValuePair<string, string>>> properties = default,
349Optional<ImmutableArray<string>> tags = default,
355Optional<ImmutableArray<string>> additionalFilterTexts = default)
362var newProperties = properties.HasValue ? properties.Value : _properties;
363var newTags = tags.HasValue ? tags.Value : Tags;
456internal CompletionItem WithProperties(ImmutableArray<KeyValuePair<string, string>> properties)
468public CompletionItem WithTags(ImmutableArray<string> tags)
506internal CompletionItem WithAdditionalFilterTexts(ImmutableArray<string> additionalFilterTexts)
Completion\CompletionItemRules.cs (16)
51public ImmutableArray<CharacterSetModificationRule> FilterCharacterRules { get; }
56public ImmutableArray<CharacterSetModificationRule> CommitCharacterRules { get; }
80ImmutableArray<CharacterSetModificationRule> filterCharacterRules,
81ImmutableArray<CharacterSetModificationRule> commitCharacterRules,
104ImmutableArray<CharacterSetModificationRule> filterCharacterRules,
105ImmutableArray<CharacterSetModificationRule> commitCharacterRules,
126ImmutableArray<CharacterSetModificationRule> filterCharacterRules = default,
127ImmutableArray<CharacterSetModificationRule> commitCharacterRules = default,
159ImmutableArray<CharacterSetModificationRule> filterCharacterRules,
160ImmutableArray<CharacterSetModificationRule> commitCharacterRules,
170Optional<ImmutableArray<CharacterSetModificationRule>> filterRules = default,
171Optional<ImmutableArray<CharacterSetModificationRule>> commitRules = default,
177var newFilterRules = filterRules.HasValue ? filterRules.Value : FilterCharacterRules;
178var newCommitRules = commitRules.HasValue ? commitRules.Value : CommitCharacterRules;
205public CompletionItemRules WithFilterCharacterRules(ImmutableArray<CharacterSetModificationRule> filterCharacterRules)
217public CompletionItemRules WithCommitCharacterRules(ImmutableArray<CharacterSetModificationRule> commitCharacterRules)
Completion\CompletionRules.cs (8)
29public ImmutableArray<char> DefaultCommitCharacters { get; }
45ImmutableArray<char> defaultCommitCharacters,
66ImmutableArray<char> defaultCommitCharacters,
84ImmutableArray<char> defaultCommitCharacters = default,
99Optional<ImmutableArray<char>> defaultCommitCharacters = default,
105var newDefaultCommitCharacters = defaultCommitCharacters.HasValue ? defaultCommitCharacters.Value : DefaultCommitCharacters;
143public CompletionRules WithDefaultCommitCharacters(ImmutableArray<char> defaultCommitCharacters)
158private static readonly ImmutableArray<char> s_defaultCommitKeys = [' ', '{', '}', '[', ']', '(', ')', '.', ',', ':', ';', '+', '-', '*', '/', '%', '&', '|', '^', '!', '~', '=', '<', '>', '?', '@', '#', '\'', '\"', '\\'];
Completion\CompletionService.ProviderManager.cs (15)
30private readonly Dictionary<ImmutableHashSet<string>, ImmutableArray<CompletionProvider>> _rolesToProviders;
39_rolesToProviders = new Dictionary<ImmutableHashSet<string>, ImmutableArray<CompletionProvider>>(this);
97public ImmutableArray<CompletionProvider> GetCachedProjectCompletionProvidersOrQueueLoadInBackground(Project? project, CompletionOptions options)
114if (ProjectCompletionProvider.TryGetCachedExtensions(project.AnalyzerReferences, out var providers))
121private ImmutableArray<CompletionProvider> GetImportedAndBuiltInProviders(ImmutableHashSet<string>? roles)
127if (!_rolesToProviders.TryGetValue(roles, out var providers))
136ImmutableArray<CompletionProvider> GetImportedAndBuiltInProvidersWorker(ImmutableHashSet<string> roles)
170var allCompletionProviders = FilterProviders(GetImportedAndBuiltInProviders(roles), trigger, options);
171var projectCompletionProviders = FilterProviders(GetCachedProjectCompletionProvidersOrQueueLoadInBackground(project, options), trigger, options);
175private ImmutableArray<CompletionProvider> FilterProviders(
176ImmutableArray<CompletionProvider> providers,
260protected override ImmutableArray<string> GetLanguages(ExportCompletionProviderAttribute exportAttribute)
263protected override bool TryGetExtensionsFromReference(AnalyzerReference reference, out ImmutableArray<CompletionProvider> extensions)
284public ImmutableArray<CompletionProvider> GetImportedAndBuiltInProviders(ImmutableHashSet<string> roles)
289public ImmutableArray<CompletionProvider> GetProjectProviders(Project project)
Completion\CompletionService_GetCompletions.cs (7)
86var triggeredProviders = GetTriggeredProviders(document, providers, caretPosition, options, trigger, roles, text);
129ImmutableArray<CompletionProvider> GetTriggeredProviders(
152static async Task<ImmutableArray<CompletionProvider>> GetAugmentingProvidersAsync(
153Document document, ImmutableArray<CompletionProvider> triggeredProviders, int caretPosition, CompletionTrigger trigger, CompletionOptions options, CancellationToken cancellationToken)
231private static async Task<ImmutableArray<CompletionContext>> ComputeNonEmptyCompletionContextsAsync(
234ImmutableArray<CompletionProvider> providers,
253ImmutableArray<CompletionContext> completionContexts,
Completion\Providers\AbstractDocCommentCompletionProvider.cs (13)
24private static readonly ImmutableArray<string> s_listTagNames = [ListHeaderElementName, TermElementName, ItemElementName, DescriptionElementName];
25private static readonly ImmutableArray<string> s_listHeaderTagNames = [TermElementName, DescriptionElementName];
26private static readonly ImmutableArray<string> s_nestedTagNames = [CElementName, CodeElementName, ParaElementName, ListElementName];
27private static readonly ImmutableArray<string> s_topLevelRepeatableTagNames = [ExceptionElementName, IncludeElementName, PermissionElementName];
28private static readonly ImmutableArray<string> s_topLevelSingleUseTagNames = [SummaryElementName, RemarksElementName, ExampleElementName, CompletionListElementName];
46private static readonly ImmutableArray<(string elementName, string attributeName, string text)> s_attributeMap =
66private static readonly ImmutableArray<string> s_listTypeValues = ["bullet", "number", "table"];
97protected abstract ImmutableArray<string> GetKeywordNames();
102protected abstract ImmutableArray<IParameterSymbol> GetParameters(ISymbol symbol);
213protected ImmutableArray<CompletionItem> GetTopLevelItems(ISymbol? symbol, TSyntax syntax)
261private IEnumerable<CompletionItem> GetParameterItems<TSymbol>(ImmutableArray<TSymbol> symbols, TSyntax syntax, string tagName) where TSymbol : ISymbol
331protected static readonly ImmutableArray<CharacterSetModificationRule> FilterRules = [CharacterSetModificationRule.Create(CharacterSetModificationKind.Add, '!', '-', '[')];
335var commitRules = defaultRules.CommitCharacterRules;
Completion\Providers\AbstractSymbolCompletionProvider.cs (22)
30protected abstract Task<ImmutableArray<SymbolAndSelectionInfo>> GetSymbolsAsync(
42ImmutableArray<SymbolAndSelectionInfo> symbols,
146private ImmutableArray<CompletionItem> CreateItems(
148ImmutableArray<SymbolAndSelectionInfo> symbols,
151ImmutableArray<ProjectId> totalProjects)
231ImmutableArray<SymbolAndSelectionInfo> symbolList,
248ImmutableArray<SymbolAndSelectionInfo> symbols,
250ImmutableArray<ProjectId> totalProjects)
273ImmutableArray<SymbolAndSelectionInfo> symbols,
328var regularItems = await GetItemsAsync(completionContext, syntaxContext, document, position, options, cancellationToken).ConfigureAwait(false);
338private async Task<ImmutableArray<CompletionItem>> GetItemsAsync(
346var relatedDocumentIds = document.GetLinkedDocumentIds();
350var itemsForCurrentDocument = await GetSymbolsAsync(completionContext, syntaxContext, position, options, cancellationToken).ConfigureAwait(false);
369var items = CreateItems(
385ImmutableArray<(DocumentId documentId, TSyntaxContext syntaxContext, ImmutableArray<SymbolAndSelectionInfo> symbols)> linkedContextSymbolLists)
409private async Task<ImmutableArray<(DocumentId documentId, TSyntaxContext syntaxContext, ImmutableArray<SymbolAndSelectionInfo> symbols)>> GetPerContextSymbolsAsync(
414return await ProducerConsumer<(DocumentId documentId, TSyntaxContext syntaxContext, ImmutableArray<SymbolAndSelectionInfo> symbols)>.RunParallelAsync(
437protected async Task<ImmutableArray<SymbolAndSelectionInfo>> TryGetSymbolsForContextAsync(
454ImmutableArray<(DocumentId documentId, TSyntaxContext syntaxContext, ImmutableArray<SymbolAndSelectionInfo> symbols)> linkedContextSymbolLists)
Completion\Providers\ImportCompletionProvider\ExtensionMethodImportCompletionHelper.cs (12)
57public static async Task<ImmutableArray<SerializableImportCompletionItem>> GetUnimportedExtensionMethodsAsync(
61ImmutableArray<ITypeSymbol> targetTypesSymbols,
78var remoteResult = await client.TryInvokeAsync<IRemoteExtensionMethodImportCompletionService, ImmutableArray<SerializableImportCompletionItem>>(
95public static async Task<ImmutableArray<SerializableImportCompletionItem>> GetUnimportedExtensionMethodsInCurrentProcessAsync(
101ImmutableArray<ITypeSymbol> targetTypes,
111var extensionMethodSymbols = await symbolComputer.GetExtensionMethodSymbolsAsync(forceCacheCreation, hideAdvancedMembers, cancellationToken).ConfigureAwait(false);
114var items = ConvertSymbolsToCompletionItems(compilation, extensionMethodSymbols, targetTypes, cancellationToken);
121var latestProjects = CompletionUtilities.GetDistinctProjectsFromLatestSolutionSnapshot(projects);
128private static ImmutableArray<SerializableImportCompletionItem> ConvertSymbolsToCompletionItems(
129Compilation compilation, ImmutableArray<IMethodSymbol> extentsionMethodSymbols, ImmutableArray<ITypeSymbol> targetTypeSymbols, CancellationToken cancellationToken)
198Compilation compilation, IMethodSymbol methodSymbol, ImmutableArray<ITypeSymbol> targetTypeSymbols,
Completion\Providers\SymbolCompletionItem.cs (23)
25private static readonly Action<ImmutableArray<ISymbol>, ArrayBuilder<KeyValuePair<string, string>>> s_addSymbolEncoding = AddSymbolEncoding;
26private static readonly Action<ImmutableArray<ISymbol>, ArrayBuilder<KeyValuePair<string, string>>> s_addSymbolInfo = AddSymbolInfo;
32ImmutableArray<ISymbol> symbols,
35Action<ImmutableArray<ISymbol>, ArrayBuilder<KeyValuePair<string, string>>> symbolEncoder,
40ImmutableArray<KeyValuePair<string, string>> properties = default,
41ImmutableArray<string> tags = default,
81private static void AddSymbolEncoding(ImmutableArray<ISymbol> symbols, ArrayBuilder<KeyValuePair<string, string>> properties)
84private static void AddSymbolInfo(ImmutableArray<ISymbol> symbols, ArrayBuilder<KeyValuePair<string, string>> properties)
108public static string EncodeSymbols(ImmutableArray<ISymbol> symbols)
132public static async Task<ImmutableArray<ISymbol>> GetSymbolsAsync(CompletionItem item, Document document, CancellationToken cancellationToken)
145var linkedIds = document.GetLinkedDocumentIds();
187var symbols = await GetSymbolsAsync(item, document, cancellationToken).ConfigureAwait(false);
192CompletionItem item, Document document, ImmutableArray<ISymbol> symbols, SymbolDescriptionOptions options, CancellationToken cancellationToken)
246private static ImmutableArray<ProjectId> SplitIntoProjectIds(string projectIds)
303ImmutableArray<ISymbol> symbols,
311ImmutableArray<string> tags = default,
335ImmutableArray<ISymbol> symbols,
345ImmutableArray<KeyValuePair<string, string>> properties = default,
346ImmutableArray<string> tags = default,
359ImmutableArray<ISymbol> symbols,
369ImmutableArray<KeyValuePair<string, string>> properties = default,
370ImmutableArray<string> tags = default,
390CompletionItem item, ImmutableArray<ISymbol> symbols, Document document, SemanticModel semanticModel, SymbolDescriptionOptions options, CancellationToken cancellationToken)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.cs (7)
32protected sealed override ImmutableArray<FixAllScope> SupportedFixAllScopes => AllFixAllScopes;
45if (!ShouldOfferRefactoring(ifStatement, semanticModel, syntaxFactsService, out var analyzer, out var sections, out var target))
74[NotNullWhen(true)] out ImmutableArray<AnalyzedSwitchSection> sections,
92var operations = parentBlock.Operations;
123bool supportsOrPattern, ImmutableArray<AnalyzedSwitchSection> sections)
181ImmutableArray<TextSpan> fixAllSpans,
248if (!ShouldOfferRefactoring(ifStatement, semanticModel, syntaxFactsService, out var analyzer, out var sections, out var target))
ConvertTupleToStruct\AbstractConvertTupleToStructCodeRefactoringProvider.cs (31)
92var recordChildActions = CreateChildActions(document, textSpan, tupleExprOrTypeNode, fields, capturedTypeParameters, isRecord: true);
104var childActions = CreateChildActions(document, textSpan, tupleExprOrTypeNode, fields, capturedTypeParameters, isRecord: false);
117ImmutableArray<CodeAction> CreateChildActions(
121ImmutableArray<IFieldSymbol> fields,
122ImmutableArray<ITypeParameterSymbol> capturedTypeParameters,
302var documentsToUpdate = await GetDocumentsToUpdateAsync(
325ImmutableArray<DocumentToUpdate> documentsToUpdate,
327string structName, ImmutableArray<ITypeParameterSymbol> typeParameters,
404ImmutableArray<ITypeParameterSymbol> typeParameters, bool addRenameAnnotation)
417private static async Task<ImmutableArray<DocumentToUpdate>> GetDocumentsToUpdateAsync(
434private static async Task<ImmutableArray<DocumentToUpdate>> GetDocumentsToUpdateForDependentProjectAsync(
476private static async Task<ImmutableArray<DocumentToUpdate>> GetDocumentsToUpdateForContainingProjectAsync(
488private static async Task AddDocumentsToUpdateForProjectAsync(Project project, ArrayBuilder<DocumentToUpdate> result, ImmutableArray<string> tupleFieldNames, CancellationToken cancellationToken)
503private static bool InfoProbablyContainsTupleFieldNames(SyntaxTreeIndex info, ImmutableArray<string> tupleFieldNames)
516private static async Task<ImmutableArray<DocumentToUpdate>> GetDocumentsToUpdateForContainingTypeAsync(
541private static ImmutableArray<DocumentToUpdate> GetDocumentsToUpdateForContainingMember(
615string structName, ImmutableArray<ITypeParameterSymbol> typeParameters,
635string typeName, ImmutableArray<ITypeParameterSymbol> typeParameters,
670StringComparer comparer, ImmutableArray<IFieldSymbol> fields1, ImmutableArray<IFieldSymbol> fields2)
689SyntaxEditor editor, string typeName, ImmutableArray<ITypeParameterSymbol> typeParameters,
749string typeName, ImmutableArray<ITypeParameterSymbol> typeParameters,
779SyntaxEditor editor, string typeName, ImmutableArray<ITypeParameterSymbol> typeParameters,
798Document document, Scope scope, bool isRecord, string structName, ImmutableArray<ITypeParameterSymbol> typeParameters,
803var fields = tupleType.TupleElements;
823document, namedTypeWithoutMembers, ImmutableArray<ISymbol>.CastUp(fields),
827ImmutableArray<ISymbol>.CastUp(fields), cancellationToken).ConfigureAwait(false);
856var assignments = tupleType.TupleElements.Select(
910ImmutableArray<ITypeParameterSymbol> typeParameters, ImmutableArray<ISymbol> members)
922ImmutableArray<IFieldSymbol> fields, SyntaxGenerator generator,
Diagnostics\IDiagnosticAnalyzerService.cs (6)
30Task<ImmutableArray<DiagnosticData>> ForceAnalyzeProjectAsync(Project project, CancellationToken cancellationToken);
53Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForIdsAsync(Project project, DocumentId? documentId, ImmutableHashSet<string>? diagnosticIds, Func<DiagnosticAnalyzer, bool>? shouldIncludeAnalyzer, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken);
70Task<ImmutableArray<DiagnosticData>> GetProjectDiagnosticsForIdsAsync(Project project, ImmutableHashSet<string>? diagnosticIds, Func<DiagnosticAnalyzer, bool>? shouldIncludeAnalyzer, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken);
80Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForSpanAsync(
96public static Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForSpanAsync(this IDiagnosticAnalyzerService service,
113public static Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForSpanAsync(this IDiagnosticAnalyzerService service,
Diagnostics\Service\EngineV2\DiagnosticIncrementalAnalyzer.IncrementalMemberEditAnalyzer.cs (12)
48public async Task<ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>>> ComputeDiagnosticsAsync(
50ImmutableArray<DiagnosticAnalyzer> analyzers,
113using var _ = PooledDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>>.GetInstance(out var builder);
128ImmutableArray<TextSpan> oldMemberSpans,
129Dictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>> builder)
143ImmutableArray<TextSpan> oldMemberSpans,
144Dictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>> builder)
155ImmutableArray<TextSpan> oldMemberSpans,
156Dictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>> builder)
168ImmutableArray<TextSpan> oldMemberSpans,
169Dictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>> builder)
184private async Task<(SyntaxNode changedMember, int changedMemberId, ImmutableArray<TextSpan> memberSpans, Document lastDocument)?> TryGetChangedMemberAsync(
Diagnostics\Service\EngineV2\DiagnosticIncrementalAnalyzer.IncrementalMemberEditAnalyzer_MemberSpans.cs (5)
24private readonly record struct MemberSpans(DocumentId DocumentId, VersionStamp Version, ImmutableArray<TextSpan> Spans);
29private async Task<ImmutableArray<TextSpan>> GetOrCreateMemberSpansAsync(Document document, VersionStamp version, CancellationToken cancellationToken)
37var memberSpans = await CreateMemberSpansAsync(document, version, cancellationToken).ConfigureAwait(false);
46static async Task<ImmutableArray<TextSpan>> CreateMemberSpansAsync(Document document, VersionStamp version, CancellationToken cancellationToken)
59private void SaveMemberSpans(DocumentId documentId, VersionStamp version, ImmutableArray<TextSpan> memberSpans)
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (53)
120protected abstract IEnumerable<SequenceEdit> GetSyntaxSequenceEdits(ImmutableArray<SyntaxNode> oldNodes, ImmutableArray<SyntaxNode> newNodes);
513ImmutableArray<ActiveStatementLineSpan> newActiveStatementSpans,
644var newExceptionRegions = ImmutableArray.CreateBuilder<ImmutableArray<SourceFileSpan>>(oldActiveStatements.Length);
676var finalDiagnostics = diagnostics.GetAllDiagnostics(
719void LogRudeEdits(ImmutableArray<RudeEditDiagnostic> diagnostics, SourceText text, string filePath)
791ImmutableArray<UnmappedActiveStatement> oldActiveStatements,
792ImmutableArray<ActiveStatementLineSpan> newActiveStatementSpans,
793[In, Out] ImmutableArray<ActiveStatement>.Builder newActiveStatements,
794[In, Out] ImmutableArray<ImmutableArray<SourceFileSpan>>.Builder newExceptionRegions,
956ImmutableArray<UnmappedActiveStatement> oldActiveStatements,
957ImmutableArray<ActiveStatementLineSpan> newActiveStatementSpans,
960[Out] ImmutableArray<ActiveStatement>.Builder newActiveStatements,
961[Out] ImmutableArray<ImmutableArray<SourceFileSpan>>.Builder newExceptionRegions,
1330private static bool TryGetTrackedStatement(ImmutableArray<ActiveStatementLineSpan> activeStatementSpans, ActiveStatementId id, SourceText text, MemberBody body, [NotNullWhen(true)] out SyntaxNode? trackedStatement, out int trackedStatementPart)
1383ImmutableArray<ImmutableArray<SourceFileSpan>>.Builder newExceptionRegions,
2390protected static bool ParameterTypesEquivalent(ImmutableArray<IParameterSymbol> oldParameters, ImmutableArray<IParameterSymbol> newParameters, bool exact)
2397protected static bool CustomModifiersEquivalent(ImmutableArray<CustomModifier> oldModifiers, ImmutableArray<CustomModifier> newModifiers, bool exact)
2425protected static bool TypesEquivalent<T>(ImmutableArray<T> oldTypes, ImmutableArray<T> newTypes, bool exact) where T : ITypeSymbol
2441protected static bool TypeParametersEquivalent(ImmutableArray<ITypeParameterSymbol> oldParameters, ImmutableArray<ITypeParameterSymbol> newParameters, bool exact)
2519private async Task<ImmutableArray<SemanticEditInfo>> AnalyzeSemanticsAsync(
2522ImmutableArray<UnmappedActiveStatement> oldActiveStatements,
2523ImmutableArray<ActiveStatementLineSpan> newActiveStatementSpans,
2531ImmutableArray<ActiveStatement>.Builder newActiveStatements,
2532ImmutableArray<ImmutableArray<SourceFileSpan>>.Builder newExceptionRegions,
3848private ImmutableArray<(ISymbol? oldSymbol, ISymbol? newSymbol, EditKind editKind)> GetNamespaceSymbolEdits(
4605ImmutableArray<AttributeData>? oldAttributes,
4606ImmutableArray<AttributeData> newAttributes,
4674static void FindChangedAttributes(ImmutableArray<AttributeData>? oldAttributes, ImmutableArray<AttributeData> newAttributes, ArrayBuilder<AttributeData> changedAttributes)
4688static AttributeData? FindMatch(AttributeData attribute, ImmutableArray<AttributeData>? oldAttributes)
5747out var oldInLambdaCaptures,
5748out var oldPrimaryCaptures);
5756out var newInLambdaCaptures,
5757out var newPrimaryCaptures);
5987out ImmutableArray<VariableCapture> variablesCapturedInLambdas,
5988out ImmutableArray<IParameterSymbol> primaryParametersCapturedViaThis)
6064ImmutableArray<IParameterSymbol> oldPrimaryCaptures,
6066ImmutableArray<IParameterSymbol> newPrimaryCaptures,
6115ImmutableArray<VariableCapture> captures,
6127void MarkVariables(ImmutableArray<ISymbol> variables)
6142private static void BuildIndex(Dictionary<VariableCaptureKey, int> index, ImmutableArray<VariableCapture> array)
6161protected abstract SyntaxNode? GetSymbolDeclarationSyntax(ISymbol symbol, Func<ImmutableArray<SyntaxReference>, SyntaxReference?> selector, CancellationToken cancellationToken);
6261ImmutableArray<VariableCapture> oldCaptures,
6264ImmutableArray<VariableCapture> newCaptures,
EditAndContinue\ActiveStatementsMap.cs (15)
22new(ImmutableDictionary<string, ImmutableArray<ActiveStatement>>.Empty,
35public readonly IReadOnlyDictionary<string, ImmutableArray<ActiveStatement>> DocumentPathMap;
45private ImmutableDictionary<SyntaxTree, ImmutableArray<UnmappedActiveStatement>> _lazyOldDocumentActiveStatements;
48IReadOnlyDictionary<string, ImmutableArray<ActiveStatement>> documentPathMap,
56_lazyOldDocumentActiveStatements = ImmutableDictionary<SyntaxTree, ImmutableArray<UnmappedActiveStatement>>.Empty;
60ImmutableArray<ManagedActiveStatementDebugInfo> debugInfos,
61ImmutableDictionary<ManagedMethodId, ImmutableArray<NonRemappableRegion>> remapping)
127private static bool TryGetUpToDateSpan(ManagedActiveStatementDebugInfo activeStatementInfo, ImmutableDictionary<ManagedMethodId, ImmutableArray<NonRemappableRegion>> remapping, out LinePositionSpan newSpan)
146if (remapping.TryGetValue(instructionId.Method, out var regionsInMethod))
172internal async ValueTask<ImmutableArray<UnmappedActiveStatement>> GetOldActiveStatementsAsync(IEditAndContinueAnalyzer analyzer, Document oldDocument, CancellationToken cancellationToken)
180internal ImmutableArray<UnmappedActiveStatement> GetOldActiveStatements(IEditAndContinueAnalyzer analyzer, SyntaxTree oldSyntaxTree, SourceText oldText, SyntaxNode oldRoot, CancellationToken cancellationToken)
190private ImmutableArray<UnmappedActiveStatement> CalculateOldActiveStatementsAndExceptionRegions(IEditAndContinueAnalyzer analyzer, SyntaxTree oldTree, SourceText oldText, SyntaxNode oldRoot, CancellationToken cancellationToken)
219if (DocumentPathMap.TryGetValue(targetPath, out var activeStatementsInMappedFile))
241if (DocumentPathMap.TryGetValue(oldTree.FilePath, out var activeStatements))
297ImmutableArray<TElement> spans,
EditAndContinue\CommittedSolution.cs (11)
127internal ImmutableArray<(DocumentId id, DocumentState state)> Test_GetDocumentStates()
152public ImmutableArray<DocumentId> GetDocumentIdsWithFilePath(string path)
343var maybePdbHasDocument = TryReadSourceFileChecksumFromPdb(document, out var requiredChecksum, out var checksumAlgorithm);
353TraceLog log, SourceText sourceText, string filePath, Document? currentDocument, IPdbMatchingSourceTextProvider sourceTextProvider, ImmutableArray<byte> requiredChecksum, SourceHashAlgorithm checksumAlgorithm, CancellationToken cancellationToken)
421if (TryReadSourceFileChecksumFromPdb(log, debugInfoReader, sourceFilePath, out var requiredChecksum, out var checksumAlgorithm) == true &&
460public void CommitChanges(Solution solution, ImmutableArray<ProjectId> projectsToStale, ImmutableArray<ProjectId> projectsToUnstale)
473private static bool IsMatchingSourceText(SourceText sourceText, ImmutableArray<byte> requiredChecksum, SourceHashAlgorithm checksumAlgorithm)
480ImmutableArray<byte> requiredChecksum,
512private bool? TryReadSourceFileChecksumFromPdb(Document document, out ImmutableArray<byte> requiredChecksum, out SourceHashAlgorithm checksumAlgorithm)
540out ImmutableArray<byte> checksum,
EditAndContinue\DebuggingSession.cs (17)
125private ImmutableArray<ManagedHotReloadUpdate> _lastModuleUpdatesLog;
154nonRemappableRegions: ImmutableDictionary<ManagedMethodId, ImmutableArray<NonRemappableRegion>>.Empty,
241internal void RestartEditSession(ImmutableDictionary<ManagedMethodId, ImmutableArray<NonRemappableRegion>>? nonRemappableRegions, bool? inBreakState)
312out ImmutableArray<Diagnostic> errors,
362out ImmutableArray<Diagnostic> errors,
430private static ImmutableDictionary<K, ImmutableArray<V>> GroupToImmutableDictionary<K, V>(IEnumerable<IGrouping<K, V>> items)
433var builder = ImmutableDictionary.CreateBuilder<K, ImmutableArray<V>>();
443public async ValueTask<ImmutableArray<Diagnostic>> GetDocumentDiagnosticsAsync(Document document, ActiveStatementSpanProvider activeStatementSpanProvider, CancellationToken cancellationToken)
592ImmutableDictionary<ManagedMethodId, ImmutableArray<NonRemappableRegion>>? newNonRemappableRegions = null;
632public void UpdateBaselines(Solution solution, ImmutableArray<ProjectId> rebuiltProjects)
680public async ValueTask<ImmutableArray<ImmutableArray<ActiveStatementSpan>>> GetBaseActiveStatementSpansAsync(Solution solution, ImmutableArray<DocumentId> documentIds, CancellationToken cancellationToken)
788using var _4 = ArrayBuilder<ImmutableArray<ActiveStatementSpan>>.GetInstance(out var spans);
832public async ValueTask<ImmutableArray<ActiveStatementSpan>> GetAdjustedActiveStatementSpansAsync(TextDocument mappedDocument, ActiveStatementSpanProvider activeStatementSpanProvider, CancellationToken cancellationToken)
860var newDocumentActiveStatementSpans = await activeStatementSpanProvider(mappedDocument.Id, mappedDocument.FilePath, cancellationToken).ConfigureAwait(false);
944public ImmutableArray<IDisposable> GetBaselineModuleReaders()
EditAndContinue\DocumentAnalysisResults.cs (13)
30public ImmutableArray<ActiveStatement> ActiveStatements { get; }
36public ImmutableArray<RudeEditDiagnostic> RudeEdits { get; }
46public ImmutableArray<SemanticEditInfo> SemanticEdits { get; }
69public ImmutableArray<ImmutableArray<SourceFileSpan>> ExceptionRegions { get; }
79public ImmutableArray<SequencePointUpdates> LineEdits { get; }
110ImmutableArray<ActiveStatement> activeStatementsOpt,
111ImmutableArray<RudeEditDiagnostic> rudeEdits,
113ImmutableArray<SemanticEditInfo> semanticEditsOpt,
114ImmutableArray<ImmutableArray<SourceFileSpan>> exceptionRegionsOpt,
115ImmutableArray<SequencePointUpdates> lineEditsOpt,
191public static DocumentAnalysisResults SyntaxErrors(DocumentId documentId, string filePath, ImmutableArray<RudeEditDiagnostic> rudeEdits, Diagnostic? syntaxError, TimeSpan elapsedTime, bool hasChanges)
EditAndContinue\EditAndContinueDocumentAnalysesCache.cs (6)
27private readonly Dictionary<DocumentId, (AsyncLazy<DocumentAnalysisResults> results, Project baseProject, Document document, ImmutableArray<ActiveStatementLineSpan> activeStatementSpans)> _analyses = [];
32public async ValueTask<ImmutableArray<DocumentAnalysisResults>> GetDocumentAnalysesAsync(
100private async Task<ImmutableArray<ActiveStatementLineSpan>> GetLatestUnmappedActiveStatementSpansAsync(Document? oldDocument, Document newDocument, ActiveStatementSpanProvider newActiveStatementSpanProvider, CancellationToken cancellationToken)
120var newMappedDocumentSpans = await newActiveStatementSpanProvider(newDocument.Id, newDocument.FilePath, cancellationToken).ConfigureAwait(false);
128using var _1 = PooledDictionary<string, ImmutableArray<ActiveStatementSpan>>.GetInstance(out var mappedSpansByDocumentPath);
164private AsyncLazy<DocumentAnalysisResults> GetDocumentAnalysisNoLock(Project baseProject, Document document, ImmutableArray<ActiveStatementLineSpan> activeStatementSpans)
EditAndContinue\EditAndContinueMethodDebugInfoReader.cs (6)
39public abstract bool TryGetDocumentChecksum(string documentPath, out ImmutableArray<byte> checksum, out Guid algorithmId);
87ImmutableArray<byte> localSlots, lambdaMap, stateMachineSuspensionPoints;
108public override bool TryGetDocumentChecksum(string documentPath, out ImmutableArray<byte> checksum, out Guid algorithmId)
127private ImmutableArray<byte> GetCdiBytes(MethodDefinitionHandle methodHandle, Guid kind)
155public override bool TryGetDocumentChecksum(string documentPath, out ImmutableArray<byte> checksum, out Guid algorithmId)
225internal static bool TryGetDocumentChecksum(ISymUnmanagedReader5 symReader, string documentPath, out ImmutableArray<byte> checksum, out Guid algorithmId)
EditAndContinue\EditAndContinueService.cs (13)
45public ImmutableArray<DiagnosticData> ApplyChangesDiagnostics => [];
118private ImmutableArray<DebuggingSession> GetActiveDebuggingSessions()
126private ImmutableArray<DebuggingSession> GetDiagnosticReportingDebuggingSessions()
138ImmutableArray<DocumentId> captureMatchingDocuments,
183private static IEnumerable<(Project, IEnumerable<DocumentState>)> GetDocumentStatesGroupedByProject(Solution solution, ImmutableArray<DocumentId> documentIds)
212public ValueTask<ImmutableArray<Diagnostic>> GetDocumentDiagnosticsAsync(Document document, ActiveStatementSpanProvider activeStatementSpanProvider, CancellationToken cancellationToken)
252public void UpdateBaselines(DebuggingSessionId sessionId, Solution solution, ImmutableArray<ProjectId> rebuiltProjects)
260public ValueTask<ImmutableArray<ImmutableArray<ActiveStatementSpan>>> GetBaseActiveStatementSpansAsync(DebuggingSessionId sessionId, Solution solution, ImmutableArray<DocumentId> documentIds, CancellationToken cancellationToken)
271public ValueTask<ImmutableArray<ActiveStatementSpan>> GetAdjustedActiveStatementSpansAsync(DebuggingSessionId sessionId, TextDocument mappedDocument, ActiveStatementSpanProvider activeStatementSpanProvider, CancellationToken cancellationToken)
276return ValueTaskFactory.FromResult(ImmutableArray<ActiveStatementSpan>.Empty);
295public ImmutableArray<DebuggingSession> GetActiveDebuggingSessions()
EditAndContinue\EditSession.cs (31)
63internal readonly ImmutableDictionary<ManagedMethodId, ImmutableArray<NonRemappableRegion>> NonRemappableRegions;
90ImmutableDictionary<ManagedMethodId, ImmutableArray<NonRemappableRegion>> nonRemappableRegions,
155public async Task<ImmutableArray<Diagnostic>?> GetModuleDiagnosticsAsync(Guid mvid, Project oldProject, Project newProject, ImmutableArray<DocumentAnalysisResults> documentAnalyses, CancellationToken cancellationToken)
167return ImmutableArray<Diagnostic>.Empty;
183private static async IAsyncEnumerable<Location> CreateChangedLocationsAsync(Project oldProject, Project newProject, ImmutableArray<DocumentAnalysisResults> documentAnalyses, [EnumeratorCancellation] CancellationToken cancellationToken)
240var capabilities = await DebuggingSession.DebuggerService.GetCapabilitiesAsync(cancellationToken).ConfigureAwait(false);
254var debugInfos = await DebuggingSession.DebuggerService.GetActiveStatementsAsync(cancellationToken).ConfigureAwait(false);
266var newDocumentIds = newSolution.GetDocumentIdsWithFilePath(sourceFilePath);
535private async Task<(ImmutableArray<DocumentAnalysisResults> results, ImmutableArray<Diagnostic> diagnostics, bool hasOutOfSyncDocument)> AnalyzeDocumentsAsync(
584private static ProjectAnalysisSummary GetProjectAnalysisSummary(ImmutableArray<DocumentAnalysisResults> documentAnalyses)
633ImmutableArray<DocumentAnalysisResults> changedDocumentAnalyses,
673MergePartialEdits(oldCompilation, newCompilation, allEdits, out var mergedEdits, out var addedSymbols, cancellationToken);
692out ImmutableArray<SemanticEdit> mergedEdits,
824using var _2 = ArrayBuilder<(Guid ModuleId, ImmutableArray<(ManagedModuleMethodId Method, NonRemappableRegion Region)>)>.GetInstance(out var nonRemappableRegions);
828using var _6 = ArrayBuilder<(DocumentId, ImmutableArray<RudeEditDiagnostic>)>.GetInstance(out var documentsWithRudeEdits);
1034var projectBaselines = DebuggingSession.GetOrCreateEmitBaselines(mvid, oldProject, oldCompilation, out var createBaselineErrors, out var baselineAccessLock);
1068var requiredCapabilities = projectChanges.RequiredCapabilities.ToStringArray();
1073var emitDiagnostics = ImmutableArray<Diagnostic>.Empty;
1146out var activeStatementsInUpdatedMethods,
1147out var moduleNonRemappableRegions,
1148out var exceptionRegionUpdates);
1282ImmutableArray<int> updatedMethodTokens,
1283ImmutableDictionary<ManagedMethodId, ImmutableArray<NonRemappableRegion>> previousNonRemappableRegions,
1284ImmutableArray<DocumentActiveStatementChanges> activeStatementsInChangedDocuments,
1285out ImmutableArray<ManagedActiveStatementUpdate> activeStatementsInUpdatedMethods,
1286out ImmutableArray<(ManagedModuleMethodId Method, NonRemappableRegion Region)> nonRemappableRegions,
1287out ImmutableArray<ManagedExceptionRegionUpdate> exceptionRegionUpdates)
1303var newActiveStatementExceptionRegions = newExceptionRegions[i];
EditAndContinue\IEditAndContinueService.cs (7)
21ValueTask<ImmutableArray<Diagnostic>> GetDocumentDiagnosticsAsync(Document document, ActiveStatementSpanProvider activeStatementSpanProvider, CancellationToken cancellationToken);
26void UpdateBaselines(DebuggingSessionId sessionId, Solution solution, ImmutableArray<ProjectId> rebuiltProjects);
28ValueTask<DebuggingSessionId> StartDebuggingSessionAsync(Solution solution, IManagedHotReloadService debuggerService, IPdbMatchingSourceTextProvider sourceTextProvider, ImmutableArray<DocumentId> captureMatchingDocuments, bool captureAllMatchingDocuments, bool reportDiagnostics, CancellationToken cancellationToken);
32ValueTask<ImmutableArray<ImmutableArray<ActiveStatementSpan>>> GetBaseActiveStatementSpansAsync(DebuggingSessionId sessionId, Solution solution, ImmutableArray<DocumentId> documentIds, CancellationToken cancellationToken);
33ValueTask<ImmutableArray<ActiveStatementSpan>> GetAdjustedActiveStatementSpansAsync(DebuggingSessionId sessionId, TextDocument document, ActiveStatementSpanProvider activeStatementSpanProvider, CancellationToken cancellationToken);
EditAndContinue\Remote\IRemoteEditAndContinueService.cs (11)
20ValueTask<ImmutableArray<ManagedActiveStatementDebugInfo>> GetActiveStatementsAsync(RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
22ValueTask<ImmutableArray<string>> GetCapabilitiesAsync(RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
25ValueTask<ImmutableArray<ActiveStatementSpan>> GetSpansAsync(RemoteServiceCallbackId callbackId, DocumentId? documentId, string filePath, CancellationToken cancellationToken);
26ValueTask<string?> TryGetMatchingSourceTextAsync(RemoteServiceCallbackId callbackId, string filePath, ImmutableArray<byte> requiredChecksum, SourceHashAlgorithm checksumAlgorithm, CancellationToken cancellationToken);
29ValueTask<ImmutableArray<DiagnosticData>> GetDocumentDiagnosticsAsync(Checksum solutionChecksum, RemoteServiceCallbackId callbackId, DocumentId documentId, CancellationToken cancellationToken);
37ValueTask UpdateBaselinesAsync(Checksum solutionInfo, DebuggingSessionId sessionId, ImmutableArray<ProjectId> rebuiltProjects, CancellationToken cancellationToken);
39ValueTask<DebuggingSessionId> StartDebuggingSessionAsync(Checksum solutionChecksum, RemoteServiceCallbackId callbackId, ImmutableArray<DocumentId> captureMatchingDocuments, bool captureAllMatchingDocuments, bool reportDiagnostics, CancellationToken cancellationToken);
50ValueTask<ImmutableArray<ImmutableArray<ActiveStatementSpan>>> GetBaseActiveStatementSpansAsync(Checksum solutionChecksum, DebuggingSessionId sessionId, ImmutableArray<DocumentId> documentIds, CancellationToken cancellationToken);
51ValueTask<ImmutableArray<ActiveStatementSpan>> GetAdjustedActiveStatementSpansAsync(Checksum solutionChecksum, RemoteServiceCallbackId callbackId, DebuggingSessionId sessionId, DocumentId documentId, CancellationToken cancellationToken);
EditAndContinue\Remote\RemoteDebuggingSessionProxy.cs (11)
84ProjectsToRestart = ImmutableDictionary<ProjectId, ImmutableArray<ProjectId>>.Empty,
96ProjectsToRestart = ImmutableDictionary<ProjectId, ImmutableArray<ProjectId>>.Empty,
100ImmutableArray<DiagnosticData> GetInternalErrorDiagnosticData(string message)
143public async ValueTask UpdateBaselinesAsync(Solution solution, ImmutableArray<ProjectId> rebuiltProjects, CancellationToken cancellationToken)
159public async ValueTask<ImmutableArray<ImmutableArray<ActiveStatementSpan>>> GetBaseActiveStatementSpansAsync(Solution solution, ImmutableArray<DocumentId> documentIds, CancellationToken cancellationToken)
167var result = await client.TryInvokeAsync<IRemoteEditAndContinueService, ImmutableArray<ImmutableArray<ActiveStatementSpan>>>(
175public async ValueTask<ImmutableArray<ActiveStatementSpan>> GetAdjustedActiveStatementSpansAsync(TextDocument document, ActiveStatementSpanProvider activeStatementSpanProvider, CancellationToken cancellationToken)
189var result = await client.TryInvokeAsync<IRemoteEditAndContinueService, ImmutableArray<ActiveStatementSpan>>(
EditAndContinue\Remote\RemoteEditAndContinueServiceProxy.cs (10)
32public ValueTask<ImmutableArray<ActiveStatementSpan>> GetSpansAsync(RemoteServiceCallbackId callbackId, DocumentId? documentId, string filePath, CancellationToken cancellationToken)
35public ValueTask<string?> TryGetMatchingSourceTextAsync(RemoteServiceCallbackId callbackId, string filePath, ImmutableArray<byte> requiredChecksum, SourceHashAlgorithm checksumAlgorithm, CancellationToken cancellationToken)
38public ValueTask<ImmutableArray<ManagedActiveStatementDebugInfo>> GetActiveStatementsAsync(RemoteServiceCallbackId callbackId, CancellationToken cancellationToken)
44public ValueTask<ImmutableArray<string>> GetCapabilitiesAsync(RemoteServiceCallbackId callbackId, CancellationToken cancellationToken)
56public async ValueTask<string?> TryGetMatchingSourceTextAsync(string filePath, ImmutableArray<byte> requiredChecksum, SourceHashAlgorithm checksumAlgorithm, CancellationToken cancellationToken)
68public async ValueTask<ImmutableArray<ManagedActiveStatementDebugInfo>> GetActiveStatementsAsync(CancellationToken cancellationToken)
104public async ValueTask<ImmutableArray<string>> GetCapabilitiesAsync(CancellationToken cancellationToken)
124ImmutableArray<DocumentId> captureMatchingDocuments,
154public async ValueTask<ImmutableArray<DiagnosticData>> GetDocumentDiagnosticsAsync(Document document, ActiveStatementSpanProvider activeStatementSpanProvider, CancellationToken cancellationToken)
169var diagnosticData = await client.TryInvokeAsync<IRemoteEditAndContinueService, ImmutableArray<DiagnosticData>>(
EditAndContinue\SolutionUpdate.cs (17)
14ImmutableArray<ProjectId> projectsToStale,
15ImmutableArray<(Guid ModuleId, ImmutableArray<(ManagedModuleMethodId Method, NonRemappableRegion Region)>)> nonRemappableRegions,
16ImmutableArray<ProjectBaseline> projectBaselines,
17ImmutableArray<ProjectDiagnostics> diagnostics,
18ImmutableArray<(DocumentId DocumentId, ImmutableArray<RudeEditDiagnostic> Diagnostics)> documentsWithRudeEdits,
22public readonly ImmutableArray<ProjectId> ProjectsToStale = projectsToStale;
23public readonly ImmutableArray<(Guid ModuleId, ImmutableArray<(ManagedModuleMethodId Method, NonRemappableRegion Region)>)> NonRemappableRegions = nonRemappableRegions;
24public readonly ImmutableArray<ProjectBaseline> ProjectBaselines = projectBaselines;
25public readonly ImmutableArray<ProjectDiagnostics> Diagnostics = diagnostics;
26public readonly ImmutableArray<(DocumentId DocumentId, ImmutableArray<RudeEditDiagnostic> Diagnostics)> DocumentsWithRudeEdits = documentsWithRudeEdits;
30ImmutableArray<ProjectDiagnostics> diagnostics,
31ImmutableArray<(DocumentId, ImmutableArray<RudeEditDiagnostic>)> documentsWithRudeEdits,
EmbeddedLanguages\Classification\AbstractEmbeddedLanguageClassificationService.cs (3)
39Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
52SolutionServices services, Project? project, SemanticModel semanticModel, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
127var classifiers = _owner.GetServices(_semanticModel, token, _cancellationToken);
EncapsulateField\AbstractEncapsulateFieldService.cs (13)
41protected abstract Task<ImmutableArray<IFieldSymbol>> GetFieldsAsync(Document document, TextSpan span, CancellationToken cancellationToken);
46var fields = await GetFieldsAsync(document, span, cancellationToken).ConfigureAwait(false);
57public async Task<ImmutableArray<CodeAction>> GetEncapsulateFieldCodeActionsAsync(Document document, TextSpan span, CancellationToken cancellationToken)
59var fields = await GetFieldsAsync(document, span, cancellationToken).ConfigureAwait(false);
81private ImmutableArray<CodeAction> EncapsulateAllFields(Document document, ImmutableArray<IFieldSymbol> fields)
93private ImmutableArray<CodeAction> EncapsulateOneField(Document document, IFieldSymbol field)
95var fields = ImmutableArray.Create(field);
110Document document, ImmutableArray<IFieldSymbol> fields,
123var result = await client.TryInvokeAsync<IRemoteEncapsulateFieldService, ImmutableArray<(DocumentId, ImmutableArray<TextChange>)>>(
140private async Task<Solution> EncapsulateFieldsInCurrentProcessAsync(Document document, ImmutableArray<IFieldSymbol> fields, bool updateReferences, CancellationToken cancellationToken)
236var linkedDocumentIds = document.GetLinkedDocumentIds();
ExternalAccess\UnitTesting\API\UnitTestingHotReloadService.cs (22)
18private sealed class DebuggerService(ImmutableArray<string> capabilities) : IManagedHotReloadService
20private readonly ImmutableArray<string> _capabilities = capabilities;
22public ValueTask<ImmutableArray<ManagedActiveStatementDebugInfo>> GetActiveStatementsAsync(CancellationToken cancellationToken)
23=> ValueTaskFactory.FromResult(ImmutableArray<ManagedActiveStatementDebugInfo>.Empty);
28public ValueTask<ImmutableArray<string>> GetCapabilitiesAsync(CancellationToken cancellationToken)
37ImmutableArray<byte> ilDelta,
38ImmutableArray<byte> metadataDelta,
39ImmutableArray<byte> pdbDelta,
40ImmutableArray<int> updatedMethods,
41ImmutableArray<int> updatedTypes)
44public readonly ImmutableArray<byte> ILDelta = ilDelta;
45public readonly ImmutableArray<byte> MetadataDelta = metadataDelta;
46public readonly ImmutableArray<byte> PdbDelta = pdbDelta;
47public readonly ImmutableArray<int> UpdatedMethods = updatedMethods;
48public readonly ImmutableArray<int> UpdatedTypes = updatedTypes;
52(_, _, _) => ValueTaskFactory.FromResult(ImmutableArray<ActiveStatementSpan>.Empty);
54private static readonly ImmutableArray<Update> EmptyUpdate = [];
55private static readonly ImmutableArray<Diagnostic> EmptyDiagnostic = [];
66public async Task StartSessionAsync(Solution solution, ImmutableArray<string> capabilities, CancellationToken cancellationToken)
83/// where <paramref name="commitUpdates"/> was `true` or the one passed to <see cref="StartSessionAsync(Solution, ImmutableArray{string}, CancellationToken)"/>
92public async Task<(ImmutableArray<Update> updates, ImmutableArray<Diagnostic> diagnostics)> EmitSolutionUpdateAsync(Solution solution, bool commitUpdates, CancellationToken cancellationToken)
ExternalAccess\UnitTesting\SolutionCrawler\UnitTestingWorkCoordinator.UnitTestingIncrementalAnalyzerProcessor.cs (10)
57var lazyAllAnalyzers = new Lazy<ImmutableArray<IUnitTestingIncrementalAnalyzer>>(() => GetIncrementalAnalyzers(_registration, analyzersGetter, onlyHighPriorityAnalyzer: false));
66private static ImmutableArray<IUnitTestingIncrementalAnalyzer> GetIncrementalAnalyzers(UnitTestingRegistration registration, UnitTestingAnalyzersGetter analyzersGetter, bool onlyHighPriorityAnalyzer)
97public ImmutableArray<IUnitTestingIncrementalAnalyzer> Analyzers => _normalPriorityProcessor.Analyzers;
120TextDocument textDocument, ImmutableArray<IUnitTestingIncrementalAnalyzer> analyzers, UnitTestingWorkItem workItem, CancellationToken cancellationToken)
148ImmutableArray<IUnitTestingIncrementalAnalyzer> analyzers,
181private async Task RunBodyAnalyzersAsync(ImmutableArray<IUnitTestingIncrementalAnalyzer> analyzers, UnitTestingWorkItem workItem, Document document, CancellationToken cancellationToken)
269internal void WaitUntilCompletion(ImmutableArray<IUnitTestingIncrementalAnalyzer> analyzers, List<UnitTestingWorkItem> items)
287private readonly Dictionary<(string workspaceKind, SolutionServices services), ImmutableArray<IUnitTestingIncrementalAnalyzer>> _analyzerMap = [];
289public ImmutableArray<IUnitTestingIncrementalAnalyzer> GetOrderedAnalyzers(string workspaceKind, SolutionServices services, bool onlyHighPriorityAnalyzer)
293if (!_analyzerMap.TryGetValue((workspaceKind, services), out var analyzers))
ExtractMethod\MethodExtractor.Analyzer.cs (14)
126var typeParametersInConstraintList = GetMethodTypeParametersInConstraintList(variableInfoMap, symbolMap, sortedMap);
127var typeParametersInDeclaration = GetMethodTypeParametersInDeclaration(returnType, sortedMap);
145private (ImmutableArray<VariableInfo> finalOrderedVariableInfos, ITypeSymbol returnType, bool returnsByRef)
163var finalOrderedVariableInfos = MarkVariableInfosToUseAsReturnValueIfPossible(
196ITypeSymbol GetReturnType(ImmutableArray<VariableInfo> variablesToUseAsReturnValue)
221ImmutableArray<VariableInfo> variables,
309private ImmutableArray<VariableInfo> MarkVariableInfosToUseAsReturnValueIfPossible(
310ImmutableArray<VariableInfo> variableInfos, bool hasFlowControlResult)
347ImmutableArray<VariableInfo> variableInfo,
522PooledDisposer<PooledHashSet<ISymbol>> GetPooledSymbolSet(ImmutableArray<ISymbol> symbols, out PooledHashSet<ISymbol> symbolSet)
761var constraintTypes = typeParameter.ConstraintTypes;
783private ImmutableArray<ITypeParameterSymbol> GetMethodTypeParametersInConstraintList(
806var constraintTypes = typeParameter.ConstraintTypes;
859private ImmutableArray<ITypeParameterSymbol> GetMethodTypeParametersInDeclaration(ITypeSymbol returnType, SortedDictionary<int, ITypeParameterSymbol> sortedMap)
FindUsages\DefinitionItem.cs (44)
59public ImmutableArray<string> Tags { get; }
71public ImmutableArray<(string key, string value)> DisplayableProperties { get; }
77public ImmutableArray<TaggedText> NameDisplayParts { get; }
83public ImmutableArray<TaggedText> DisplayParts { get; }
89public ImmutableArray<DocumentSpan> SourceSpans { get; }
94public ImmutableArray<ClassifiedSpansAndHighlightSpan?> ClassifiedSpans { get; }
99public ImmutableArray<AssemblyLocation> MetadataLocations { get; }
116ImmutableArray<string> tags,
117ImmutableArray<TaggedText> displayParts,
118ImmutableArray<TaggedText> nameDisplayParts,
119ImmutableArray<DocumentSpan> sourceSpans,
120ImmutableArray<ClassifiedSpansAndHighlightSpan?> classifiedSpans,
121ImmutableArray<AssemblyLocation> metadataLocations,
123ImmutableArray<(string key, string value)> displayableProperties,
162ImmutableArray<string> tags,
163ImmutableArray<TaggedText> displayParts,
165ImmutableArray<TaggedText> nameDisplayParts = default,
177ImmutableArray<string> tags,
178ImmutableArray<TaggedText> displayParts,
181ImmutableArray<TaggedText> nameDisplayParts = default,
194ImmutableArray<string> tags,
195ImmutableArray<TaggedText> displayParts,
196ImmutableArray<DocumentSpan> sourceSpans,
197ImmutableArray<ClassifiedSpansAndHighlightSpan?> classifiedSpans,
198ImmutableArray<TaggedText> nameDisplayParts,
208ImmutableArray<string> tags,
209ImmutableArray<TaggedText> displayParts,
210ImmutableArray<DocumentSpan> sourceSpans,
211ImmutableArray<ClassifiedSpansAndHighlightSpan?> classifiedSpans,
212ImmutableArray<TaggedText> nameDisplayParts = default,
222ImmutableArray<string> tags,
223ImmutableArray<TaggedText> displayParts,
224ImmutableArray<DocumentSpan> sourceSpans,
225ImmutableArray<ClassifiedSpansAndHighlightSpan?> classifiedSpans,
226ImmutableArray<AssemblyLocation> metadataLocations,
227ImmutableArray<TaggedText> nameDisplayParts = default,
229ImmutableArray<(string key, string value)> displayableProperties = default,
243ImmutableArray<string> tags,
244ImmutableArray<TaggedText> displayParts,
245ImmutableArray<TaggedText> originationParts,
254ImmutableArray<string> tags,
255ImmutableArray<TaggedText> displayParts,
256ImmutableArray<TaggedText> nameDisplayParts = default,
257ImmutableArray<AssemblyLocation> metadataLocations = default,
FindUsages\DefinitionItemFactory.cs (18)
43ImmutableArray<Location> locations,
49var sourceLocations = GetSourceLocations(definition, locations, solution, includeHiddenLocations);
69var sourceLocations = GetSourceLocations(definition, definition.Locations, solution, includeHiddenLocations);
70var classifiedSpans = await ClassifyDocumentSpansAsync(classificationOptions, sourceLocations, cancellationToken).ConfigureAwait(false);
87var sourceLocations = GetSourceLocations(definition, locations, solution, includeHiddenLocations);
88var classifiedSpans = await ClassifyDocumentSpansAsync(classificationOptions, sourceLocations, cancellationToken).ConfigureAwait(false);
94ImmutableArray<DocumentSpan> sourceLocations,
95ImmutableArray<ClassifiedSpansAndHighlightSpan?> classifiedSpans,
113var displayParts = GetDisplayParts(definition);
114var nameDisplayParts = definition.ToDisplayParts(s_namePartsFormat).ToTaggedText();
116var tags = GlyphTags.GetTags(definition.GetGlyph());
122var metadataLocations = GetMetadataLocations(definition, solution, out var originatingProjectId);
140var displayableProperties = AbstractReferenceFinder.GetAdditionalFindUsagesProperties(definition);
163internal static ImmutableArray<AssemblyLocation> GetMetadataLocations(ISymbol definition, Solution solution, out ProjectId? originatingProjectId)
223private static ImmutableArray<DocumentSpan> GetSourceLocations(ISymbol definition, ImmutableArray<Location> locations, Solution solution, bool includeHiddenLocations)
247private static ValueTask<ImmutableArray<ClassifiedSpansAndHighlightSpan?>> ClassifyDocumentSpansAsync(OptionsProvider<ClassificationOptions> optionsProvider, ImmutableArray<DocumentSpan> unclassifiedSpans, CancellationToken cancellationToken)
FindUsages\IRemoteFindUsagesService.cs (18)
33ValueTask OnReferencesFoundAsync(RemoteServiceCallbackId callbackId, ImmutableArray<SerializableSourceReferenceItem> references, CancellationToken cancellationToken);
74public ValueTask OnReferencesFoundAsync(RemoteServiceCallbackId callbackId, ImmutableArray<SerializableSourceReferenceItem> references, CancellationToken cancellationToken)
132public async ValueTask OnReferencesFoundAsync(ImmutableArray<SerializableSourceReferenceItem> references, CancellationToken cancellationToken)
144ImmutableArray<SerializableSourceReferenceItem> references, [EnumeratorCancellation] CancellationToken cancellationToken)
185ImmutableArray<string> tags,
186ImmutableArray<TaggedText> displayParts,
187ImmutableArray<TaggedText> nameDisplayParts,
188ImmutableArray<SerializableDocumentSpan> sourceSpans,
189ImmutableArray<AssemblyLocation> metadataLocations,
191ImmutableArray<(string key, string value)> displayableProperties,
198public readonly ImmutableArray<string> Tags = tags;
201public readonly ImmutableArray<TaggedText> DisplayParts = displayParts;
204public readonly ImmutableArray<TaggedText> NameDisplayParts = nameDisplayParts;
207public readonly ImmutableArray<SerializableDocumentSpan> SourceSpans = sourceSpans;
210public readonly ImmutableArray<AssemblyLocation> MetadataLocations = metadataLocations;
216public readonly ImmutableArray<(string key, string value)> DisplayableProperties = displayableProperties;
280ImmutableArray<(string key, string value)> additionalProperties)
295public readonly ImmutableArray<(string key, string value)> AdditionalProperties = additionalProperties;
GenerateEqualsAndGetHashCodeFromMembers\AbstractGenerateEqualsAndGetHashCodeService.cs (10)
25ImmutableArray<SyntaxNode> statements, out ImmutableArray<SyntaxNode> wrappedStatements);
39Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members,
52ImmutableArray<ISymbol> members, INamedTypeSymbol constructedEquatableType, CancellationToken cancellationToken)
119ImmutableArray<ISymbol> members, CancellationToken cancellationToken)
129INamedTypeSymbol namedType, ImmutableArray<ISymbol> members)
131var statements = CreateGetHashCodeStatements(
147private ImmutableArray<SyntaxNode> CreateGetHashCodeStatements(
149INamedTypeSymbol namedType, ImmutableArray<ISymbol> members)
177if (TryWrapWithUnchecked(statements, out var wrappedStatements))
GenerateEqualsAndGetHashCodeFromMembers\GenerateEqualsAndGetHashCodeFromMembersCodeRefactoringProvider.cs (6)
169public async Task<ImmutableArray<CodeAction>> GenerateEqualsAndGetHashCodeFromMembersAsync(
200private async Task<ImmutableArray<CodeAction>> CreateActionsAsync(
201Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> selectedMembers,
241Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
258Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
295Document document, SyntaxNode typeDeclaration, INamedTypeSymbol containingType, ImmutableArray<ISymbol> members,
GenerateEqualsAndGetHashCodeFromMembers\IGenerateEqualsAndGetHashCodeService.cs (3)
29Task<IMethodSymbol> GenerateEqualsMethodAsync(Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, string? localNameOpt, CancellationToken cancellationToken);
41Task<IMethodSymbol> GenerateIEquatableEqualsMethodAsync(Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, INamedTypeSymbol constructedEquatableType, CancellationToken cancellationToken);
50Task<IMethodSymbol> GenerateGetHashCodeMethodAsync(Document document, INamedTypeSymbol namedType, ImmutableArray<ISymbol> members, CancellationToken cancellationToken);
InheritanceMargin\AbstractInheritanceMarginService_Helpers.cs (37)
25using SymbolAndLineNumberArray = ImmutableArray<(ISymbol symbol, int lineNumber)>;
43private static async ValueTask<ImmutableArray<InheritanceMarginItem>> GetSymbolInheritanceChainItemsAsync(
46SymbolAndLineNumberArray symbolAndLineNumbers,
76private async ValueTask<(Project remapped, SymbolAndLineNumberArray symbolAndLineNumbers)> GetMemberSymbolsAsync(
82var allDeclarationNodes = GetMembers(root.DescendantNodes(spanToSearch));
122return (document.Project, SymbolAndLineNumberArray.Empty);
125private async Task<ImmutableArray<InheritanceMarginItem>> GetInheritanceMarginItemsInProcessAsync(
157private async Task<ImmutableArray<InheritanceMarginItem>> GetGlobalImportsItemsAsync(
289var allBaseSymbols = BaseTypeFinder.FindBaseTypesAndInterfaces(memberSymbol);
303var allDerivedSymbols = await GetDerivedTypesAndImplementationsAsync(
351var allImplementingSymbols = await GetImplementingSymbolsForTypeMemberAsync(solution, memberSymbol, cancellationToken).ConfigureAwait(false);
375var overriddenSymbols = GetOverriddenSymbols(memberSymbol, allowLooseMatch: true);
378var implementedSymbols = GetImplementedSymbolsForTypeMember(memberSymbol, overriddenSymbols);
403ImmutableArray<ISymbol> baseSymbols,
404ImmutableArray<ISymbol> derivedTypesSymbols,
427var nonNullBaseSymbolItems = GetNonNullTargetItems(baseSymbolItems);
428var nonNullDerivedTypeItems = GetNonNullTargetItems(derivedTypeItems);
442ImmutableArray<ISymbol> implementingMembers,
455var nonNullImplementedMemberItems = GetNonNullTargetItems(implementedMemberItems);
468ImmutableArray<ISymbol> baseSymbols,
469ImmutableArray<ISymbol> derivedTypesSymbols,
494var nonNullBaseSymbolItems = GetNonNullTargetItems(baseSymbolItems);
495var nonNullDerivedTypeItems = GetNonNullTargetItems(derivedTypeItems);
509ImmutableArray<ISymbol> implementedMembers,
510ImmutableArray<ISymbol> overridingMembers,
511ImmutableArray<ISymbol> overriddenMembers,
544var nonNullImplementedMemberItems = GetNonNullTargetItems(implementedMemberItems);
545var nonNullOverriddenMemberItems = GetNonNullTargetItems(overriddenMemberItems);
546var nonNullOverridingMemberItems = GetNonNullTargetItems(overridingMemberItems);
592private static ImmutableArray<ISymbol> GetImplementedSymbolsForTypeMember(
594ImmutableArray<ISymbol> overriddenSymbols)
624private static async Task<ImmutableArray<ISymbol>> GetImplementingSymbolsForTypeMemberAsync(
659private static ImmutableArray<ISymbol> GetOverriddenSymbols(ISymbol memberSymbol, bool allowLooseMatch)
678private static async Task<ImmutableArray<INamedTypeSymbol>> GetDerivedTypesAndImplementationsAsync(
716var locations = symbol.Locations;
756private static ImmutableArray<InheritanceTargetItem> GetNonNullTargetItems(ImmutableArray<InheritanceTargetItem?> inheritanceTargetItems)
InitializeParameter\AbstractInitializeMemberFromParameterCodeRefactoringProviderMemberCreation.cs (20)
49protected sealed override Task<ImmutableArray<CodeAction>> GetRefactoringsForAllParametersAsync(
51ImmutableArray<SyntaxNode> listOfParameterNodes, TextSpan parameterSpan,
57protected sealed override async Task<ImmutableArray<CodeAction>> GetRefactoringsForSingleParameterAsync(
83var rules = await document.GetNamingRulesAsync(cancellationToken).ConfigureAwait(false);
102private async Task<ImmutableArray<CodeAction>> HandleNoExistingFieldOrPropertyAsync(
108ImmutableArray<NamingRule> rules,
159ImmutableArray<NamingRule> rules,
165var parameters = GetParametersWithoutAssociatedMembers(blockStatement, rules, method);
192ImmutableArray<NamingRule> rules,
213private static ImmutableArray<IParameterSymbol> GetParametersWithoutAssociatedMembers(
215ImmutableArray<NamingRule> rules,
236private ImmutableArray<CodeAction> HandleExistingFieldOrProperty(
276ImmutableArray<NamingRule> rules)
278var parameterNameParts = IdentifierNameParts.CreateIdentifierNameParts(parameter, rules).BaseNameParts;
312ImmutableArray<NamingRule> rules)
314var parameterNameParts = IdentifierNameParts.CreateIdentifierNameParts(parameter, rules).BaseNameParts;
360ImmutableArray<IParameterSymbol> parameters,
361ImmutableArray<ISymbol> fieldsOrProperties,
615Document document, IParameterSymbol parameter, IBlockOperation? blockStatement, ImmutableArray<NamingRule> rules, ImmutableArray<string> parameterWords, CancellationToken cancellationToken)
InlineHints\InlineHint.cs (9)
17public readonly ImmutableArray<TaggedText> DisplayParts;
20private readonly Func<Document, CancellationToken, Task<ImmutableArray<TaggedText>>>? _getDescriptionAsync;
24ImmutableArray<TaggedText> displayParts,
25Func<Document, CancellationToken, Task<ImmutableArray<TaggedText>>>? getDescriptionAsync = null)
32ImmutableArray<TaggedText> displayParts,
34Func<Document, CancellationToken, Task<ImmutableArray<TaggedText>>>? getDescriptionAsync = null)
41ImmutableArray<TaggedText> displayParts,
44Func<Document, CancellationToken, Task<ImmutableArray<TaggedText>>>? getDescriptionAsync = null)
60public Task<ImmutableArray<TaggedText>> GetDescriptionAsync(Document document, CancellationToken cancellationToken)
InlineHints\InlineHintHelpers.cs (3)
19public static Func<Document, CancellationToken, Task<ImmutableArray<TaggedText>>>? GetDescriptionFunction(int position, SymbolKey symbolKey, SymbolDescriptionOptions options)
22private static async Task<ImmutableArray<TaggedText>> GetDescriptionAsync(Document document, int position, SymbolKey symbolKey, SymbolDescriptionOptions options, CancellationToken cancellationToken)
39var documentation = symbol.GetDocumentationParts(semanticModel, position, formatter, cancellationToken);
LanguageServices\SymbolDisplayService\AbstractSymbolDisplayService.AbstractSymbolDescriptionBuilder.cs (30)
83private readonly Dictionary<SymbolDescriptionGroups, ImmutableArray<TaggedText>> _documentationMap = [];
110protected abstract Task<ImmutableArray<SymbolDisplayPart>> GetInitializerSourcePartsAsync(ISymbol symbol);
111protected abstract ImmutableArray<SymbolDisplayPart> ToMinimalDisplayParts(ISymbol symbol, SemanticModel semanticModel, int position, SymbolDisplayFormat format);
150protected virtual ImmutableArray<SymbolDisplayPart> WrapConstraints(ISymbol symbol, ImmutableArray<SymbolDisplayPart> displayParts)
153private async Task AddPartsAsync(ImmutableArray<ISymbol> symbols)
194var parts = formatter.Format(rawXmlText, symbol, _semanticModel, _position, format, CancellationToken);
254var captures = analysis.CapturedInside.Except(analysis.VariablesDeclared).ToImmutableArray();
281public async Task<ImmutableArray<SymbolDisplayPart>> BuildDescriptionAsync(
282ImmutableArray<ISymbol> symbolGroup, SymbolDescriptionGroups groups)
291public async Task<IDictionary<SymbolDescriptionGroups, ImmutableArray<TaggedText>>> BuildDescriptionSectionsAsync(ImmutableArray<ISymbol> symbolGroup)
373private ImmutableArray<SymbolDisplayPart> BuildDescription(SymbolDescriptionGroups groups)
426private IDictionary<SymbolDescriptionGroups, ImmutableArray<TaggedText>> BuildDescriptionSections()
431var result = new Dictionary<SymbolDescriptionGroups, ImmutableArray<TaggedText>>(_documentationMap);
435var taggedText = parts.ToTaggedText(TaggedTextStyle.None, _getNavigationHint, includeNavigationHints);
471var displayParts = symbol.IsAnonymousDelegateType()
499var underlyingTypeDisplayParts = symbol.EnumUnderlyingType.ToDisplayParts(s_descriptionStyle.WithMiscellaneousOptions(SymbolDisplayMiscellaneousOptions.UseSpecialTypes));
540var parts = await GetFieldPartsAsync(symbol).ConfigureAwait(false);
558private async Task<ImmutableArray<SymbolDisplayPart>> GetFieldPartsAsync(IFieldSymbol symbol)
562var initializerParts = await GetInitializerSourcePartsAsync(symbol).ConfigureAwait(false);
581var parts = await GetLocalPartsAsync(symbol).ConfigureAwait(false);
590private async Task<ImmutableArray<SymbolDisplayPart>> GetLocalPartsAsync(ILocalSymbol symbol)
594var initializerParts = await GetInitializerSourcePartsAsync(symbol).ConfigureAwait(false);
651var initializerParts = await GetInitializerSourcePartsAsync(symbol).ConfigureAwait(false);
703ImmutableArray<ISymbol> symbolGroup)
720private static int GetOverloadCount(ImmutableArray<ISymbol> symbolGroup)
729ImmutableArray<ITypeParameterSymbol> typeParameters,
730ImmutableArray<ITypeSymbol> typeArguments)
804protected ImmutableArray<SymbolDisplayPart> ToMinimalDisplayParts(ISymbol symbol, SymbolDisplayFormat? format = null)
LanguageServices\SymbolDisplayService\AbstractSymbolDisplayService.cs (7)
28public async Task<string> ToDescriptionStringAsync(SemanticModel semanticModel, int position, ImmutableArray<ISymbol> symbols, SymbolDescriptionOptions options, SymbolDescriptionGroups groups, CancellationToken cancellationToken)
30var parts = await ToDescriptionPartsAsync(semanticModel, position, symbols, options, groups, cancellationToken).ConfigureAwait(false);
34public async Task<ImmutableArray<SymbolDisplayPart>> ToDescriptionPartsAsync(SemanticModel semanticModel, int position, ImmutableArray<ISymbol> symbols, SymbolDescriptionOptions options, SymbolDescriptionGroups groups, CancellationToken cancellationToken)
45public async Task<IDictionary<SymbolDescriptionGroups, ImmutableArray<TaggedText>>> ToDescriptionGroupsAsync(
46SemanticModel semanticModel, int position, ImmutableArray<ISymbol> symbols, SymbolDescriptionOptions options, CancellationToken cancellationToken)
50return SpecializedCollections.EmptyDictionary<SymbolDescriptionGroups, ImmutableArray<TaggedText>>();
LanguageServices\SymbolDisplayService\ISymbolDisplayService.cs (5)
16Task<string> ToDescriptionStringAsync(SemanticModel semanticModel, int position, ImmutableArray<ISymbol> symbols, SymbolDescriptionOptions options, SymbolDescriptionGroups groups = SymbolDescriptionGroups.All, CancellationToken cancellationToken = default);
17Task<ImmutableArray<SymbolDisplayPart>> ToDescriptionPartsAsync(SemanticModel semanticModel, int position, ImmutableArray<ISymbol> symbols, SymbolDescriptionOptions options, SymbolDescriptionGroups groups = SymbolDescriptionGroups.All, CancellationToken cancellationToken = default);
18Task<IDictionary<SymbolDescriptionGroups, ImmutableArray<TaggedText>>> ToDescriptionGroupsAsync(SemanticModel semanticModel, int position, ImmutableArray<ISymbol> symbols, SymbolDescriptionOptions options, CancellationToken cancellationToken = default);
MoveStaticMembers\MoveStaticMembersWithDialogCodeAction.cs (11)
29ImmutableArray<ISymbol> selectedMembers) : CodeActionWithOptions
32private readonly ImmutableArray<ISymbol> _selectedMembers = selectedMembers;
87var typeParameters = ExtractTypeHelpers.GetRequiredTypeParametersForMembers(_selectedType, moveOptions.SelectedMembers);
160ImmutableArray<ISymbol> selectedMembers,
161ImmutableArray<SyntaxNode> oldMemberNodes,
164ImmutableArray<int> typeArgIndices,
220ImmutableArray<int> typeArgIndices,
252ImmutableArray<(ReferenceLocation location, bool isExtensionMethod)> referenceLocations,
255ImmutableArray<int> typeArgIndices,
344private static async Task<ImmutableArray<(ReferenceLocation location, bool isExtension)>> FindMemberReferencesAsync(
347ImmutableArray<ISymbol> members,
NavigateTo\AbstractNavigateToSearchService.CachedDocumentSearch.cs (6)
60ImmutableArray<Project> projects,
61ImmutableArray<Document> priorityDocuments,
65Func<ImmutableArray<INavigateToSearchResult>, Task> onResultsFound,
101ImmutableArray<DocumentKey> documentKeys,
102ImmutableArray<DocumentKey> priorityDocumentKeys,
105Func<ImmutableArray<RoslynNavigateToItem>, VoidResult, CancellationToken, Task> onItemsFound,
NavigateTo\AbstractNavigateToSearchService.NormalSearch.cs (11)
30Func<ImmutableArray<INavigateToSearchResult>, Task> onResultsFound,
57Func<ImmutableArray<RoslynNavigateToItem>, VoidResult, CancellationToken, Task> onItemsFound,
71Task SearchDocumentsInCurrentProcessAsync(ImmutableArray<(Document document, NormalizedTextSpanCollection? spans)> documentAndSpans)
96var relatedDocuments = await GetRelatedDocumentsAsync().ConfigureAwait(false);
100async Task<ImmutableArray<(Document document, NormalizedTextSpanCollection? spans)>> GetRelatedDocumentsAsync()
146ImmutableArray<Project> projects,
147ImmutableArray<Document> priorityDocuments,
151Func<ImmutableArray<INavigateToSearchResult>, Task> onResultsFound,
187ImmutableArray<Project> projects,
188ImmutableArray<Document> priorityDocuments,
191Func<ImmutableArray<RoslynNavigateToItem>, VoidResult, CancellationToken, Task> onItemsFound,
NavigateTo\INavigateToSearchService.cs (9)
22Func<ImmutableArray<INavigateToSearchResult>, Task> onResultsFound,
37ImmutableArray<Project> projects,
38ImmutableArray<Document> priorityDocuments,
42Func<ImmutableArray<INavigateToSearchResult>, Task> onResultsFound,
64ImmutableArray<Project> projects,
65ImmutableArray<Document> priorityDocuments,
69Func<ImmutableArray<INavigateToSearchResult>, Task> onResultsFound,
83ImmutableArray<Project> projects,
87Func<ImmutableArray<INavigateToSearchResult>, Task> onResultsFound,
NavigateTo\IRemoteNavigateToSearchService.cs (13)
20ValueTask SearchDocumentAndRelatedDocumentsAsync(Checksum solutionChecksum, DocumentId documentId, string searchPattern, ImmutableArray<string> kinds, RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
21ValueTask SearchProjectsAsync(Checksum solutionChecksum, ImmutableArray<ProjectId> projectIds, ImmutableArray<DocumentId> priorityDocumentIds, string searchPattern, ImmutableArray<string> kinds, RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
23ValueTask SearchGeneratedDocumentsAsync(Checksum solutionChecksum, ImmutableArray<ProjectId> projectIds, string searchPattern, ImmutableArray<string> kinds, RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
24ValueTask SearchCachedDocumentsAsync(ImmutableArray<DocumentKey> documentKeys, ImmutableArray<DocumentKey> priorityDocumentKeys, string searchPattern, ImmutableArray<string> kinds, RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
30ValueTask OnItemsFoundAsync(RemoteServiceCallbackId callbackId, ImmutableArray<RoslynNavigateToItem> items);
43public ValueTask OnItemsFoundAsync(RemoteServiceCallbackId callbackId, ImmutableArray<RoslynNavigateToItem> items)
51Func<ImmutableArray<RoslynNavigateToItem>, VoidResult, CancellationToken, Task> onItemsFound,
55public async ValueTask OnItemsFoundAsync(ImmutableArray<RoslynNavigateToItem> items)
NavigateTo\NavigateToSearcher.cs (24)
52private readonly ImmutableArray<Document> _visibleDocuments;
224var orderedProjects = GetOrderedProjectsToProcess();
231ImmutableArray<ImmutableArray<Project>> orderedProjects,
283private ImmutableArray<ImmutableArray<Project>> GetOrderedProjectsToProcess()
285using var result = TemporaryArray<ImmutableArray<Project>>.Empty;
326private ImmutableArray<Document> GetPriorityDocuments(ImmutableArray<Project> projects)
347ImmutableArray<ImmutableArray<Project>> orderedProjects,
349Func<INavigateToSearchService, ImmutableArray<Project>, Func<ImmutableArray<INavigateToSearchResult>, Task>, Func<Task>, Task> processProjectAsync,
357foreach (var projectGroup in orderedProjects)
412ImmutableArray<ImmutableArray<Project>> orderedProjects,
430ImmutableArray<ImmutableArray<Project>> orderedProjects,
462ImmutableArray<ImmutableArray<Project>> orderedProjects,
531public Task SearchDocumentAsync(Document document, string searchPattern, IImmutableSet<string> kinds, Func<ImmutableArray<INavigateToSearchResult>, Task> onResultsFound, CancellationToken cancellationToken)
534public async Task SearchProjectsAsync(Solution solution, ImmutableArray<Project> projects, ImmutableArray<Document> priorityDocuments, string searchPattern, IImmutableSet<string> kinds, Document? activeDocument, Func<ImmutableArray<INavigateToSearchResult>, Task> onResultsFound, Func<Task> onProjectCompleted, CancellationToken cancellationToken)
NavigationBar\IRemoteNavigationBarItemService.cs (7)
15ValueTask<ImmutableArray<SerializableNavigationBarItem>> GetItemsAsync(
36public readonly ImmutableArray<SerializableNavigationBarItem> ChildItems;
71ImmutableArray<SerializableNavigationBarItem> childItems,
108public static ImmutableArray<SerializableNavigationBarItem> Dehydrate(ImmutableArray<RoslynNavigationBarItem> values)
111public static SerializableNavigationBarItem ActionlessItem(string text, Glyph glyph, ImmutableArray<SerializableNavigationBarItem> childItems = default, int indent = 0, bool bolded = false, bool grayed = false)
114public static SerializableNavigationBarItem SymbolItem(string text, Glyph glyph, string name, bool isObsolete, SymbolItemLocation location, ImmutableArray<SerializableNavigationBarItem> childItems = default, int indent = 0, bool bolded = false, bool grayed = false)
QuickInfo\QuickInfoUtilities.cs (16)
26public static Task<QuickInfoItem> CreateQuickInfoItemAsync(SolutionServices services, SemanticModel semanticModel, TextSpan span, ImmutableArray<ISymbol> symbols, SymbolDescriptionOptions options, CancellationToken cancellationToken)
33ImmutableArray<ISymbol> symbols,
58if (TryGetGroupText(SymbolDescriptionGroups.MainDescription, out var mainDescriptionTaggedParts))
72else if (TryGetGroupText(SymbolDescriptionGroups.MainDescription, out var mainDescriptionTaggedParts))
77if (groups.TryGetValue(SymbolDescriptionGroups.Documentation, out var docParts) && !docParts.IsDefaultOrEmpty)
87groups.TryGetValue(SymbolDescriptionGroups.RemarksDocumentation, out var remarksDocumentation) &&
98if (groups.TryGetValue(SymbolDescriptionGroups.ReturnsDocumentation, out var returnsDocumentation) &&
107if (groups.TryGetValue(SymbolDescriptionGroups.ValueDocumentation, out var valueDocumentation) &&
116if (TryGetGroupText(SymbolDescriptionGroups.TypeParameterMap, out var typeParameterMapText))
124if (TryGetGroupText(SymbolDescriptionGroups.StructuralTypes, out var anonymousTypesText))
133if (TryGetGroupText(SymbolDescriptionGroups.AwaitableUsageText, out var awaitableUsageText))
154if (TryGetGroupText(SymbolDescriptionGroups.Exceptions, out var exceptionsText))
157if (TryGetGroupText(SymbolDescriptionGroups.Captures, out var capturesText))
160var tags = ImmutableArray.CreateRange(GlyphTags.GetTags(symbol.GetGlyph()));
166bool TryGetGroupText(SymbolDescriptionGroups group, out ImmutableArray<TaggedText> taggedParts)
169void AddSection(string kind, ImmutableArray<TaggedText> taggedParts)
SignatureHelp\AbstractSignatureHelpProvider.cs (8)
30public abstract ImmutableArray<char> TriggerCharacters { get; }
31public abstract ImmutableArray<char> RetriggerCharacters { get; }
96private static (IList<SignatureHelpItem> items, int? selectedItem) Filter(IList<SignatureHelpItem> items, ImmutableArray<string> parameterNames, int? selectedItem)
113private static bool Include(SignatureHelpItem item, ImmutableArray<string> parameterNames)
251var relatedDocuments = await FindActiveRelatedDocumentsAsync(position, document, cancellationToken).ConfigureAwait(false);
305private static async Task<ImmutableArray<Document>> FindActiveRelatedDocumentsAsync(int position, Document document, CancellationToken cancellationToken)
322var platformParts = platformData.ToDisplayParts().ToTaggedText();
340protected static int? TryGetSelectedIndex<TSymbol>(ImmutableArray<TSymbol> candidates, ISymbol? currentSymbol) where TSymbol : class, ISymbol
Snippets\RoslynLSPSnippetConverter.cs (5)
22public static async Task<string> GenerateLSPSnippetAsync(Document document, int caretPosition, ImmutableArray<SnippetPlaceholder> placeholders, TextChange textChange, int triggerLocation, CancellationToken cancellationToken)
32private static string ConvertToLSPSnippetString(TextChange textChange, ImmutableArray<SnippetPlaceholder> placeholders, int caretPosition)
84private static void PopulateMapOfSpanStartsToLSPStringItem(Dictionary<int, (string identifier, int priority)> dictionary, ImmutableArray<SnippetPlaceholder> placeholders, int textChangeStart)
108private static async Task<TextChange> ExtendSnippetTextChangeAsync(Document document, TextChange textChange, ImmutableArray<SnippetPlaceholder> placeholders, int caretPosition, int triggerLocation, CancellationToken cancellationToken)
123private static TextSpan GetUpdatedTextSpan(TextChange textChange, ImmutableArray<SnippetPlaceholder> placeholders, int caretPosition, int triggerLocation)
Snippets\SnippetProviders\AbstractSnippetProvider.cs (6)
28public virtual ImmutableArray<string> AdditionalFilterTexts => [];
41protected abstract Task<ImmutableArray<TextChange>> GenerateSnippetTextChangesAsync(Document document, int position, CancellationToken cancellationToken);
51protected abstract ImmutableArray<SnippetPlaceholder> GetPlaceHolderLocationsList(TSnippetSyntax node, ISyntaxFacts syntaxFacts, CancellationToken cancellationToken);
75var textChanges = await GenerateSnippetTextChangesAsync(document, position, cancellationToken).ConfigureAwait(false);
104var placeholders = GetPlaceHolderLocationsList(mainChangeNode, syntaxFacts, cancellationToken);
188private static async Task<Document> GetDocumentWithSnippetAsync(Document document, ImmutableArray<TextChange> snippets, CancellationToken cancellationToken)
src\Analyzers\Core\Analyzers\RemoveUnnecessarySuppressions\AbstractRemoveUnnecessaryPragmaSuppressionsDiagnosticAnalyzer.cs (19)
88Func<DiagnosticAnalyzer, ImmutableArray<DiagnosticDescriptor>> getSupportedDiagnostics,
158using var _2 = ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)>.GetInstance(out var sortedPragmasWithIds);
230ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
232ImmutableArray<string> userExclusions)
346private static (ImmutableArray<string> userIdExclusions, ImmutableArray<string> userCategoryExclusions, bool analyzerDisabled) ParseUserExclusions(string? userExclusions)
389private static async Task<(ImmutableArray<Diagnostic> reportedDiagnostics, ImmutableArray<string> unhandledIds)> GetReportedDiagnosticsForIdsAsync(
394Func<DiagnosticAnalyzer, ImmutableArray<DiagnosticDescriptor>> getSupportedDiagnostics,
483static void AddAllDiagnostics(ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>> diagnostics, ArrayBuilder<Diagnostic> reportedDiagnostics)
485foreach (var perAnalyzerDiagnostics in diagnostics.Values)
493foreach (var perAnalyzerDiagnostics in analysisResult.CompilationDiagnostics.Values)
507ImmutableArray<Diagnostic> diagnostics,
610ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
632ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
643ImmutableArray<Location> additionalLocations;
679ArrayBuilder<(SyntaxTrivia pragma, ImmutableArray<string> ids, bool isDisable)> sortedPragmasWithIds,
738ImmutableArray<string> userIdExclusions,
739ImmutableArray<string> userCategoryExclusions,
src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.cs (6)
33protected abstract bool TryInitializeImplicitObjectCreation(SemanticDocument document, SyntaxNode node, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
34protected abstract bool TryInitializeSimpleNameGenerationState(SemanticDocument document, SyntaxNode simpleName, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
35protected abstract bool TryInitializeConstructorInitializerGeneration(SemanticDocument document, SyntaxNode constructorInitializer, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
36protected abstract bool TryInitializeSimpleAttributeNameGenerationState(SemanticDocument document, SyntaxNode simpleName, CancellationToken cancellationToken, out SyntaxToken token, out ImmutableArray<Argument<TExpressionSyntax>> arguments, [NotNullWhen(true)] out INamedTypeSymbol? typeToGenerateIn);
79public async Task<ImmutableArray<CodeAction>> GenerateConstructorAsync(Document document, SyntaxNode node, CancellationToken cancellationToken)
169private ImmutableArray<ParameterName> GenerateParameterNames(
src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.State.cs (24)
41private ImmutableArray<Argument<TExpressionSyntax>> _arguments;
46private ImmutableArray<RefKind> _parameterRefKinds;
47public ImmutableArray<ITypeSymbol> ParameterTypes;
54private ImmutableArray<IParameterSymbol> _parameters;
133var parameterNames = GetParameterNames(_arguments, typeParametersNames, cancellationToken);
140private ImmutableArray<ParameterName> GetParameterNames(
141ImmutableArray<Argument<TExpressionSyntax>> arguments, ImmutableArray<string> typeParametersNames, CancellationToken cancellationToken)
164var remainingArguments = _arguments.Skip(argumentCount).ToImmutableArray();
165var remainingParameterNames = _service.GenerateParameterNames(
176var remainingParameterTypes = ParameterTypes.Skip(argumentCount).ToImmutableArray();
187ImmutableArray<IParameterSymbol> allParameters,
188ImmutableArray<TExpressionSyntax?> allExpressions,
196var parameters = allParameters[0..i];
197var expressions = allExpressions[0..i];
208ImmutableArray<IParameterSymbol> parameters,
209ImmutableArray<TExpressionSyntax?> expressions,
210ImmutableArray<IMethodSymbol> constructors,
282internal ImmutableArray<ITypeSymbol> GetParameterTypes(CancellationToken cancellationToken)
304out var token, out var arguments, out var typeToGenerateIn))
322out var token, out var arguments, out var typeToGenerateIn))
341out var token, out var arguments, out var typeToGenerateIn))
461private async Task<(ImmutableArray<ISymbol>, ImmutableArray<SyntaxNode>)> GenerateMembersAndAssignmentsAsync(
src\Dependencies\CodeAnalysis.Debugging\CustomDebugInfoReader.cs (29)
55public static ImmutableArray<byte> TryGetCustomDebugInfoRecord(byte[] customDebugInfo, CustomDebugInfoKind recordKind)
126public static ImmutableArray<short> DecodeUsingRecord(ImmutableArray<byte> bytes)
148public static int DecodeForwardRecord(ImmutableArray<byte> bytes)
162public static int DecodeForwardToModuleRecord(ImmutableArray<byte> bytes)
174public static ImmutableArray<StateMachineHoistedLocalScope> DecodeStateMachineHoistedLocalScopesRecord(ImmutableArray<byte> bytes)
213public static string DecodeForwardIteratorRecord(ImmutableArray<byte> bytes)
242public static ImmutableArray<DynamicLocalInfo> DecodeDynamicLocalsRecord(ImmutableArray<byte> bytes)
301public static ImmutableArray<TupleElementNamesInfo> DecodeTupleElementNamesRecord(ImmutableArray<byte> bytes)
314private static TupleElementNamesInfo DecodeTupleElementNamesInfo(ImmutableArray<byte> bytes, ref int offset)
338public static ImmutableArray<ImmutableArray<string>> GetCSharpGroupedImportStrings<TArg>(
342Func<int, TArg, ImmutableArray<string>> getMethodImportStrings,
343out ImmutableArray<string> externAliasStrings)
347ImmutableArray<short> groupSizes = default;
396var allModuleInfoImportStrings = getMethodImportStrings(moduleInfoMethodToken, arg);
420var importStrings = getMethodImportStrings(methodToken, arg);
423var resultBuilder = ArrayBuilder<ImmutableArray<string>>.GetInstance(groupSizes.Length);
486public static ImmutableArray<string> GetVisualBasicImportStrings<TArg>(
489Func<int, TArg, ImmutableArray<string>> getMethodImportStrings)
491var importStrings = getMethodImportStrings(methodToken, arg);
496return ImmutableArray<string>.Empty;
519private static int ReadInt32(ImmutableArray<byte> bytes, ref int offset)
531private static short ReadInt16(ImmutableArray<byte> bytes, ref int offset)
543private static byte ReadByte(ImmutableArray<byte> bytes, ref int offset)
852private static string ReadUtf8String(ImmutableArray<byte> bytes, ref int offset)
Structure\Syntax\BlockSpanCollector.cs (8)
16private readonly ImmutableDictionary<Type, ImmutableArray<AbstractSyntaxStructureProvider>> _nodeProviderMap;
17private readonly ImmutableDictionary<int, ImmutableArray<AbstractSyntaxStructureProvider>> _triviaProviderMap;
22ImmutableDictionary<Type, ImmutableArray<AbstractSyntaxStructureProvider>> nodeOutlinerMap,
23ImmutableDictionary<int, ImmutableArray<AbstractSyntaxStructureProvider>> triviaOutlinerMap,
35ImmutableDictionary<Type, ImmutableArray<AbstractSyntaxStructureProvider>> nodeOutlinerMap,
36ImmutableDictionary<int, ImmutableArray<AbstractSyntaxStructureProvider>> triviaOutlinerMap,
65if (_nodeProviderMap.TryGetValue(node.GetType(), out var providers))
87if (_triviaProviderMap.TryGetValue(trivia.RawKind, out var providers))
SyncNamespaces\AbstractSyncNamespacesService.cs (14)
33ImmutableArray<Project> projects,
41var diagnosticAnalyzers = ImmutableArray.Create<DiagnosticAnalyzer>(DiagnosticAnalyzer);
58private static async Task<ImmutableDictionary<Project, ImmutableArray<Diagnostic>>> GetDiagnosticsByProjectAsync(
59ImmutableArray<Project> projects,
60ImmutableArray<DiagnosticAnalyzer> diagnosticAnalyzers,
64var builder = ImmutableDictionary.CreateBuilder<Project, ImmutableArray<Diagnostic>>();
68var diagnostics = await GetDiagnosticsAsync(project, diagnosticAnalyzers, isHostAnalyzer, cancellationToken).ConfigureAwait(false);
75private static async Task<ImmutableArray<Diagnostic>> GetDiagnosticsAsync(
77ImmutableArray<DiagnosticAnalyzer> diagnosticAnalyzers,
98ImmutableDictionary<Project, ImmutableArray<Diagnostic>> diagnosticsByProject,
144var operations = await fixAllAction.GetOperationsAsync(
156private readonly ImmutableDictionary<Project, ImmutableArray<Diagnostic>> _diagnosticsByProject;
158internal DiagnosticProvider(ImmutableDictionary<Project, ImmutableArray<Diagnostic>> diagnosticsByProject)
178return _diagnosticsByProject.TryGetValue(project, out var diagnostics)
CodeRefactorings\SyncNamespace\VisualBasicChangeNamespaceService.vb (7)
24Public Overrides Function TryGetReplacementReferenceSyntax(reference As SyntaxNode, newNamespaceParts As ImmutableArray(Of String), syntaxFacts As ISyntaxFactsService, ByRef old As SyntaxNode, ByRef [new] As SyntaxNode) As Boolean
60Protected Overrides Function GetValidContainersFromAllLinkedDocumentsAsync(document As Document, container As SyntaxNode, cancellationToken As CancellationToken) As Task(Of ImmutableArray(Of (DocumentId, SyntaxNode)))
61Return SpecializedTasks.Default(Of ImmutableArray(Of (DocumentId, SyntaxNode)))()
65Protected Overrides Function ChangeNamespaceDeclaration(root As CompilationUnitSyntax, declaredNamespaceParts As ImmutableArray(Of String), targetNamespaceParts As ImmutableArray(Of String)) As CompilationUnitSyntax
84Private Shared Function CreateNamespaceAsQualifiedName(namespaceParts As ImmutableArray(Of String), index As Integer) As NameSyntax
95Private Shared Function CreateNamespaceAsMemberAccess(namespaceParts As ImmutableArray(Of String), index As Integer) As ExpressionSyntax
Completion\CompletionProviders\ImplementsClauseCompletionProvider.vb (12)
51cancellationToken As CancellationToken) As Task(Of ImmutableArray(Of SymbolAndSelectionInfo))
58context As VisualBasicSyntaxContext, position As Integer, cancellationToken As CancellationToken) As Task(Of ImmutableArray(Of ISymbol))
90Dim result = ImmutableArray(Of ISymbol).Empty
138Private Shared Function GetDottedMembers(position As Integer, qualifiedName As QualifiedNameSyntax, semanticModel As SemanticModel, memberKindKeyword As SyntaxKind, cancellationToken As CancellationToken) As ImmutableArray(Of ISymbol)
141Return ImmutableArray(Of ISymbol).Empty
174Return ImmutableArray(Of ISymbol).Empty
186Private Function interfaceMemberGetter([interface] As ITypeSymbol, within As ISymbol) As ImmutableArray(Of ISymbol)
191Private Function GetInterfacesAndContainers(position As Integer, node As SyntaxNode, semanticModel As SemanticModel, kind As SyntaxKind, cancellationToken As CancellationToken) As ImmutableArray(Of ISymbol)
194Return ImmutableArray(Of ISymbol).Empty
260Private Shared Function TryAddGlobalTo(symbols As ImmutableArray(Of ISymbol)) As ImmutableArray(Of ISymbol)
305symbols As ImmutableArray(Of SymbolAndSelectionInfo),
src\Analyzers\VisualBasic\CodeFixes\GenerateConstructor\GenerateConstructorDiagnosticIds.vb (3)
21Friend Shared ReadOnly AllDiagnosticIds As ImmutableArray(Of String) = ImmutableArray.Create(BC30057, BC30272, BC30274, BC30389, BC30455, BC32006, BC30512, BC30387, BC30516)
22Friend Shared ReadOnly TooManyArgumentsDiagnosticIds As ImmutableArray(Of String) = ImmutableArray.Create(BC30057)
23Friend Shared ReadOnly CannotConvertDiagnosticIds As ImmutableArray(Of String) = ImmutableArray.Create(BC30512, BC32006, BC30311, BC36625)
CaseCorrection\AbstractCaseCorrectionService.cs (4)
20protected abstract void AddReplacements(SemanticModel? semanticModel, SyntaxNode root, ImmutableArray<TextSpan> spans, ConcurrentDictionary<SyntaxToken, SyntaxToken> replacements, CancellationToken cancellationToken);
22public async Task<Document> CaseCorrectAsync(Document document, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
41public SyntaxNode CaseCorrect(SyntaxNode root, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
44private SyntaxNode CaseCorrect(SemanticModel? semanticModel, SyntaxNode root, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
Classification\AbstractClassificationService.cs (14)
27private Func<SyntaxNode, ImmutableArray<ISyntaxClassifier>>? _getNodeClassifiers;
28private Func<SyntaxToken, ImmutableArray<ISyntaxClassifier>>? _getTokenClassifiers;
34Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
40Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
47ImmutableArray<TextSpan> textSpans,
108ImmutableArray<TextSpan> textSpans,
138ImmutableArray<TextSpan> textSpans,
156var reassignedVariableSpans = await reassignedVariableService.GetLocationsAsync(document, textSpans, cancellationToken).ConfigureAwait(false);
164var obsoleteSymbolSpans = await obsoleteSymbolService.GetLocationsAsync(document, textSpans, cancellationToken).ConfigureAwait(false);
185(Func<SyntaxNode, ImmutableArray<ISyntaxClassifier>>, Func<SyntaxToken, ImmutableArray<ISyntaxClassifier>>) GetExtensionClassifiers(
191var classifiers = classificationService.GetDefaultSyntaxClassifiers();
201public async Task AddSyntacticClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
208SolutionServices services, SyntaxNode? root, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken)
Classification\IClassificationService.cs (4)
34void AddSyntacticClassifications(SolutionServices services, SyntaxNode? root, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
46Task AddSyntacticClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
63Task AddSemanticClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
74Task AddEmbeddedLanguageClassificationsAsync(Document document, ImmutableArray<TextSpan> textSpans, ClassificationOptions options, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
Classification\SyntaxClassification\AbstractSyntaxClassificationService.cs (8)
19public abstract void AddSyntacticClassifications(SyntaxNode root, ImmutableArray<TextSpan> textSpans, SegmentedList<ClassifiedSpan> result, CancellationToken cancellationToken);
21public abstract ImmutableArray<ISyntaxClassifier> GetDefaultSyntaxClassifiers();
27ImmutableArray<TextSpan> textSpans,
29Func<SyntaxNode, ImmutableArray<ISyntaxClassifier>> getNodeClassifiers,
30Func<SyntaxToken, ImmutableArray<ISyntaxClassifier>> getTokenClassifiers,
49ImmutableArray<TextSpan> textSpans,
50Func<SyntaxNode, ImmutableArray<ISyntaxClassifier>> getNodeClassifiers,
51Func<SyntaxToken, ImmutableArray<ISyntaxClassifier>> getTokenClassifiers,
Classification\SyntaxClassification\AbstractSyntaxClassificationService.Worker.cs (7)
25private readonly Func<SyntaxNode, ImmutableArray<ISyntaxClassifier>> _getNodeClassifiers;
26private readonly Func<SyntaxToken, ImmutableArray<ISyntaxClassifier>> _getTokenClassifiers;
38Func<SyntaxNode, ImmutableArray<ISyntaxClassifier>> getNodeClassifiers,
39Func<SyntaxToken, ImmutableArray<ISyntaxClassifier>> getTokenClassifiers,
58ImmutableArray<TextSpan> textSpans,
60Func<SyntaxNode, ImmutableArray<ISyntaxClassifier>> getNodeClassifiers,
61Func<SyntaxToken, ImmutableArray<ISyntaxClassifier>> getTokenClassifiers,
Classification\SyntaxClassification\ISyntaxClassificationService.cs (8)
18ImmutableArray<ISyntaxClassifier> GetDefaultSyntaxClassifiers();
29ImmutableArray<TextSpan> textSpans,
36ImmutableArray<TextSpan> textSpans,
38Func<SyntaxNode, ImmutableArray<ISyntaxClassifier>> getNodeClassifiers,
39Func<SyntaxToken, ImmutableArray<ISyntaxClassifier>> getTokenClassifiers,
46ImmutableArray<TextSpan> textSpans,
47Func<SyntaxNode, ImmutableArray<ISyntaxClassifier>> getNodeClassifiers,
48Func<SyntaxToken, ImmutableArray<ISyntaxClassifier>> getTokenClassifiers,
CodeActions\CodeAction.cs (25)
57private protected static ImmutableArray<string> RequiresNonDocumentChangeTags = [RequiresNonDocumentChange];
146public virtual ImmutableArray<string> Tags => [];
151/// actions, use <see cref="Create(string, ImmutableArray{CodeAction}, bool)"/>.
153public virtual ImmutableArray<CodeAction> NestedActions
160internal virtual ImmutableArray<CodeAction> AdditionalPreviewFlavors => [];
165internal ImmutableArray<CodeAction> NestedCodeActions
175/// cref="Create(string, ImmutableArray{CodeAction}, bool)"/>.
182internal ImmutableArray<string> CustomTags { get; set; } = [];
228public Task<ImmutableArray<CodeActionOperation>> GetOperationsAsync(CancellationToken cancellationToken)
234public Task<ImmutableArray<CodeActionOperation>> GetOperationsAsync(
240private protected virtual async Task<ImmutableArray<CodeActionOperation>> GetOperationsCoreAsync(
243var operations = await this.ComputeOperationsAsync(progress, cancellationToken).ConfigureAwait(false);
256public Task<ImmutableArray<CodeActionOperation>> GetPreviewOperationsAsync(CancellationToken cancellationToken)
259internal async Task<ImmutableArray<CodeActionOperation>> GetPreviewOperationsAsync(
294protected virtual async Task<ImmutableArray<CodeActionOperation>> ComputeOperationsAsync(
420protected Task<ImmutableArray<CodeActionOperation>> PostProcessAsync(IEnumerable<CodeActionOperation> operations, CancellationToken cancellationToken)
424internal static async Task<ImmutableArray<CodeActionOperation>> PostProcessAsync(
566public static CodeAction Create(string title, ImmutableArray<CodeAction> nestedActions, bool isInlinable)
569/// <inheritdoc cref="Create(string, ImmutableArray{CodeAction}, bool)"/>
572public static CodeAction Create(string title, ImmutableArray<CodeAction> nestedActions, bool isInlinable, CodeActionPriority priority = CodeActionPriority.Default)
607ImmutableArray<CodeAction> nestedActions,
620ImmutableArray<CodeAction> nestedActions,
629ImmutableArray<CodeAction> nestedActions,
636public sealed override ImmutableArray<CodeAction> NestedActions { get; }
638private static string? ComputeEquivalenceKey(ImmutableArray<CodeAction> nestedActions)
CodeCleanup\AbstractCodeCleanerService.cs (26)
26public abstract ImmutableArray<ICodeCleanupProvider> GetDefaultProviders();
27protected abstract ImmutableArray<TextSpan> GetSpansToAvoid(SyntaxNode root);
29public async Task<Document> CleanupAsync(Document document, ImmutableArray<TextSpan> spans, CodeCleanupOptions options, ImmutableArray<ICodeCleanupProvider> providers, CancellationToken cancellationToken)
40var codeCleaners = providers.IsDefault ? GetDefaultProviders() : providers;
44var normalizedSpan = spans.ToNormalizedSpans();
73public async Task<SyntaxNode> CleanupAsync(SyntaxNode root, ImmutableArray<TextSpan> spans, SyntaxFormattingOptions options, SolutionServices services, ImmutableArray<ICodeCleanupProvider> providers, CancellationToken cancellationToken)
84var codeCleaners = providers.IsDefault ? GetDefaultProviders() : providers;
86var normalizedSpan = spans.ToNormalizedSpans();
114private static ImmutableArray<TextSpan> GetTextSpansFromAnnotation(
270SyntaxNode root, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
273var nonOverlappingSpans = GetNonOverlappingSpans(root, spans, cancellationToken);
320private static ImmutableArray<TextSpan> GetNonOverlappingSpans(
321SyntaxNode root, ImmutableArray<TextSpan> spans, CancellationToken cancellationToken)
444private static bool CleanupWholeNode(TextSpan nodeSpan, ImmutableArray<TextSpan> spans)
458Func<SyntaxNode, ImmutableArray<TextSpan>> spanGetter,
459ImmutableArray<ICodeCleanupProvider> codeCleaners,
466var spans = ImmutableArray<TextSpan>.Empty;
520private ImmutableArray<TextSpan> GetSpans(
521SyntaxNode root, Func<SyntaxNode, ImmutableArray<TextSpan>> spanGetter)
539Func<SyntaxNode, ImmutableArray<TextSpan>> spanGetter,
541ImmutableArray<ICodeCleanupProvider> codeCleaners,
548var spans = ImmutableArray<TextSpan>.Empty;
CodeCleanup\CodeCleaner.cs (9)
28public static ImmutableArray<ICodeCleanupProvider> GetDefaultProviders(Document document)
50public static async Task<Document> CleanupAsync(Document document, CodeCleanupOptions options, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
60public static async Task<Document> CleanupAsync(Document document, SyntaxAnnotation annotation, CodeCleanupOptions options, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
70public static Task<Document> CleanupAsync(Document document, TextSpan span, CodeCleanupOptions options, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
77public static async Task<Document> CleanupAsync(Document document, ImmutableArray<TextSpan> spans, CodeCleanupOptions options, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
87public static Task<SyntaxNode> CleanupAsync(SyntaxNode root, TextSpan span, SyntaxFormattingOptions options, SolutionServices services, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
94public static Task<SyntaxNode> CleanupAsync(SyntaxNode root, ImmutableArray<TextSpan> spans, SyntaxFormattingOptions options, SolutionServices services, ImmutableArray<ICodeCleanupProvider> providers = default, CancellationToken cancellationToken = default)
CodeFixes\CodeFixContext.cs (10)
21private readonly Action<CodeAction, ImmutableArray<Diagnostic>> _registerCodeFix;
60public ImmutableArray<Diagnostic> Diagnostics { get; }
88ImmutableArray<Diagnostic> diagnostics,
89Action<CodeAction, ImmutableArray<Diagnostic>> registerCodeFix,
119ImmutableArray<Diagnostic> diagnostics,
120Action<CodeAction, ImmutableArray<Diagnostic>> registerCodeFix,
147Action<CodeAction, ImmutableArray<Diagnostic>> registerCodeFix,
171Action<CodeAction, ImmutableArray<Diagnostic>> registerCodeFix,
221public void RegisterCodeFix(CodeAction action, ImmutableArray<Diagnostic> diagnostics)
238private static void VerifyDiagnosticsArgument(ImmutableArray<Diagnostic> diagnostics, TextSpan span)
CodeFixes\FixAllOccurrences\FixAllContextHelper.cs (15)
21public static async Task<ImmutableDictionary<Document, ImmutableArray<Diagnostic>>> GetDocumentDiagnosticsToFixAsync(
26var allDiagnostics = ImmutableArray<Diagnostic>.Empty;
39var documentDiagnostics = await fixAllContext.GetDocumentDiagnosticsAsync(document).ConfigureAwait(false);
40return ImmutableDictionary<Document, ImmutableArray<Diagnostic>>.Empty.SetItem(document, documentDiagnostics);
67var projectsToFix = project.Solution.Projects
76allDiagnostics = await ProducerConsumer<ImmutableArray<Diagnostic>>.RunParallelAsync(
88await foreach (var diagnostics in results)
102return ImmutableDictionary<Document, ImmutableArray<Diagnostic>>.Empty;
108static async Task<ImmutableDictionary<Document, ImmutableArray<Diagnostic>>> GetSpanDiagnosticsAsync(
110IEnumerable<KeyValuePair<Document, ImmutableArray<TextSpan>>> documentsAndSpans)
117var documentDiagnostics = await fixAllContext.GetDocumentSpanDiagnosticsAsync(document, span).ConfigureAwait(false);
126private static async Task<ImmutableDictionary<Document, ImmutableArray<Diagnostic>>> GetDocumentDiagnosticsToFixAsync(
128ImmutableArray<Diagnostic> diagnostics,
131var builder = ImmutableDictionary.CreateBuilder<Document, ImmutableArray<Diagnostic>>();
CodeFixes\FixAllOccurrences\FixAllProvider.cs (7)
21private protected static ImmutableArray<FixAllScope> DefaultSupportedFixAllScopes
58public static FixAllProvider Create(Func<FixAllContext, Document, ImmutableArray<Diagnostic>, Task<Document?>> fixAllAsync)
78Func<FixAllContext, Document, ImmutableArray<Diagnostic>, Task<Document?>> fixAllAsync,
79ImmutableArray<FixAllScope> supportedFixAllScopes)
99Func<FixAllContext, Document, ImmutableArray<Diagnostic>, Task<Document?>> fixAllAsync,
100ImmutableArray<FixAllScope> supportedFixAllScopes) : DocumentBasedFixAllProvider(supportedFixAllScopes)
102protected override Task<Document?> FixAllAsync(FixAllContext context, Document document, ImmutableArray<Diagnostic> diagnostics)
CodeRefactorings\FixAllOccurences\FixAllProvider.cs (7)
24private protected static ImmutableArray<FixAllScope> DefaultSupportedFixAllScopes
58public static FixAllProvider Create(Func<FixAllContext, Document, Optional<ImmutableArray<TextSpan>>, Task<Document?>> fixAllAsync)
78Func<FixAllContext, Document, Optional<ImmutableArray<TextSpan>>, Task<Document?>> fixAllAsync,
79ImmutableArray<FixAllScope> supportedFixAllScopes)
94Func<FixAllContext, Document, Optional<ImmutableArray<TextSpan>>, Task<Document?>> fixAllAsync,
95ImmutableArray<FixAllScope> supportedFixAllScopes) : DocumentBasedFixAllProvider(supportedFixAllScopes)
97protected override Task<Document?> FixAllAsync(FixAllContext context, Document document, Optional<ImmutableArray<TextSpan>> fixAllSpans)
Diagnostics\AnalysisResultPair.cs (15)
16private ImmutableDictionary<SyntaxTree, ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>>? _lazyMergedSyntaxDiagnostics;
17private ImmutableDictionary<SyntaxTree, ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>>? _lazyMergedSemanticDiagnostics;
18private ImmutableDictionary<AdditionalText, ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>>? _lazyMergedAdditionalFileDiagnostics;
19private ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>? _lazyMergedCompilationDiagnostics;
40public ImmutableDictionary<SyntaxTree, ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>> MergedSyntaxDiagnostics
65public ImmutableDictionary<SyntaxTree, ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>> MergedSemanticDiagnostics
90public ImmutableDictionary<AdditionalText, ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>> MergedAdditionalFileDiagnostics
115public ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>> MergedCompilationDiagnostics
173private static ImmutableDictionary<TKey, ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>> MergeDiagnostics<TKey>(
174ImmutableDictionary<TKey, ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>> first,
175ImmutableDictionary<TKey, ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>> second)
193private static ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>> MergeDiagnostics(
194ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>> first,
195ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>> second)
200if (!analyzerToDiagnostics.TryGetValue(analyzer, out var firstDiagnostics))
Diagnostics\CompilationWithAnalyzersPair.cs (8)
49public ImmutableArray<DiagnosticAnalyzer> ProjectAnalyzers => _projectCompilationWithAnalyzers?.Analyzers ?? [];
51public ImmutableArray<DiagnosticAnalyzer> HostAnalyzers => _hostCompilationWithAnalyzers?.Analyzers ?? [];
78public async Task<AnalysisResultPair?> GetAnalysisResultAsync(SyntaxTree tree, TextSpan? filterSpan, ImmutableArray<DiagnosticAnalyzer> projectAnalyzers, ImmutableArray<DiagnosticAnalyzer> hostAnalyzers, CancellationToken cancellationToken)
90public async Task<AnalysisResultPair?> GetAnalysisResultAsync(AdditionalText file, TextSpan? filterSpan, ImmutableArray<DiagnosticAnalyzer> projectAnalyzers, ImmutableArray<DiagnosticAnalyzer> hostAnalyzers, CancellationToken cancellationToken)
102public async Task<AnalysisResultPair?> GetAnalysisResultAsync(SemanticModel model, TextSpan? filterSpan, ImmutableArray<DiagnosticAnalyzer> projectAnalyzers, ImmutableArray<DiagnosticAnalyzer> hostAnalyzers, CancellationToken cancellationToken)
Diagnostics\DiagnosticAnalysisResult.cs (23)
28private readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> _syntaxLocals;
33private readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> _semanticLocals;
38private readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> _nonLocals;
43private readonly ImmutableArray<DiagnosticData> _others;
47ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> syntaxLocals,
48ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> semanticLocals,
49ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> nonLocals,
50ImmutableArray<DiagnosticData> others)
69syntaxLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
70semanticLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
71nonLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
77ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> syntaxLocalMap,
78ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> semanticLocalMap,
79ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> nonLocalMap,
80ImmutableArray<DiagnosticData> others)
104private ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>? GetMap(AnalysisKind kind)
113public ImmutableArray<DiagnosticData> GetAllDiagnostics()
131public ImmutableArray<DiagnosticData> GetDocumentDiagnostics(DocumentId documentId, AnalysisKind kind)
136return map.TryGetValue(documentId, out var diagnostics) ? diagnostics : [];
139public ImmutableArray<DiagnosticData> GetOtherDiagnostics()
150semanticLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
151nonLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
155private static void VerifyDocumentMap(Project project, ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> map)
Diagnostics\DiagnosticAnalysisResultBuilder.cs (13)
29public readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> SyntaxLocals => Convert(_lazySyntaxLocals);
30public readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> SemanticLocals => Convert(_lazySemanticLocals);
31public readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> NonLocals => Convert(_lazyNonLocals);
32public readonly ImmutableArray<DiagnosticData> Others => _lazyOthers == null ? [] : [.. _lazyOthers];
34public void AddExternalSyntaxDiagnostics(DocumentId documentId, ImmutableArray<Diagnostic> diagnostics)
39public void AddExternalSemanticDiagnostics(DocumentId documentId, ImmutableArray<Diagnostic> diagnostics)
51ref Dictionary<DocumentId, List<DiagnosticData>>? lazyLocals, DocumentId documentId, ImmutableArray<Diagnostic> diagnostics)
111public void AddSyntaxDiagnostics(SyntaxTree tree, ImmutableArray<Diagnostic> diagnostics)
117public void AddSemanticDiagnostics(SyntaxTree tree, ImmutableArray<Diagnostic> diagnostics)
120public void AddCompilationDiagnostics(ImmutableArray<Diagnostic> diagnostics)
183ref Dictionary<DocumentId, List<DiagnosticData>>? lazyLocals, SyntaxTree? tree, ImmutableArray<Diagnostic> diagnostics)
189private static ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> Convert(Dictionary<DocumentId, List<DiagnosticData>>? map)
192? ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty
Diagnostics\Extensions.cs (22)
29public static async Task<ImmutableArray<Diagnostic>> ToDiagnosticsAsync(this IEnumerable<DiagnosticData> diagnostics, Project project, CancellationToken cancellationToken)
40public static ValueTask<ImmutableArray<Location>> ConvertLocationsAsync(this IReadOnlyCollection<DiagnosticDataLocation> locations, Project project, CancellationToken cancellationToken)
108ImmutableArray<Diagnostic> additionalPragmaSuppressionDiagnostics,
111ImmutableArray<DiagnosticAnalyzer> projectAnalyzers,
112ImmutableArray<DiagnosticAnalyzer> hostAnalyzers,
151ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>>? diagnosticsByAnalyzerMap;
218var diagnostics = additionalPragmaSuppressionDiagnostics.WhereAsArray(d => d.Location.SourceTree == treeToAnalyze);
242ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<Diagnostic>> diagnosticsByAnalyzer,
248ImmutableArray<string> diagnosticIdsToFilter)
250if (diagnosticsByAnalyzer.TryGetValue(analyzer, out var diagnostics))
258ImmutableArray<Diagnostic> diagnostics,
264ImmutableArray<string> diagnosticIdsToFilter)
305public static ImmutableArray<Diagnostic> Filter(
306this ImmutableArray<Diagnostic> diagnostics,
307ImmutableArray<string> diagnosticIdsToFilter,
320public static async Task<(AnalysisResultPair? analysisResult, ImmutableArray<Diagnostic> additionalDiagnostics)> GetAnalysisResultAsync(
328var additionalDiagnostics = await compilationWithAnalyzers.GetPragmaSuppressionAnalyzerDiagnosticsAsync(
368private static async Task<ImmutableArray<Diagnostic>> GetPragmaSuppressionAnalyzerDiagnosticsAsync(
375var hostAnalyzers = documentAnalysisScope?.HostAnalyzers ?? compilationWithAnalyzers.HostAnalyzers;
510public static async Task<ImmutableArray<Diagnostic>> GetSourceGeneratorDiagnosticsAsync(Project project, CancellationToken cancellationToken)
516var result = await remoteHostClient.TryInvokeAsync<IRemoteDiagnosticAnalyzerService, ImmutableArray<DiagnosticData>>(
558var documentIds = targetTextDocument.Project.Solution.GetDocumentIdsWithFilePath(lineSpan.Path);
Diagnostics\HostDiagnosticAnalyzers.cs (27)
31private readonly ConcurrentDictionary<string, ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>>> _hostDiagnosticAnalyzersPerLanguageMap;
40private readonly Lazy<ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>>> _lazyHostDiagnosticAnalyzersPerReferenceMap;
61_hostDiagnosticAnalyzersPerLanguageMap = new ConcurrentDictionary<string, ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>>>(concurrencyLevel: 2, capacity: 2);
62_lazyHostDiagnosticAnalyzersPerReferenceMap = new Lazy<ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>>>(() => CreateDiagnosticAnalyzersPerReferenceMap(_hostAnalyzerReferencesMap), isThreadSafe: true);
75public ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> GetOrCreateHostDiagnosticAnalyzersPerReference(string language)
78public ImmutableDictionary<string, ImmutableArray<DiagnosticDescriptor>> GetDiagnosticDescriptorsPerReference(DiagnosticAnalyzerInfoCache infoCache)
85public ImmutableDictionary<string, ImmutableArray<DiagnosticDescriptor>> GetDiagnosticDescriptorsPerReference(DiagnosticAnalyzerInfoCache infoCache, Project project)
92private static ImmutableDictionary<string, ImmutableArray<DiagnosticDescriptor>> ConvertReferenceIdentityToName(
93ImmutableDictionary<object, ImmutableArray<DiagnosticDescriptor>> descriptorsPerReference,
96var builder = ImmutableDictionary.CreateBuilder<string, ImmutableArray<DiagnosticDescriptor>>();
108if (builder.TryGetValue(displayName, out var existing))
124public ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> CreateDiagnosticAnalyzersPerReference(Project project)
136public ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> CreateProjectDiagnosticAnalyzersPerReference(ProjectState project)
139public ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> CreateProjectDiagnosticAnalyzersPerReference(IReadOnlyList<AnalyzerReference> projectAnalyzerReferences, string language)
159private static ImmutableDictionary<object, ImmutableArray<DiagnosticDescriptor>> CreateDiagnosticDescriptorsPerReference(
161ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> analyzersMap)
163var builder = ImmutableDictionary.CreateBuilder<object, ImmutableArray<DiagnosticDescriptor>>();
180private ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> CreateHostDiagnosticAnalyzersAndBuildMap(string language)
184var builder = ImmutableDictionary.CreateBuilder<object, ImmutableArray<DiagnosticAnalyzer>>();
187var analyzers = reference.GetAnalyzers(language);
202private void UpdateCompilerAnalyzerMapIfNeeded(string language, ImmutableArray<DiagnosticAnalyzer> analyzers)
219private static ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> CreateDiagnosticAnalyzersPerReferenceMap(
222var builder = ImmutableDictionary.CreateBuilder<object, ImmutableArray<DiagnosticAnalyzer>>();
227var analyzers = language == null ? reference.Value.GetAnalyzersForAllLanguages() : reference.Value.GetAnalyzers(language);
279private static ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> MergeDiagnosticAnalyzerMap(
280ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> map1,
281ImmutableDictionary<object, ImmutableArray<DiagnosticAnalyzer>> map2)
Diagnostics\SerializableDiagnosticAnalysisResultMap.cs (18)
13ImmutableArray<(string analyzerId, SerializableDiagnosticMap diagnosticMap)> diagnostics,
14ImmutableArray<(string analyzerId, AnalyzerTelemetryInfo)> telemetry)
21internal readonly ImmutableArray<(string analyzerId, SerializableDiagnosticMap diagnosticMap)> Diagnostics = diagnostics;
24internal readonly ImmutableArray<(string analyzerId, AnalyzerTelemetryInfo telemetry)> Telemetry = telemetry;
29ImmutableArray<(DocumentId, ImmutableArray<DiagnosticData>)> syntax,
30ImmutableArray<(DocumentId, ImmutableArray<DiagnosticData>)> semantic,
31ImmutableArray<(DocumentId, ImmutableArray<DiagnosticData>)> nonLocal,
32ImmutableArray<DiagnosticData> other)
35public readonly ImmutableArray<(DocumentId, ImmutableArray<DiagnosticData>)> Syntax = syntax;
38public readonly ImmutableArray<(DocumentId, ImmutableArray<DiagnosticData>)> Semantic = semantic;
41public readonly ImmutableArray<(DocumentId, ImmutableArray<DiagnosticData>)> NonLocal = nonLocal;
44public readonly ImmutableArray<DiagnosticData> Other = other;
ExtensionManager\IExtensionManagerExtensions.cs (12)
90public static Func<SyntaxNode, ImmutableArray<TExtension>> CreateNodeExtensionGetter<TExtension>(
91this IExtensionManager extensionManager, IEnumerable<TExtension> extensions, Func<TExtension, ImmutableArray<Type>> nodeTypeGetter)
93var map = new Dictionary<Type, ImmutableArray<TExtension>>();
100var types = extensionManager.PerformFunction(
104map[type] = map.TryGetValue(type, out var existing)
110return n => map.TryGetValue(n.GetType(), out var extensions) ? extensions : [];
114public static Func<SyntaxToken, ImmutableArray<TExtension>> CreateTokenExtensionGetter<TExtension>(
115this IExtensionManager extensionManager, IEnumerable<TExtension> extensions, Func<TExtension, ImmutableArray<int>> tokenKindGetter)
117var map = new Dictionary<int, ImmutableArray<TExtension>>();
124var kinds = extensionManager.PerformFunction(
128map[kind] = map.TryGetValue(kind, out var existing)
134return t => map.TryGetValue(t.RawKind, out var extensions) ? extensions : [];
FindSymbols\FindReferences\DependentProjectsFinder.cs (12)
37ImmutableArray<(Project project, bool hasInternalsAccess)>>> s_solutionToDependentProjectMap = new();
40public static async Task<ImmutableArray<Project>> GetDependentProjectsAsync(
41Solution solution, ImmutableArray<ISymbol> symbols, IImmutableSet<Project> projects, CancellationToken cancellationToken)
49var dependentProjects = await GetDependentProjectsWorkerAsync(solution, symbols, cancellationToken).ConfigureAwait(false);
73private static async Task<ImmutableArray<Project>> GetDependentProjectsWorkerAsync(
74Solution solution, ImmutableArray<ISymbol> symbols, CancellationToken cancellationToken)
85var dependentProjects = await ComputeDependentProjectsAsync(
89var filteredProjects = maxVisibility == SymbolVisibility.Internal
105Solution solution, ImmutableArray<ISymbol> symbols, CancellationToken cancellationToken)
134private static async Task<ImmutableArray<(Project project, bool hasInternalsAccess)>> ComputeDependentProjectsAsync(
143ImmutableArray<(Project project, bool hasInternalsAccess)> dependentProjects;
162static async Task<ImmutableArray<(Project project, bool hasInternalsAccess)>> ComputeDependentProjectsWorkerAsync(
FindSymbols\FindReferences\Finders\AbstractReferenceFinder.cs (18)
27public abstract Task<ImmutableArray<string>> DetermineGlobalAliasesAsync(
30public abstract ValueTask<ImmutableArray<ISymbol>> DetermineCascadedSymbolsAsync(
122params ImmutableArray<string> values)
172var tokens = FindMatchingIdentifierTokens(state, identifier, cancellationToken);
176public static ImmutableArray<SyntaxToken> FindMatchingIdentifierTokens(FindReferencesDocumentState state, string identifier, CancellationToken cancellationToken)
182ImmutableArray<SyntaxToken> tokens,
250var aliasSymbols = GetLocalAliasSymbols(state, initialReferences, cancellationToken);
262var aliasSymbols = GetLocalAliasSymbols(state, initialReferences, cancellationToken);
267private static ImmutableArray<IAliasSymbol> GetLocalAliasSymbols(
286ImmutableArray<IAliasSymbol> localAliasSymbols,
308ImmutableArray<IAliasSymbol> localAliasSymbols,
750internal static ImmutableArray<(string key, string value)> GetAdditionalFindUsagesProperties(
779internal static ImmutableArray<(string key, string value)> GetAdditionalFindUsagesProperties(ISymbol definition)
812protected virtual Task<ImmutableArray<string>> DetermineGlobalAliasesAsync(
818public sealed override Task<ImmutableArray<string>> DetermineGlobalAliasesAsync(
844public sealed override ValueTask<ImmutableArray<ISymbol>> DetermineCascadedSymbolsAsync(
857protected virtual ValueTask<ImmutableArray<ISymbol>> DetermineCascadedSymbolsAsync(
870protected static async Task<ImmutableArray<string>> GetAllMatchingGlobalAliasNamesAsync(
FindSymbols\FindReferences\FindReferencesSearchEngine.cs (13)
26ImmutableArray<IReferenceFinder> finders,
39private readonly ImmutableArray<IReferenceFinder> _finders = finders;
63ImmutableArray<ISymbol> symbols, CancellationToken cancellationToken)
82ImmutableArray<ISymbol> symbols, Action<Reference> onReferenceFound, CancellationToken cancellationToken)
104var allSymbols = symbolSet.GetAllSymbols();
125private async IAsyncEnumerable<(Project project, ImmutableArray<(ISymbol symbol, SymbolGroup group)> allSymbols)> GetProjectsAndSymbolsToSearchSeriallyAsync(
127ImmutableArray<Project> projectsToSearch,
163private async Task<ImmutableArray<(ISymbol symbol, SymbolGroup group)>> ReportGroupsSeriallyAsync(
164ImmutableArray<ISymbol> symbols, Dictionary<ISymbol, SymbolGroup> symbolToGroup, CancellationToken cancellationToken)
205private Task<ImmutableArray<Project>> GetProjectsToSearchAsync(
206ImmutableArray<ISymbol> symbols, CancellationToken cancellationToken)
216Project project, ImmutableArray<(ISymbol symbol, SymbolGroup group)> allSymbols, Action<Reference> onReferenceFound, CancellationToken cancellationToken)
343ImmutableArray<(ISymbol symbol, SymbolGroup group)> allSymbols,
FindSymbols\FindReferences\FindReferencesSearchEngine_FindReferencesInDocuments.cs (5)
75async ValueTask PerformSearchInProjectSeriallyAsync(ImmutableArray<(ISymbol symbol, SymbolGroup group)> symbols, Project project)
100ImmutableArray<(ISymbol symbol, SymbolGroup group)> symbols,
157var converted = await ConvertLocationsAsync(@this, values, symbol, group, cancellationToken).ConfigureAwait(false);
164static async Task<ImmutableArray<(SymbolGroup group, ISymbol symbol, ReferenceLocation location)>> ConvertLocationsAsync(
180var tokens = AbstractReferenceFinder.FindMatchingIdentifierTokens(state, symbol.Name, cancellationToken);
FindSymbols\ReferenceLocation.cs (3)
55internal ImmutableArray<(string key, string value)> AdditionalProperties { get; }
72ImmutableArray<(string key, string value)> additionalProperties,
89internal ReferenceLocation(Document document, IAliasSymbol? alias, Location location, bool isImplicit, SymbolUsageInfo symbolUsageInfo, ImmutableArray<(string key, string value)> additionalProperties, CandidateReason candidateReason)
FindSymbols\SymbolTree\SymbolTreeInfo.cs (23)
40private readonly ImmutableArray<Node> _nodes;
75ImmutableArray<Node> sortedNodes,
87ImmutableArray<Node> sortedNodes,
102var sortedNodes = SortNodes(unsortedNodes);
118public Task<ImmutableArray<ISymbol>> FindAsync(
129public async Task<ImmutableArray<ISymbol>> FindAsync(
137var symbols = await FindCoreAsync(query, lazyAssembly, cancellationToken).ConfigureAwait(false);
142private Task<ImmutableArray<ISymbol>> FindCoreAsync(
167private async Task<ImmutableArray<ISymbol>> FuzzyFindAsync(
182var symbols = await FindAsync(lazyAssembly, similarName, ignoreCase: true, cancellationToken).ConfigureAwait(false);
213private async Task<ImmutableArray<ISymbol>> FindAsync(
245ImmutableArray<Node> nodes, string name)
270private static int BinarySearch(ImmutableArray<Node> nodes, string name)
299private static SpellChecker CreateSpellChecker(ImmutableArray<Node> sortedNodes)
302private static ImmutableArray<Node> SortNodes(ImmutableArray<BuilderNode> unsortedNodes)
350BuilderNode x, BuilderNode y, ImmutableArray<BuilderNode> nodeList)
409var members = rootContainer.GetMembers(node.Name);
422var members = nsOrType.GetMembers(node.Name);
459ImmutableArray<BuilderNode> unsortedNodes,
463var sortedNodes = SortNodes(unsortedNodes);
470ImmutableArray<Node> nodes,
497public ImmutableArray<INamedTypeSymbol> GetDerivedMetadataTypes(
Formatting\Formatter.cs (13)
34internal static ImmutableArray<AbstractFormattingRule> GetDefaultFormattingRules(Document document)
37internal static ImmutableArray<AbstractFormattingRule> GetDefaultFormattingRules(LanguageServices languageServices)
91internal static async Task<Document> FormatAsync(Document document, IEnumerable<TextSpan>? spans, SyntaxFormattingOptions? options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
113internal static async Task<Document> FormatAsync(Document document, SyntaxAnnotation annotation, SyntaxFormattingOptions options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
120internal static async Task<Document> FormatAsync(Document document, SyntaxAnnotation annotation, OptionSet? optionSet, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
157private static SyntaxNode Format(SyntaxNode node, SyntaxAnnotation annotation, Workspace workspace, OptionSet? options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
177internal static SyntaxNode Format(SyntaxNode node, SyntaxAnnotation annotation, SolutionServices services, SyntaxFormattingOptions options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
221private static SyntaxNode Format(SyntaxNode node, IEnumerable<TextSpan>? spans, Workspace workspace, OptionSet? options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
227internal static SyntaxNode Format(SyntaxNode node, IEnumerable<TextSpan>? spans, SolutionServices services, SyntaxFormattingOptions options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
230private static IFormattingResult? GetFormattingResult(SyntaxNode node, IEnumerable<TextSpan>? spans, Workspace workspace, OptionSet? options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
254internal static IFormattingResult GetFormattingResult(SyntaxNode node, IEnumerable<TextSpan>? spans, SolutionServices services, SyntaxFormattingOptions options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
304private static IList<TextChange> GetFormattedTextChanges(SyntaxNode node, IEnumerable<TextSpan>? spans, Workspace workspace, OptionSet? options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken)
312internal static IList<TextChange> GetFormattedTextChanges(SyntaxNode node, IEnumerable<TextSpan>? spans, SolutionServices services, SyntaxFormattingOptions options, ImmutableArray<AbstractFormattingRule> rules, CancellationToken cancellationToken = default)
PatternMatching\PatternMatcher.cs (5)
464candidate, candidateHumps, patternChunk, out var matchedSpans);
481var camelCaseKindIgnoreCase = TryUpperCaseCamelCaseMatch(candidate, candidateHumps, patternChunk, CompareOptions.IgnoreCase, out var matchedSpansIgnoreCase);
484var camelCaseKind = TryUpperCaseCamelCaseMatch(candidate, candidateHumps, patternChunk, CompareOptions.None, out var matchedSpans);
506out ImmutableArray<TextSpan> matchedSpans)
517out ImmutableArray<TextSpan> matchedSpans)
Recommendations\AbstractRecommendationServiceRunner.cs (24)
49private ImmutableArray<ISymbol> GetMemberSymbolsForParameter(IParameterSymbol parameter, int position, bool useBaseReferenceAccessibility, bool unwrapNullable, bool isForDereference)
51var symbols = TryGetMemberSymbolsForLambdaParameter(parameter, position, unwrapNullable, isForDereference);
57private ImmutableArray<ISymbol> TryGetMemberSymbolsForLambdaParameter(
96var parameterTypeSymbols = ImmutableArray<ITypeSymbol>.Empty;
106var candidateSymbols = _context.SemanticModel.GetMemberGroup(expressionOfInvocationExpression, _cancellationToken);
134private ImmutableArray<ITypeSymbol> SubstituteTypeParameters(ImmutableArray<ITypeSymbol> parameterTypeSymbols, SyntaxNode invocationExpression)
141var invocationSymbols = _context.SemanticModel.GetSymbolInfo(invocationExpression).GetAllSymbols();
150var typeParameters = invocationSymbol.GetTypeParameters();
151var typeArguments = invocationSymbol.GetTypeArguments();
184private ImmutableArray<ITypeSymbol> GetTypeSymbols(
185ImmutableArray<ISymbol> candidateSymbols,
208var allTypeArguments = type.GetAllTypeArguments();
217var methods = type.GetMembers(WellKnownMemberNames.DelegateInvokeName);
221var parameters = methods[0].GetParameters();
270protected ImmutableArray<ISymbol> GetSymbolsForNamespaceDeclarationNameContext<TNamespaceDeclarationSyntax>()
287protected ImmutableArray<ISymbol> GetSymbolsForEnumBaseList(INamespaceOrTypeSymbol container)
356protected ImmutableArray<ISymbol> GetMemberSymbols(
387protected ImmutableArray<ISymbol> LookupSymbolsInContainer(
403var containerMembers = SuppressDefaultTupleElements(
436static bool MatchesConstraints(ITypeSymbol originalContainerType, ImmutableArray<ITypeSymbol> constraintTypes)
537protected static ImmutableArray<ISymbol> SuppressDefaultTupleElements(INamespaceOrTypeSymbol container, ImmutableArray<ISymbol> symbols)
Rename\ConflictEngine\ConflictResolver.cs (9)
55ImmutableArray<SymbolKey> nonConflictSymbolKeys,
96ImmutableArray<SymbolKey> nonConflictSymbolKeys,
117ImmutableArray<SymbolKey> nonConflictSymbolKeys,
129private static ImmutableArray<ISymbol> SymbolsForEnclosingInvocationExpressionWorker(SyntaxNode invocationExpression, SemanticModel semanticModel, CancellationToken cancellationToken)
144private static bool LocalVariableConflictPerLanguage(SyntaxToken tokenOrNode, Document document, ImmutableArray<ISymbol> newReferencedSymbols)
187var implicitUsageConflicts = renameRewriterService.ComputePossibleImplicitUsageConflicts(renamedSymbol, semanticModel, originalDeclarationLocation, newDeclarationLocationStartingPosition, cancellationToken);
206var implicitConflicts = await renameRewriterService.ComputeImplicitReferenceConflictsAsync(
353var locations = symbol.Locations;
408var locations = symbol.Locations;
Rename\ConflictEngine\ConflictResolver.Session.cs (18)
39private readonly ImmutableArray<SymbolKey> _nonConflictSymbolKeys;
53ImmutableArray<SymbolKey> nonConflictSymbolKeys,
190var unresolvedLocations = conflictResolution.RelatedLocations
239var definitionLocations = _renameLocationSet.Symbol.Locations;
240var definitionDocuments = definitionLocations
370ImmutableArray<ISymbol> newReferencedSymbols = default;
454var referencedSymbols = _renameLocationSet.ReferencedSymbols;
478ImmutableArray<ISymbol> symbols, ImmutableHashSet<ISymbol>? nonConflictSymbols)
513ImmutableArray<ISymbol> newReferencedSymbols)
652private ImmutableArray<ISymbol> GetSymbolsInNewSolution(Document newDocument, SemanticModel newDocumentSemanticModel, RenameActionAnnotation conflictAnnotation, SyntaxNodeOrToken tokenOrNode)
654var newReferencedSymbols = RenameUtilities.GetSymbolsTouchingPosition(tokenOrNode.Span.Start, newDocumentSemanticModel, newDocument.Project.Solution.Services, _cancellationToken);
660var invocationReferencedSymbols = SymbolsForEnclosingInvocationExpressionWorker((SyntaxNode)tokenOrNode!, newDocumentSemanticModel, _cancellationToken);
699private async Task<(ImmutableHashSet<DocumentId> documentIds, ImmutableArray<string> possibleNameConflicts)> FindDocumentsAndPossibleNameConflictsAsync()
719var possibleNameConflicts = possibleNameConflictsList.ToImmutableArray();
732ImmutableArray<string> possibleNameConflicts)
778ImmutableArray<RenameLocation> renameLocations,
782ImmutableArray<string> possibleNameConflicts)
861private static bool ShouldIncludeLocation(ImmutableArray<RenameLocation> renameLocations, RenameLocation location)
Rename\ConflictResolution.cs (21)
45public readonly ImmutableArray<DocumentId> DocumentIds;
47public readonly ImmutableArray<RelatedLocation> RelatedLocations;
49private readonly ImmutableDictionary<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>> _documentToModifiedSpansMap;
50private readonly ImmutableDictionary<DocumentId, ImmutableArray<ComplexifiedSpan>> _documentToComplexifiedSpansMap;
51private readonly ImmutableDictionary<DocumentId, ImmutableArray<RelatedLocation>> _documentToRelatedLocationsMap;
65_documentToModifiedSpansMap = ImmutableDictionary<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>>.Empty;
66_documentToComplexifiedSpansMap = ImmutableDictionary<DocumentId, ImmutableArray<ComplexifiedSpan>>.Empty;
67_documentToRelatedLocationsMap = ImmutableDictionary<DocumentId, ImmutableArray<RelatedLocation>>.Empty;
75ImmutableArray<DocumentId> documentIds, ImmutableArray<RelatedLocation> relatedLocations,
76ImmutableDictionary<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>> documentToModifiedSpansMap,
77ImmutableDictionary<DocumentId, ImmutableArray<ComplexifiedSpan>> documentToComplexifiedSpansMap,
78ImmutableDictionary<DocumentId, ImmutableArray<RelatedLocation>> documentToRelatedLocationsMap)
98public ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)> GetComplexifiedSpans(DocumentId documentId)
99=> _documentToComplexifiedSpansMap.TryGetValue(documentId, out var complexifiedSpans)
106if (_documentToModifiedSpansMap.TryGetValue(documentId, out var modifiedSpans))
112if (_documentToComplexifiedSpansMap.TryGetValue(documentId, out var complexifiedSpans))
124public ImmutableArray<RelatedLocation> GetRelatedLocationsForDocument(DocumentId documentId)
125=> _documentToRelatedLocationsMap.TryGetValue(documentId, out var result)
131if (_documentToModifiedSpansMap.TryGetValue(documentId, out var modifiedSpans))
138if (_documentToComplexifiedSpansMap.TryGetValue(documentId, out var complexifiedSpans))
Rename\IRemoteRenamerService.cs (23)
30ImmutableArray<SymbolKey> nonConflictSymbolKeys,
44ImmutableArray<SymbolKey> nonConflictSymbolKeys,
145ImmutableArray<SerializableRenameLocation> locations,
146ImmutableArray<SerializableReferenceLocation> implicitLocations,
147ImmutableArray<SerializableSymbolAndProjectId> referencedSymbols)
153public readonly ImmutableArray<SerializableRenameLocation> Locations = locations;
156public readonly ImmutableArray<SerializableReferenceLocation> ImplicitLocations = implicitLocations;
159public readonly ImmutableArray<SerializableSymbolAndProjectId> ReferencedSymbols = referencedSymbols;
161public async ValueTask<ImmutableArray<RenameLocation>> RehydrateLocationsAsync(
208ImmutableArray<DocumentId> documentIds,
209ImmutableArray<RelatedLocation> relatedLocations,
210ImmutableArray<(DocumentId, ImmutableArray<TextChange>)> documentTextChanges,
211ImmutableDictionary<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>> documentToModifiedSpansMap,
212ImmutableDictionary<DocumentId, ImmutableArray<ComplexifiedSpan>> documentToComplexifiedSpansMap,
213ImmutableDictionary<DocumentId, ImmutableArray<RelatedLocation>> documentToRelatedLocationsMap)
222public readonly ImmutableArray<DocumentId> DocumentIds = documentIds;
225public readonly ImmutableArray<RelatedLocation> RelatedLocations = relatedLocations;
228public readonly ImmutableArray<(DocumentId, ImmutableArray<TextChange>)> DocumentTextChanges = documentTextChanges;
231public readonly ImmutableDictionary<DocumentId, ImmutableArray<(TextSpan oldSpan, TextSpan newSpan)>> DocumentToModifiedSpansMap = documentToModifiedSpansMap;
234public readonly ImmutableDictionary<DocumentId, ImmutableArray<ComplexifiedSpan>> DocumentToComplexifiedSpansMap = documentToComplexifiedSpansMap;
237public readonly ImmutableDictionary<DocumentId, ImmutableArray<RelatedLocation>> DocumentToRelatedLocationsMap = documentToRelatedLocationsMap;
Rename\IRenameRewriterLanguageService.cs (6)
52Task<ImmutableArray<Location>> ComputeDeclarationConflictsAsync(
70Task<ImmutableArray<Location>> ComputeImplicitReferenceConflictsAsync(
85ImmutableArray<Location> ComputePossibleImplicitUsageConflicts(
124public abstract Task<ImmutableArray<Location>> ComputeDeclarationConflictsAsync(string replacementText, ISymbol renamedSymbol, ISymbol renameSymbol, IEnumerable<ISymbol> referencedSymbols, Solution baseSolution, Solution newSolution, IDictionary<Location, Location> reverseMappedLocations, CancellationToken cancellationToken);
125public abstract Task<ImmutableArray<Location>> ComputeImplicitReferenceConflictsAsync(ISymbol renameSymbol, ISymbol renamedSymbol, IEnumerable<ReferenceLocation> implicitReferenceLocations, CancellationToken cancellationToken);
126public abstract ImmutableArray<Location> ComputePossibleImplicitUsageConflicts(ISymbol renamedSymbol, SemanticModel semanticModel, Location originalDeclarationLocation, int newDeclarationLocationStartingPosition, CancellationToken cancellationToken);
Rename\Renamer.RenameDocumentActionSet.cs (10)
19/// document metadata will still be updated by calling <see cref="UpdateSolutionAsync(Solution, ImmutableArray{RenameDocumentAction}, CancellationToken)"/>
22/// of the actions by calling <see cref="UpdateSolutionAsync(Solution, ImmutableArray{RenameDocumentAction}, CancellationToken)"/>.
30private readonly ImmutableArray<string> _documentFolders;
34ImmutableArray<RenameDocumentAction> actions,
37ImmutableArray<string> documentFolders,
49/// contents rather than metadata. Document metadata will still not be updated unless <see cref="UpdateSolutionAsync(Solution, ImmutableArray{RenameDocumentAction}, CancellationToken)" />
52public ImmutableArray<RenameDocumentAction> ApplicableActions { get; }
55/// Same as calling <see cref="UpdateSolutionAsync(Solution, ImmutableArray{RenameDocumentAction}, CancellationToken)"/> with
70/// immediately call <see cref="UpdateSolutionAsync(Solution, ImmutableArray{RenameDocumentAction}, CancellationToken)"/> without
73public async Task<Solution> UpdateSolutionAsync(Solution solution, ImmutableArray<RenameDocumentAction> actions, CancellationToken cancellationToken)
Shared\Extensions\ISymbolExtensions.cs (17)
91var attributes = symbol.GetAttributes();
107ISymbol symbol, INamedTypeSymbol? hideModuleNameAttribute, ImmutableArray<AttributeData> attributes = default)
128ImmutableArray<AttributeData> attributes, bool hideAdvancedMembers, IMethodSymbol? constructor)
151ImmutableArray<AttributeData> attributes, ImmutableArray<IMethodSymbol> constructors)
160ImmutableArray<AttributeData> attributes, ImmutableArray<IMethodSymbol> constructors)
169ImmutableArray<AttributeData> attributes, ImmutableArray<IMethodSymbol> constructors)
182ImmutableArray<AttributeData> attributes, ImmutableArray<IMethodSymbol> attributeConstructors, int hiddenFlag)
425var typeParameterRefs = document.Descendants(DocumentationCommentXmlNames.TypeParameterReferenceElementName).ToImmutableArray();
433var typeArgs = symbol.GetAllTypeArguments();
645public static ImmutableArray<T> FilterToVisibleAndBrowsableSymbols<T>(
646this ImmutableArray<T> symbols, bool hideAdvancedMembers, Compilation compilation, Func<T, bool> inclusionFilter) where T : ISymbol
682public static ImmutableArray<T> FilterToVisibleAndBrowsableSymbolsAndNotUnsafeSymbols<T>(
683this ImmutableArray<T> symbols, bool hideAdvancedMembers, Compilation compilation) where T : ISymbol
src\Compilers\Core\Portable\InternalUtilities\InterlockedOperations.cs (14)
154public static ImmutableArray<T> Initialize<T>(ref ImmutableArray<T> target, ImmutableArray<T> initializedValue)
157var oldValue = ImmutableInterlocked.InterlockedCompareExchange(ref target, initializedValue, default(ImmutableArray<T>));
170public static ImmutableArray<T> Initialize<T>(ref ImmutableArray<T> target, Func<ImmutableArray<T>> createArray)
183public static ImmutableArray<T> Initialize<T, TArg>(ref ImmutableArray<T> target, Func<TArg, ImmutableArray<T>> createArray, TArg arg)
193private static ImmutableArray<T> Initialize_Slow<T, TArg>(ref ImmutableArray<T> target, Func<TArg, ImmutableArray<T>> createArray, TArg arg)
src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (28)
67public static ImmutableArray<T> ToImmutableArrayOrEmpty<T>(this IEnumerable<T>? items)
74if (items is ImmutableArray<T> array)
89if (items is ImmutableArray<T> array)
352public static ImmutableArray<T> WhereAsArray<T, TArg>(this IEnumerable<T> values, Func<T, TArg, bool> predicate, TArg arg)
368public static ImmutableArray<TResult> SelectAsArray<TSource, TResult>(this IEnumerable<TSource>? source, Func<TSource, TResult> selector)
372return ImmutableArray<TResult>.Empty;
381public static ImmutableArray<TResult> SelectAsArray<TSource, TResult>(this IEnumerable<TSource>? source, Func<TSource, int, TResult> selector)
384return ImmutableArray<TResult>.Empty;
398public static ImmutableArray<TResult> SelectAsArray<TSource, TResult>(this IReadOnlyCollection<TSource>? source, Func<TSource, TResult> selector)
401return ImmutableArray<TResult>.Empty;
414public static ImmutableArray<TResult> SelectAsArray<TSource, TResult, TArg>(this IReadOnlyCollection<TSource>? source, Func<TSource, TArg, TResult> selector, TArg arg)
417return ImmutableArray<TResult>.Empty;
430public static ImmutableArray<TResult> SelectManyAsArray<TSource, TResult>(this IEnumerable<TSource>? source, Func<TSource, IEnumerable<TResult>> selector)
433return ImmutableArray<TResult>.Empty;
442public static ImmutableArray<TResult> SelectManyAsArray<TItem, TArg, TResult>(this IEnumerable<TItem>? source, Func<TItem, TArg, IEnumerable<TResult>> selector, TArg arg)
445return ImmutableArray<TResult>.Empty;
454public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this IReadOnlyCollection<TItem>? source, Func<TItem, IEnumerable<TResult>> selector)
457return ImmutableArray<TResult>.Empty;
467public static ImmutableArray<TResult> SelectManyAsArray<TItem, TArg, TResult>(this IReadOnlyCollection<TItem>? source, Func<TItem, TArg, IEnumerable<TResult>> selector, TArg arg)
470return ImmutableArray<TResult>.Empty;
480public static ImmutableArray<TResult> SelectManyAsArray<TSource, TResult>(this IEnumerable<TSource>? source, Func<TSource, OneOrMany<TResult>> selector)
483return ImmutableArray<TResult>.Empty;
495public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TResult>(this IEnumerable<TItem> source, Func<TItem, ValueTask<TResult>> selector)
510public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TResult>(this IEnumerable<TItem> source, Func<TItem, CancellationToken, ValueTask<TResult>> selector, CancellationToken cancellationToken)
525public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TArg, TResult>(this IEnumerable<TItem> source, Func<TItem, TArg, CancellationToken, ValueTask<TResult>> selector, TArg arg, CancellationToken cancellationToken)
537public static async ValueTask<ImmutableArray<TResult>> SelectManyAsArrayAsync<TItem, TArg, TResult>(this IEnumerable<TItem> source, Func<TItem, TArg, CancellationToken, ValueTask<IEnumerable<TResult>>> selector, TArg arg, CancellationToken cancellationToken)
801internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
804var dictionary = new Dictionary<K, ImmutableArray<T>>(comparer);
src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (153)
28/// The collection of extension methods for the <see cref="ImmutableArray{T}"/> type
40public static ImmutableArray<T> AsImmutable<T>(this IEnumerable<T> items)
52public static ImmutableArray<T> AsImmutableOrEmpty<T>(this IEnumerable<T>? items)
56return ImmutableArray<T>.Empty;
69public static ImmutableArray<T> AsImmutableOrNull<T>(this IEnumerable<T>? items)
85public static ImmutableArray<T> AsImmutable<T>(this T[] items)
98public static ImmutableArray<T> AsImmutableOrNull<T>(this T[]? items)
114public static ImmutableArray<T> AsImmutableOrEmpty<T>(this T[]? items)
118return ImmutableArray<T>.Empty;
129public static ImmutableArray<byte> ToImmutable(this MemoryStream stream)
142public static ImmutableArray<TResult> SelectAsArray<TItem, TResult>(this ImmutableArray<TItem> items, Func<TItem, TResult> map)
157public static ImmutableArray<TResult> SelectAsArray<TItem, TArg, TResult>(this ImmutableArray<TItem> items, Func<TItem, TArg, TResult> map, TArg arg)
172public static ImmutableArray<TResult> SelectAsArray<TItem, TArg, TResult>(this ImmutableArray<TItem> items, Func<TItem, int, TArg, TResult> map, TArg arg)
177return ImmutableArray<TResult>.Empty;
211public static ImmutableArray<TResult> SelectAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, bool> predicate, Func<TItem, TResult> selector)
215return ImmutableArray<TResult>.Empty;
241public static ImmutableArray<TResult> SelectAsArray<TItem, TArg, TResult>(this ImmutableArray<TItem> array, Func<TItem, TArg, bool> predicate, Func<TItem, TArg, TResult> selector, TArg arg)
245return ImmutableArray<TResult>.Empty;
268public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, IEnumerable<TResult>> selector)
271return ImmutableArray<TResult>.Empty;
288public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, ImmutableArray<TResult>> selector)
291return ImmutableArray<TResult>.Empty;
308public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, OneOrMany<TResult>> selector)
311return ImmutableArray<TResult>.Empty;
331public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, bool> predicate, Func<TItem, IEnumerable<TResult>> selector)
334return ImmutableArray<TResult>.Empty;
355public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, bool> predicate, Func<TItem, ImmutableArray<TResult>> selector)
358return ImmutableArray<TResult>.Empty;
379public static ImmutableArray<TResult> SelectManyAsArray<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, bool> predicate, Func<TItem, OneOrMany<TResult>> selector)
382return ImmutableArray<TResult>.Empty;
404public static ImmutableArray<TResult> SelectManyAsArray<TItem, TArg, TResult>(this ImmutableArray<TItem> array, Func<TItem, TArg, bool> predicate, Func<TItem, TArg, OneOrMany<TResult>> selector, TArg arg)
407return ImmutableArray<TResult>.Empty;
422public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TResult>(this ImmutableArray<TItem> array, Func<TItem, CancellationToken, ValueTask<TResult>> selector, CancellationToken cancellationToken)
425return ImmutableArray<TResult>.Empty;
440public static async ValueTask<ImmutableArray<TResult>> SelectAsArrayAsync<TItem, TArg, TResult>(this ImmutableArray<TItem> array, Func<TItem, TArg, CancellationToken, ValueTask<TResult>> selector, TArg arg, CancellationToken cancellationToken)
443return ImmutableArray<TResult>.Empty;
455public static ValueTask<ImmutableArray<TResult>> SelectManyAsArrayAsync<TItem, TArg, TResult>(this ImmutableArray<TItem> source, Func<TItem, TArg, CancellationToken, ValueTask<ImmutableArray<TResult>>> selector, TArg arg, CancellationToken cancellationToken)
459return new ValueTask<ImmutableArray<TResult>>(ImmutableArray<TResult>.Empty);
469async ValueTask<ImmutableArray<TResult>> CreateTaskAsync()
486public static ImmutableArray<TResult> ZipAsArray<T1, T2, TResult>(this ImmutableArray<T1> self, ImmutableArray<T2> other, Func<T1, T2, TResult> map)
492return ImmutableArray<TResult>.Empty;
517public static ImmutableArray<TResult> ZipAsArray<T1, T2, TArg, TResult>(this ImmutableArray<T1> self, ImmutableArray<T2> other, TArg arg, Func<T1, T2, int, TArg, TResult> map)
522return ImmutableArray<TResult>.Empty;
538public static ImmutableArray<T> WhereAsArray<T>(this ImmutableArray<T> array, Func<T, bool> predicate)
546public static ImmutableArray<T> WhereAsArray<T, TArg>(this ImmutableArray<T> array, Func<T, TArg, bool> predicate, TArg arg)
549private static ImmutableArray<T> WhereAsArrayImpl<T, TArg>(ImmutableArray<T> array, Func<T, bool>? predicateWithoutArg, Func<T, TArg, bool>? predicateWithArg, TArg arg)
614return ImmutableArray<T>.Empty;
618public static bool Any<T, TArg>(this ImmutableArray<T> array, Func<T, TArg, bool> predicate, TArg arg)
634public static bool All<T, TArg>(this ImmutableArray<T> array, Func<T, TArg, bool> predicate, TArg arg)
650public static async Task<bool> AnyAsync<T>(this ImmutableArray<T> array, Func<T, Task<bool>> predicateAsync)
666public static async Task<bool> AnyAsync<T, TArg>(this ImmutableArray<T> array, Func<T, TArg, Task<bool>> predicateAsync, TArg arg)
682public static async ValueTask<T?> FirstOrDefaultAsync<T>(this ImmutableArray<T> array, Func<T, Task<bool>> predicateAsync)
698public static TValue? FirstOrDefault<TValue, TArg>(this ImmutableArray<TValue> array, Func<TValue, TArg, bool> predicate, TArg arg)
711public static TValue Single<TValue, TArg>(this ImmutableArray<TValue> array, Func<TValue, TArg, bool> predicate, TArg arg)
741public static ImmutableArray<TBase> Cast<TDerived, TBase>(this ImmutableArray<TDerived> items)
744return ImmutableArray<TBase>.CastUp(items);
755public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer)
796public static ImmutableArray<T> NullToEmpty<T>(this ImmutableArray<T> array)
798return array.IsDefault ? ImmutableArray<T>.Empty : array;
804public static ImmutableArray<T> NullToEmpty<T>(this ImmutableArray<T>? array)
807null or { IsDefault: true } => ImmutableArray<T>.Empty,
815public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null)
834var result = (builder.Count == array.Length) ? array : builder.ToImmutable();
841internal static ImmutableArray<T> ConditionallyDeOrder<T>(this ImmutableArray<T> array)
858internal static ImmutableArray<TValue> Flatten<TKey, TValue>(
859this Dictionary<TKey, ImmutableArray<TValue>> dictionary,
865return ImmutableArray<TValue>.Empty;
884internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second)
889internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second, ImmutableArray<T> third)
912internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second, ImmutableArray<T> third, ImmutableArray<T> fourth)
940internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second, ImmutableArray<T> third, ImmutableArray<T> fourth, ImmutableArray<T> fifth)
973internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, ImmutableArray<T> second, ImmutableArray<T> third, ImmutableArray<T> fourth, ImmutableArray<T> fifth, ImmutableArray<T> sixth)
1011internal static ImmutableArray<T> Concat<T>(this ImmutableArray<T> first, T second)
1016internal static ImmutableArray<T> AddRange<T>(this ImmutableArray<T> self, in TemporaryArray<T> items)
1049internal static bool HasDuplicates<T>(this ImmutableArray<T> array)
1085internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer)
1111public static int Count<T>(this ImmutableArray<T> items, Func<T, bool> predicate)
1130public static int Sum<T>(this ImmutableArray<T> items, Func<T, int> selector)
1139public static int Sum<T>(this ImmutableArray<T> items, Func<T, int, int> selector)
1176(Dictionary<TKey, object> dictionary, Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> result)
1187static ImmutableArray<TNamespaceOrTypeSymbol> createMembers(object value)
1198return ImmutableArray<TNamespaceOrTypeSymbol>.CastUp(builder.ToDowncastedImmutableAndFree<TNamedTypeSymbol>());
1205: ImmutableArray<TNamespaceOrTypeSymbol>.CastUp(ImmutableArray.Create((TNamedTypeSymbol)symbol));
1210internal static Dictionary<TKey, ImmutableArray<TNamedTypeSymbol>> GetTypesFromMemberMap<TKey, TNamespaceOrTypeSymbol, TNamedTypeSymbol>
1211(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer)
1222var dictionary = new Dictionary<TKey, ImmutableArray<TNamedTypeSymbol>>(capacity, comparer);
1226var namedTypes = getOrCreateNamedTypes(entry.Value);
1233static ImmutableArray<TNamedTypeSymbol> getOrCreateNamedTypes(ImmutableArray<TNamespaceOrTypeSymbol> members)
1240var membersAsNamedTypes = members.As<TNamedTypeSymbol>();
1253return ImmutableArray<TNamedTypeSymbol>.Empty;
1267internal static bool SequenceEqual<TElement, TArg>(this ImmutableArray<TElement> array1, ImmutableArray<TElement> array2, TArg arg, Func<TElement, TElement, TArg, bool> predicate)
1297internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer)
1300internal static bool IsSorted<T>(this ImmutableArray<T> array, Comparison<T> comparison)
1303internal static bool IsSorted<T>(this ImmutableArray<T> array, IComparer<T>? comparer = null)
1319internal static int BinarySearch<TElement, TValue>(this ImmutableArray<TElement> array, TValue value, Func<TElement, TValue, int> comparer)
1378public static bool IsSubsetOf<TElement>(this ImmutableArray<TElement> array, ImmutableArray<TElement> other)
src\Dependencies\PooledObjects\ArrayBuilder.cs (26)
56private readonly ImmutableArray<T>.Builder _builder;
78public ImmutableArray<T> ToImmutable()
86public ImmutableArray<T> ToImmutableAndClear()
88ImmutableArray<T> result;
91result = ImmutableArray<T>.Empty;
374public ImmutableArray<T> ToImmutableOrNull()
387public ImmutableArray<U> ToDowncastedImmutable<U>()
392return ImmutableArray<U>.Empty;
404public ImmutableArray<U> ToDowncastedImmutableAndFree<U>() where U : T
406var result = ToDowncastedImmutable<U>();
414public ImmutableArray<T> ToImmutableAndFree()
418ImmutableArray<T> result;
421result = ImmutableArray<T>.Empty;
546internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
551var dictionary1 = new Dictionary<K, ImmutableArray<T>>(1, comparer);
559return new Dictionary<K, ImmutableArray<T>>(comparer);
578var dictionary = new Dictionary<K, ImmutableArray<T>>(accumulator.Count, comparer);
617public void AddRange(ImmutableArray<T> items)
622public void AddRange(ImmutableArray<T> items, int length)
627public void AddRange(ImmutableArray<T> items, int start, int length)
637public void AddRange<S>(ImmutableArray<S> items) where S : class, T
639AddRange(ImmutableArray<T>.CastUp(items));
731public ImmutableArray<S> SelectDistinct<S>(Func<T, S> selector)
803public ImmutableArray<TResult> SelectAsArray<TResult>(Func<T, TResult> map)
841public ImmutableArray<TResult> SelectAsArray<TArg, TResult>(Func<T, TArg, TResult> map, TArg arg)
879public ImmutableArray<TResult> SelectAsArrayWithIndex<TArg, TResult>(Func<T, int, TArg, TResult> map, TArg arg)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\INamedTypeSymbolExtensions.cs (24)
30public static ImmutableArray<ITypeParameterSymbol> GetAllTypeParameters(this INamedTypeSymbol? symbol)
36public static ImmutableArray<ITypeSymbol> GetAllTypeArguments(this INamedTypeSymbol? symbol)
176public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers(
194static ImmutableArray<ISymbol> GetImplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within)
246public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis(
264public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembersInThis(
267Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter,
283public static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedExplicitMembers(
297private static ImmutableArray<ISymbol> GetExplicitlyImplementableMembers(INamedTypeSymbol type, ISymbol within)
324private static ImmutableArray<(INamedTypeSymbol type, ImmutableArray<ISymbol> members)> GetAllUnimplementedMembers(
329Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter,
353var typesToImplement = GetTypesToImplement(classOrStructType, interfacesOrAbstractClasses, allowReimplementation, cancellationToken);
358private static ImmutableArray<INamedTypeSymbol> GetTypesToImplement(
369private static ImmutableArray<INamedTypeSymbol> GetAbstractClassesToImplement(
375private static ImmutableArray<INamedTypeSymbol> GetInterfacesToImplement(
399private static ImmutableArray<ISymbol> GetUnimplementedMembers(
404Func<INamedTypeSymbol, ISymbol, ImmutableArray<ISymbol>> interfaceMemberGetter,
514private static ImmutableArray<ISymbol> GetMembers(INamedTypeSymbol type, ISymbol within)
527public static ImmutableArray<ISymbol> GetOverridableMembers(
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ObjectWriterExtensions.cs (3)
13public static void WriteArray<T>(this ObjectWriter writer, ImmutableArray<T> values, Action<ObjectWriter, T> write)
23public static ImmutableArray<T> ReadArray<T>(this ObjectReader reader, Func<ObjectReader, T> read)
26public static ImmutableArray<T> ReadArray<T, TArg>(this ObjectReader reader, Func<ObjectReader, TArg, T> read, TArg arg)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\NamingStyles\Serialization\NamingStylePreferencesEditorConfigSerializer.cs (9)
30ImmutableArray<SymbolSpecification> symbolSpecifications,
31ImmutableArray<NamingStyle> namingStyles,
32ImmutableArray<NamingRule> namingRules,
47ImmutableArray<SymbolSpecification> symbolSpecifications,
48ImmutableArray<NamingStyle> namingStyles,
49ImmutableArray<NamingRule> rules,
120ImmutableArray<SymbolSpecification> symbolSpecifications,
121ImmutableArray<NamingStyle> namingStyles)
170private static ImmutableDictionary<NamingRule, string> AssignNamesToNamingStyleRules(ImmutableArray<NamingRule> namingRules, ImmutableDictionary<Guid, string> serializedNameMap)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (10)
114SemanticModel model, TForEachStatementSyntax forEach, out IMethodSymbol getEnumeratorMethod, out ITypeSymbol elementType, out ImmutableArray<ILocalSymbol> localVariables);
122protected abstract ImmutableArray<TArgumentSyntax> GetArguments(TExpressionSyntax expression);
779GetForEachSymbols(this.OriginalSemanticModel, forEachStatement, out var originalGetEnumerator, out var originalElementType, out var originalLocalVariables);
780GetForEachSymbols(this.SpeculativeSemanticModel, newForEachStatement, out var newGetEnumerator, out var newElementType, out var newLocalVariables);
1064var specifiedArguments = GetArguments(originalInvocation);
1067var symbolParameters = originalSymbol.GetParameters();
1068var newSymbolParameters = newSymbol.GetParameters();
1077ImmutableArray<TArgumentSyntax> specifiedArguments,
1078ImmutableArray<IParameterSymbol> signature1Parameters,
1079ImmutableArray<IParameterSymbol> signature2Parameters)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\IDictionaryExtensions.cs (7)
119public static void MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableArray<TValue>> dictionary, TKey key, TValue value)
123if (!dictionary.TryGetValue(key, out var existingArray))
131public static void MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableArray<TValue>> dictionary, TKey key, TValue value, ImmutableArray<TValue> defaultArray)
135if (!dictionary.TryGetValue(key, out var existingArray))
212public static void MultiRemove<TKey, TValue>(this IDictionary<TKey, ImmutableArray<TValue>> dictionary, TKey key, TValue value)
215if (dictionary.TryGetValue(key, out var collection))
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ProducerConsumer.cs (7)
43Func<ImmutableArray<TItem>, TArgs, CancellationToken, Task> consumeItems,
67Func<ImmutableArray<TItem>, TArgs, CancellationToken, Task> consumeItems,
145Func<ImmutableArray<TItem>, TArgs, CancellationToken, Task> consumeItems,
159Func<ImmutableArray<TItem>, TArgs, CancellationToken, Task> consumeItems,
209public static Task<ImmutableArray<TItem>> RunParallelAsync<TSource, TArgs>(
222public static async Task<ImmutableArray<TItem>> RunParallelAsync<TSource, TArgs>(
302/// but returns value as an <see cref="IAsyncEnumerable{TItem}"/>. Versus an <see cref="ImmutableArray{TItem}"/>.
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\CodeGenerationSymbolFactory.cs (72)
34ImmutableArray<AttributeData> attributes, Accessibility accessibility,
36ImmutableArray<IEventSymbol> explicitInterfaceImplementations,
49ImmutableArray<AttributeData> attributes,
54ImmutableArray<IPropertySymbol> explicitInterfaceImplementations,
56ImmutableArray<IParameterSymbol> parameters,
83ImmutableArray<AttributeData> attributes, Accessibility accessibility, DeclarationModifiers modifiers,
84ITypeSymbol type, RefKind refKind, ImmutableArray<IPropertySymbol> explicitInterfaceImplementations, string name,
85ImmutableArray<IParameterSymbol> parameters, IMethodSymbol? getMethod, IMethodSymbol? setMethod,
108ImmutableArray<AttributeData> attributes,
125ImmutableArray<AttributeData> attributes,
129ImmutableArray<IParameterSymbol> parameters,
130ImmutableArray<SyntaxNode> statements = default,
131ImmutableArray<SyntaxNode> baseConstructorArguments = default,
132ImmutableArray<SyntaxNode> thisConstructorArguments = default,
144ImmutableArray<AttributeData> attributes, string typeName,
145ImmutableArray<SyntaxNode> statements = default)
154ImmutableArray<AttributeData> attributes,
159ImmutableArray<IMethodSymbol> explicitInterfaceImplementations,
161ImmutableArray<ITypeParameterSymbol> typeParameters,
162ImmutableArray<IParameterSymbol> parameters,
163ImmutableArray<SyntaxNode> statements = default,
164ImmutableArray<SyntaxNode> handlesExpressions = default,
165ImmutableArray<AttributeData> returnTypeAttributes = default,
178ImmutableArray<AttributeData> attributes, Accessibility accessibility, DeclarationModifiers modifiers,
181ImmutableArray<IMethodSymbol> explicitInterfaceImplementations,
182string? name, ImmutableArray<ITypeParameterSymbol> typeParameters,
183ImmutableArray<IParameterSymbol> parameters,
184ImmutableArray<SyntaxNode> statements = default,
185ImmutableArray<SyntaxNode> handlesExpressions = default,
186ImmutableArray<AttributeData> returnTypeAttributes = default,
197ImmutableArray<AttributeData> attributes,
202ImmutableArray<IParameterSymbol> parameters,
203ImmutableArray<SyntaxNode> statements = default,
204ImmutableArray<AttributeData> returnTypeAttributes = default,
229ImmutableArray<SyntaxNode> statements = default,
230ImmutableArray<AttributeData> toTypeAttributes = default,
250ImmutableArray<AttributeData> attributes,
257ImmutableArray<SyntaxNode> statements = default,
258ImmutableArray<AttributeData> toTypeAttributes = default,
282ImmutableArray<AttributeData> attributes, RefKind refKind, bool isParams, ITypeSymbol type, string name, bool isOptional = false, bool hasDefaultValue = false, object? defaultValue = null)
292ImmutableArray<AttributeData>? attributes = null,
334ImmutableArray<AttributeData> attributes,
336ImmutableArray<ITypeSymbol> constraintTypes,
363ImmutableArray<AttributeData> attributes = default,
365ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default,
366ImmutableArray<SyntaxNode> statements = default)
388ImmutableArray<AttributeData> attributes,
390ImmutableArray<SyntaxNode> statements)
410ImmutableArray<TypedConstant> constructorArguments = default,
411ImmutableArray<KeyValuePair<string, TypedConstant>> namedArguments = default)
420ImmutableArray<AttributeData> attributes,
424ImmutableArray<ITypeParameterSymbol> typeParameters = default,
426ImmutableArray<INamedTypeSymbol> interfaces = default,
428ImmutableArray<ISymbol> members = default,
439ImmutableArray<AttributeData> attributes,
443ImmutableArray<ITypeParameterSymbol> typeParameters = default,
445ImmutableArray<INamedTypeSymbol> interfaces = default,
447ImmutableArray<ISymbol> members = default,
465ImmutableArray<AttributeData> attributes,
471ImmutableArray<ITypeParameterSymbol> typeParameters = default,
472ImmutableArray<IParameterSymbol> parameters = default,
517ImmutableArray<AttributeData> attributes = default,
520ImmutableArray<IMethodSymbol> explicitInterfaceImplementations = default,
522ImmutableArray<IParameterSymbol>? parameters = null,
523ImmutableArray<SyntaxNode> statements = default,
526Optional<ImmutableArray<AttributeData>> returnTypeAttributes = default)
547ImmutableArray<AttributeData> attributes = default,
548ImmutableArray<IParameterSymbol>? parameters = null,
551ImmutableArray<IPropertySymbol> explicitInterfaceImplementations = default,
575ImmutableArray<AttributeData> attributes = default,
578ImmutableArray<IEventSymbol> explicitInterfaceImplementations = default,
596ImmutableArray<AttributeData> attributes = default,
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\Extensions\ITypeInferenceServiceExtensions.cs (9)
15public static ImmutableArray<ITypeSymbol> InferTypes(this ITypeInferenceService service, SemanticModel semanticModel, SyntaxNode expression, CancellationToken cancellationToken)
18public static ImmutableArray<ITypeSymbol> InferTypes(this ITypeInferenceService service, SemanticModel semanticModel, int position, CancellationToken cancellationToken)
21public static ImmutableArray<TypeInferenceInfo> GetTypeInferenceInfo(this ITypeInferenceService service, SemanticModel semanticModel, int position, CancellationToken cancellationToken)
24public static ImmutableArray<TypeInferenceInfo> GetTypeInferenceInfo(this ITypeInferenceService service, SemanticModel semanticModel, SyntaxNode expression, CancellationToken cancellationToken)
33var types = typeInferenceService.InferTypes(semanticModel, expression, cancellationToken);
43var types = typeInferenceService.InferTypes(semanticModel, position, cancellationToken);
47private static INamedTypeSymbol? GetFirstDelegateType(SemanticModel semanticModel, ImmutableArray<ITypeSymbol> types)
73var types = typeInferenceService.InferTypes(semanticModel, expression, name, cancellationToken);
103var types = typeInferenceService.InferTypes(semanticModel, position, name, cancellationToken);
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\TypeInferenceService\ITypeInferenceService.cs (4)
27ImmutableArray<ITypeSymbol> InferTypes(SemanticModel semanticModel, SyntaxNode expression, string? nameOpt, CancellationToken cancellationToken);
28ImmutableArray<ITypeSymbol> InferTypes(SemanticModel semanticModel, int position, string? nameOpt, CancellationToken cancellationToken);
30ImmutableArray<TypeInferenceInfo> GetTypeInferenceInfo(SemanticModel semanticModel, int position, string? nameOpt, CancellationToken cancellationToken);
31ImmutableArray<TypeInferenceInfo> GetTypeInferenceInfo(SemanticModel semanticModel, SyntaxNode expression, string? nameOpt, CancellationToken cancellationToken);
Tags\WellKnownTags.cs (74)
64internal static readonly ImmutableArray<string> Assembly = [WellKnownTags.Assembly];
65internal static readonly ImmutableArray<string> ClassPublic = [WellKnownTags.Class, WellKnownTags.Public];
66internal static readonly ImmutableArray<string> ClassProtected = [WellKnownTags.Class, WellKnownTags.Protected];
67internal static readonly ImmutableArray<string> ClassPrivate = [WellKnownTags.Class, WellKnownTags.Private];
68internal static readonly ImmutableArray<string> ClassInternal = [WellKnownTags.Class, WellKnownTags.Internal];
69internal static readonly ImmutableArray<string> ConstantPublic = [WellKnownTags.Constant, WellKnownTags.Public];
70internal static readonly ImmutableArray<string> ConstantProtected = [WellKnownTags.Constant, WellKnownTags.Protected];
71internal static readonly ImmutableArray<string> ConstantPrivate = [WellKnownTags.Constant, WellKnownTags.Private];
72internal static readonly ImmutableArray<string> ConstantInternal = [WellKnownTags.Constant, WellKnownTags.Internal];
73internal static readonly ImmutableArray<string> DelegatePublic = [WellKnownTags.Delegate, WellKnownTags.Public];
74internal static readonly ImmutableArray<string> DelegateProtected = [WellKnownTags.Delegate, WellKnownTags.Protected];
75internal static readonly ImmutableArray<string> DelegatePrivate = [WellKnownTags.Delegate, WellKnownTags.Private];
76internal static readonly ImmutableArray<string> DelegateInternal = [WellKnownTags.Delegate, WellKnownTags.Internal];
77internal static readonly ImmutableArray<string> EnumPublic = [WellKnownTags.Enum, WellKnownTags.Public];
78internal static readonly ImmutableArray<string> EnumProtected = [WellKnownTags.Enum, WellKnownTags.Protected];
79internal static readonly ImmutableArray<string> EnumPrivate = [WellKnownTags.Enum, WellKnownTags.Private];
80internal static readonly ImmutableArray<string> EnumInternal = [WellKnownTags.Enum, WellKnownTags.Internal];
81internal static readonly ImmutableArray<string> EnumMemberPublic = [WellKnownTags.EnumMember, WellKnownTags.Public];
82internal static readonly ImmutableArray<string> EnumMemberProtected = [WellKnownTags.EnumMember, WellKnownTags.Protected];
83internal static readonly ImmutableArray<string> EnumMemberPrivate = [WellKnownTags.EnumMember, WellKnownTags.Private];
84internal static readonly ImmutableArray<string> EnumMemberInternal = [WellKnownTags.EnumMember, WellKnownTags.Internal];
85internal static readonly ImmutableArray<string> EventPublic = [WellKnownTags.Event, WellKnownTags.Public];
86internal static readonly ImmutableArray<string> EventProtected = [WellKnownTags.Event, WellKnownTags.Protected];
87internal static readonly ImmutableArray<string> EventPrivate = [WellKnownTags.Event, WellKnownTags.Private];
88internal static readonly ImmutableArray<string> EventInternal = [WellKnownTags.Event, WellKnownTags.Internal];
89internal static readonly ImmutableArray<string> ExtensionMethodPublic = [WellKnownTags.ExtensionMethod, WellKnownTags.Public];
90internal static readonly ImmutableArray<string> ExtensionMethodProtected = [WellKnownTags.ExtensionMethod, WellKnownTags.Protected];
91internal static readonly ImmutableArray<string> ExtensionMethodPrivate = [WellKnownTags.ExtensionMethod, WellKnownTags.Private];
92internal static readonly ImmutableArray<string> ExtensionMethodInternal = [WellKnownTags.ExtensionMethod, WellKnownTags.Internal];
93internal static readonly ImmutableArray<string> FieldPublic = [WellKnownTags.Field, WellKnownTags.Public];
94internal static readonly ImmutableArray<string> FieldProtected = [WellKnownTags.Field, WellKnownTags.Protected];
95internal static readonly ImmutableArray<string> FieldPrivate = [WellKnownTags.Field, WellKnownTags.Private];
96internal static readonly ImmutableArray<string> FieldInternal = [WellKnownTags.Field, WellKnownTags.Internal];
97internal static readonly ImmutableArray<string> InterfacePublic = [WellKnownTags.Interface, WellKnownTags.Public];
98internal static readonly ImmutableArray<string> InterfaceProtected = [WellKnownTags.Interface, WellKnownTags.Protected];
99internal static readonly ImmutableArray<string> InterfacePrivate = [WellKnownTags.Interface, WellKnownTags.Private];
100internal static readonly ImmutableArray<string> InterfaceInternal = [WellKnownTags.Interface, WellKnownTags.Internal];
101internal static readonly ImmutableArray<string> Intrinsic = [WellKnownTags.Intrinsic];
102internal static readonly ImmutableArray<string> Keyword = [WellKnownTags.Keyword];
103internal static readonly ImmutableArray<string> Label = [WellKnownTags.Label];
104internal static readonly ImmutableArray<string> Local = [WellKnownTags.Local];
105internal static readonly ImmutableArray<string> Namespace = [WellKnownTags.Namespace];
106internal static readonly ImmutableArray<string> MethodPublic = [WellKnownTags.Method, WellKnownTags.Public];
107internal static readonly ImmutableArray<string> MethodProtected = [WellKnownTags.Method, WellKnownTags.Protected];
108internal static readonly ImmutableArray<string> MethodPrivate = [WellKnownTags.Method, WellKnownTags.Private];
109internal static readonly ImmutableArray<string> MethodInternal = [WellKnownTags.Method, WellKnownTags.Internal];
110internal static readonly ImmutableArray<string> ModulePublic = [WellKnownTags.Module, WellKnownTags.Public];
111internal static readonly ImmutableArray<string> ModuleProtected = [WellKnownTags.Module, WellKnownTags.Protected];
112internal static readonly ImmutableArray<string> ModulePrivate = [WellKnownTags.Module, WellKnownTags.Private];
113internal static readonly ImmutableArray<string> ModuleInternal = [WellKnownTags.Module, WellKnownTags.Internal];
114internal static readonly ImmutableArray<string> Folder = [WellKnownTags.Folder];
115internal static readonly ImmutableArray<string> Operator = [WellKnownTags.Operator];
116internal static readonly ImmutableArray<string> Parameter = [WellKnownTags.Parameter];
117internal static readonly ImmutableArray<string> PropertyPublic = [WellKnownTags.Property, WellKnownTags.Public];
118internal static readonly ImmutableArray<string> PropertyProtected = [WellKnownTags.Property, WellKnownTags.Protected];
119internal static readonly ImmutableArray<string> PropertyPrivate = [WellKnownTags.Property, WellKnownTags.Private];
120internal static readonly ImmutableArray<string> PropertyInternal = [WellKnownTags.Property, WellKnownTags.Internal];
121internal static readonly ImmutableArray<string> RangeVariable = [WellKnownTags.RangeVariable];
122internal static readonly ImmutableArray<string> Reference = [WellKnownTags.Reference];
123internal static readonly ImmutableArray<string> StructurePublic = [WellKnownTags.Structure, WellKnownTags.Public];
124internal static readonly ImmutableArray<string> StructureProtected = [WellKnownTags.Structure, WellKnownTags.Protected];
125internal static readonly ImmutableArray<string> StructurePrivate = [WellKnownTags.Structure, WellKnownTags.Private];
126internal static readonly ImmutableArray<string> StructureInternal = [WellKnownTags.Structure, WellKnownTags.Internal];
127internal static readonly ImmutableArray<string> TypeParameter = [WellKnownTags.TypeParameter];
128internal static readonly ImmutableArray<string> Snippet = [WellKnownTags.Snippet];
130internal static readonly ImmutableArray<string> Error = [WellKnownTags.Error];
131internal static readonly ImmutableArray<string> Warning = [WellKnownTags.Warning];
132internal static readonly ImmutableArray<string> StatusInformation = [WellKnownTags.StatusInformation];
134internal static readonly ImmutableArray<string> AddReference = [WellKnownTags.AddReference];
135internal static readonly ImmutableArray<string> TargetTypeMatch = [WellKnownTags.TargetTypeMatch];
137internal static readonly ImmutableArray<string> CSharpFile = [WellKnownTags.File, LanguageNames.CSharp];
138internal static readonly ImmutableArray<string> VisualBasicFile = [WellKnownTags.File, LanguageNames.VisualBasic];
140internal static readonly ImmutableArray<string> CSharpProject = [WellKnownTags.Project, LanguageNames.CSharp];
141internal static readonly ImmutableArray<string> VisualBasicProject = [WellKnownTags.Project, LanguageNames.VisualBasic];
Workspace\IsolatedAnalyzerFileReference.cs (12)
62public override ImmutableArray<DiagnosticAnalyzer> GetAnalyzers(string language)
65public override ImmutableArray<DiagnosticAnalyzer> GetAnalyzersForAllLanguages()
69public override ImmutableArray<ISourceGenerator> GetGenerators()
72public override ImmutableArray<ISourceGenerator> GetGenerators(string language)
75public override ImmutableArray<ISourceGenerator> GetGeneratorsForAllLanguages()
78private ImmutableArray<DiagnosticAnalyzer> PinAnalyzers<TArg>(Func<AnalyzerReference, TArg, ImmutableArray<DiagnosticAnalyzer>> getItems, TArg arg)
81private ImmutableArray<ISourceGenerator> PinGenerators<TArg>(Func<AnalyzerReference, TArg, ImmutableArray<ISourceGenerator>> getItems, TArg arg)
84private ImmutableArray<TItem> PinItems<TItem, TArg>(
86Func<AnalyzerReference, TArg, ImmutableArray<TItem>> getItems,
92var items = getItems(this.UnderlyingAnalyzerFileReference, arg);
Workspace\ProjectSystem\ProjectSystemProject.BatchingDocumentCollection.cs (16)
54private readonly ImmutableArray<DocumentInfo>.Builder _documentsAddedInBatch = ImmutableArray.CreateBuilder<DocumentInfo>();
87public DocumentId AddFile(string fullPath, SourceCodeKind sourceCodeKind, ImmutableArray<string> folders)
135ImmutableArray<string> folders,
193public void AddDynamicFile_NoLock(IDynamicFileInfoProvider fileInfoProvider, DynamicFileInfo fileInfo, ImmutableArray<string> folders)
494public void ReorderFiles(ImmutableArray<string> filePaths)
538internal ImmutableArray<(DocumentId documentId, SourceTextContainer textContainer)> UpdateSolutionForBatch(
540ImmutableArray<string>.Builder documentFileNamesAdded,
541Func<Solution, ImmutableArray<DocumentInfo>, Solution> addDocuments,
543Func<Solution, ImmutableArray<DocumentId>, Solution> removeDocuments,
553static ImmutableArray<(DocumentId documentId, SourceTextContainer textContainer)> UpdateSolutionForBatch(
555ImmutableArray<string>.Builder documentFileNamesAdded,
556Func<Solution, ImmutableArray<DocumentInfo>, Solution> addDocuments,
558Func<Solution, ImmutableArray<DocumentId>, Solution> removeDocuments,
561ImmutableArray<DocumentInfo> documentsAddedInBatch,
562ImmutableArray<DocumentId> documentsRemovedInBatch,
610private DocumentInfo CreateDocumentInfoFromFileInfo(DynamicFileInfo fileInfo, ImmutableArray<string> folders)
Workspace\ProjectSystem\ProjectSystemProject.cs (23)
34private static readonly ImmutableArray<MetadataReferenceProperties> s_defaultMetadataReferenceProperties = [default(MetadataReferenceProperties)];
112private readonly Dictionary<string, ImmutableArray<MetadataReferenceProperties>> _allMetadataReferences = [];
135/// <see cref="AddDynamicSourceFile(string, ImmutableArray{string})"/>. The value of the map is a generated file that
211var watchedDirectories = GetWatchedDirectories(language, filePath);
215static ImmutableArray<WatchedDirectory> GetWatchedDirectories(string? language, string? filePath)
590ImmutableArray<string> documentFileNamesAdded = [];
591ImmutableArray<(DocumentId documentId, SourceTextContainer textContainer)> documentsToOpen = [];
592ImmutableArray<(DocumentId documentId, SourceTextContainer textContainer)> additionalDocumentsToOpen = [];
593ImmutableArray<(DocumentId documentId, SourceTextContainer textContainer)> analyzerConfigDocumentsToOpen = [];
842var isolatedReferences = IsolatedAnalyzerReferenceSet.CreateIsolatedAnalyzerReferencesAsync(
844ImmutableArray<AnalyzerReference>.CastUp(initialReferenceList.ToImmutableAndClear()),
858public void AddSourceFile(string fullPath, SourceCodeKind sourceCodeKind = SourceCodeKind.Regular, ImmutableArray<string> folders = default)
874ImmutableArray<string> folders = default,
895public void AddAdditionalFile(string fullPath, SourceCodeKind sourceCodeKind = SourceCodeKind.Regular, ImmutableArray<string> folders = default)
924public void AddDynamicSourceFile(string dynamicFilePath, ImmutableArray<string> folders)
1206private static readonly ImmutableArray<string> s_razorSourceGeneratorAssemblyNames =
1212private static readonly ImmutableArray<string> s_razorSourceGeneratorAssemblyRootedFileNames = s_razorSourceGeneratorAssemblyNames.SelectAsArray(
1219var vsixRazorAnalyzers = _hostInfo.HostDiagnosticAnalyzerProvider.GetRazorAssembliesInExtensions().SelectAsArray(
1289return _allMetadataReferences.TryGetValue(fullPath, out var propertiesList) && propertiesList.Contains(properties);
1296public ImmutableArray<MetadataReferenceProperties> GetPropertiesForMetadataReference(string fullPath)
1300return _allMetadataReferences.TryGetValue(fullPath, out var list) ? list : [];
1467public void ReorderSourceFiles(ImmutableArray<string> filePaths)
1484private static void ClearAndZeroCapacity<T>(ImmutableArray<T>.Builder list)
Workspace\ProjectSystem\ProjectSystemProjectFactory.ProjectUpdateState.cs (14)
53ImmutableDictionary<string, ImmutableArray<ProjectId>> ProjectsByOutputPath,
55ImmutableArray<PortableExecutableReference> RemovedMetadataReferences,
56ImmutableArray<PortableExecutableReference> AddedMetadataReferences,
57ImmutableArray<string> RemovedAnalyzerReferences,
58ImmutableArray<string> AddedAnalyzerReferences)
61ImmutableDictionary<string, ImmutableArray<ProjectId>>.Empty.WithComparers(StringComparer.OrdinalIgnoreCase),
79static ImmutableDictionary<string, ImmutableArray<ProjectId>> AddProject(string path, ProjectId projectId, ImmutableDictionary<string, ImmutableArray<ProjectId>> map)
81if (!map.TryGetValue(path, out var projects))
99static ImmutableDictionary<string, ImmutableArray<ProjectId>> RemoveProject(string path, ProjectId projectId, ImmutableDictionary<string, ImmutableArray<ProjectId>> map)
101if (map.TryGetValue(path, out var projects))
155public record struct ProjectReferenceInformation(ImmutableArray<string> OutputPaths, ImmutableArray<(string path, ProjectReference ProjectReference)> ConvertedProjectReferences)
Workspace\Solution\ProjectState.cs (24)
54private AsyncLazy<Dictionary<ImmutableArray<byte>, DocumentId>>? _lazyContentHashToDocumentId;
61private ImmutableArray<AdditionalText> _lazyAdditionalFiles;
137private async Task<Dictionary<ImmutableArray<byte>, DocumentId>> ComputeContentHashToDocumentIdAsync(CancellationToken cancellationToken)
139var result = new Dictionary<ImmutableArray<byte>, DocumentId>(ImmutableArrayComparer<byte>.Instance);
143var contentHash = text.GetContentHash();
170private AsyncLazy<Dictionary<ImmutableArray<byte>, DocumentId>> LazyContentHashToDocumentId
194public async ValueTask<DocumentId?> GetDocumentIdAsync(ImmutableArray<byte> contentHash, CancellationToken cancellationToken)
250ImmutableArray<TextDocumentState> newDocuments,
269VersionStamp oldVersion, ImmutableArray<TextDocumentState> newDocuments, CancellationToken cancellationToken)
324private ImmutableArray<AdditionalText> AdditionalFiles
884public ProjectState AddDocuments(ImmutableArray<DocumentState> documents)
896public ProjectState AddAdditionalDocuments(ImmutableArray<AdditionalDocumentState> documents)
908public ProjectState AddAnalyzerConfigDocuments(ImmutableArray<AnalyzerConfigDocumentState> documents)
939public ProjectState RemoveDocuments(ImmutableArray<DocumentId> documentIds)
952public ProjectState RemoveAdditionalDocuments(ImmutableArray<DocumentId> documentIds)
962public ProjectState RemoveAnalyzerConfigDocuments(ImmutableArray<DocumentId> documentIds)
988public ProjectState UpdateDocuments(ImmutableArray<DocumentState> oldDocuments, ImmutableArray<DocumentState> newDocuments)
1014public ProjectState UpdateAdditionalDocuments(ImmutableArray<AdditionalDocumentState> oldDocuments, ImmutableArray<AdditionalDocumentState> newDocuments)
1039public ProjectState UpdateAnalyzerConfigDocuments(ImmutableArray<AnalyzerConfigDocumentState> oldDocuments, ImmutableArray<AnalyzerConfigDocumentState> newDocuments)
1061ImmutableArray<TextDocumentState> oldDocuments,
1062ImmutableArray<TextDocumentState> newDocuments,
Workspace\Solution\SolutionCompilationState.cs (43)
243ImmutableArray<ProjectId> changedProjectIds,
252static bool CanReuse(ProjectId id, (ImmutableArray<ProjectId> changedProjectIds, ProjectDependencyGraph dependencyGraph) arg)
787internal SolutionCompilationState WithDocumentTexts(ImmutableArray<(DocumentId documentId, SourceText text)> texts, PreservationMode mode)
798(ImmutableArray<(DocumentId, SourceText)>,
799ImmutableArray<(SourceGeneratedDocumentIdentity, DateTime, SourceText?, SyntaxNode?)>) GetOrdinaryAndSourceGeneratedDocuments()
830ImmutableArray<(DocumentId documentId, TDocumentData documentData)> documentsToUpdate,
831ImmutableArray<(SourceGeneratedDocumentIdentity documentIdentity, DateTime generationDateTime, SourceText? sourceText, SyntaxNode? syntaxNode)> sourceGeneratedDocuments,
868IEnumerable<(ProjectId projectId, ImmutableArray<TDocumentState> updatedDocumentState)> updatedDocumentStatesPerProject,
869Func<ProjectState, ImmutableArray<TDocumentState>, TranslationAction> getTranslationAction)
903private static TranslationAction GetUpdateDocumentsTranslationAction<TDocumentState>(ProjectState oldProjectState, ImmutableArray<TDocumentState> newDocumentStates)
908ImmutableArray<DocumentState> ordinaryNewDocumentStates => GetUpdateOrdinaryDocumentsTranslationAction(oldProjectState, ordinaryNewDocumentStates),
909ImmutableArray<AdditionalDocumentState> additionalNewDocumentStates => GetUpdateAdditionalDocumentsTranslationAction(oldProjectState, additionalNewDocumentStates),
910ImmutableArray<AnalyzerConfigDocumentState> analyzerConfigNewDocumentStates => GetUpdateAnalyzerConfigDocumentsTranslationAction(oldProjectState, analyzerConfigNewDocumentStates),
914TranslationAction GetUpdateOrdinaryDocumentsTranslationAction(ProjectState oldProjectState, ImmutableArray<DocumentState> newDocumentStates)
916var oldDocumentStates = newDocumentStates.SelectAsArray(static (s, oldProjectState) => oldProjectState.DocumentStates.GetRequiredState(s.Id), oldProjectState);
921TranslationAction GetUpdateAdditionalDocumentsTranslationAction(ProjectState oldProjectState, ImmutableArray<AdditionalDocumentState> newDocumentStates)
923var oldDocumentStates = newDocumentStates.SelectAsArray(static (s, oldProjectState) => oldProjectState.AdditionalDocumentStates.GetRequiredState(s.Id), oldProjectState);
928TranslationAction GetUpdateAnalyzerConfigDocumentsTranslationAction(ProjectState oldProjectState, ImmutableArray<AnalyzerConfigDocumentState> newDocumentStates)
930var oldDocumentStates = newDocumentStates.SelectAsArray(static (s, oldProjectState) => oldProjectState.AnalyzerConfigDocumentStates.GetRequiredState(s.Id), oldProjectState);
986/// <inheritdoc cref="Solution.WithDocumentSyntaxRoots(ImmutableArray{ValueTuple{DocumentId, SyntaxNode}}, PreservationMode)"/>
990public SolutionCompilationState WithDocumentSyntaxRoots(ImmutableArray<(DocumentId documentId, SyntaxNode root)> syntaxRoots, PreservationMode mode)
1003(ImmutableArray<(DocumentId, SyntaxNode)>,
1004ImmutableArray<(SourceGeneratedDocumentIdentity, DateTime, SourceText?, SyntaxNode?)>) GetOrdinaryAndSourceGeneratedDocuments()
1028ImmutableArray<(DocumentId documentId, DocumentState documentState)> documentIdsAndStates, bool forceEvenIfTreesWouldDiffer)
1242public ValueTask<ImmutableArray<Diagnostic>> GetSourceGeneratorDiagnosticsAsync(
1349var projectIdsToUnfreeze = FrozenSourceGeneratedDocumentStates.States.Values
1386ImmutableArray<(SourceGeneratedDocumentIdentity documentIdentity, DateTime generationDateTime, SourceText? sourceText, SyntaxNode? syntaxNode)> documents)
1566private (ImmutableArray<ProjectState> sortedProjectStates, ImmutableSegmentedDictionary<ProjectId, ICompilationTracker>) ComputeFrozenSnapshotMaps(CancellationToken cancellationToken)
1616var updatedIdToTrackerMap = updatedIdToTrackerMapBuilder.ToImmutable();
1693var allDocumentIds = @this.SolutionState.GetRelatedDocumentIds(documentId, includeDifferentLanguages);
1759ImmutableArray<DocumentInfo> documentInfos)
1781public SolutionCompilationState RemoveDocumentsFromMultipleProjects<T>(ImmutableArray<DocumentId> documentIds)
1803private SolutionCompilationState RemoveDocumentsFromSingleProject<T>(ProjectId projectId, ImmutableArray<DocumentId> documentIds)
1816var removedDocumentStatesForProject = removedDocumentStates.ToImmutable();
1832private static TranslationAction GetRemoveDocumentsTranslationAction<TDocumentState>(ProjectState oldProject, ImmutableArray<DocumentId> documentIds, ImmutableArray<TDocumentState> states)
1835ImmutableArray<DocumentState> documentStates => new TranslationAction.RemoveDocumentsAction(oldProject, oldProject.RemoveDocuments(documentIds), documentStates),
1836ImmutableArray<AdditionalDocumentState> additionalDocumentStates => new TranslationAction.RemoveAdditionalDocumentsAction(oldProject, oldProject.RemoveAdditionalDocuments(documentIds), additionalDocumentStates),
1837ImmutableArray<AnalyzerConfigDocumentState> _ => new TranslationAction.TouchAnalyzerConfigDocumentsAction(oldProject, oldProject.RemoveAnalyzerConfigDocuments(documentIds)),
1841private static TranslationAction GetAddDocumentsTranslationAction<TDocumentState>(ProjectState oldProject, ImmutableArray<TDocumentState> states)
1844ImmutableArray<DocumentState> documentStates => new TranslationAction.AddDocumentsAction(oldProject, oldProject.AddDocuments(documentStates), documentStates),
1845ImmutableArray<AdditionalDocumentState> additionalDocumentStates => new TranslationAction.AddAdditionalDocumentsAction(oldProject, oldProject.AddAdditionalDocuments(additionalDocumentStates), additionalDocumentStates),
1846ImmutableArray<AnalyzerConfigDocumentState> analyzerConfigDocumentStates => new TranslationAction.TouchAnalyzerConfigDocumentsAction(oldProject, oldProject.AddAnalyzerConfigDocuments(analyzerConfigDocumentStates)),
Workspace\Solution\SolutionState.cs (19)
63private readonly ConcurrentDictionary<string, ImmutableArray<DocumentId>> _lazyFilePathToRelatedDocumentIds = new ConcurrentDictionary<string, ImmutableArray<DocumentId>>(FilePathComparer);
75ImmutableArray<ProjectState> projectStates,
135public ImmutableArray<ProjectState> SortedProjectStates { get; }
182ImmutableArray<ProjectState>? projectStates = null,
327private static ProjectState? GetProjectState(ImmutableArray<ProjectState> sortedProjectStates, ProjectId projectId)
339private static int GetProjectStateIndex(ImmutableArray<ProjectState> sortedProjectStates, ProjectId projectId)
426var newProjectStates = newSortedProjectStatesBuilder.ToImmutableAndClear();
1187var newProjectStates = SortedProjectStates.SetItem(projectStateIndex, newProjectState);
1199public ImmutableArray<DocumentId> GetDocumentIdsWithFilePath(string? filePath)
1206static ImmutableArray<DocumentId> ComputeDocumentIdsWithFilePath(string filePath, SolutionState @this)
1218ImmutableArray<ProjectState> sortedNewProjectStates)
1238var oldReferences = AnalyzerReferences.ToImmutableArray();
1239var newReferences = oldReferences.AddRange(analyzerReferences);
1245var oldReferences = AnalyzerReferences.ToImmutableArray();
1246var newReferences = oldReferences.Remove(analyzerReference);
1283if (fileMap != null && fileMap.TryGetValue(filePath, out var relatedDocumentIds))
1318public ImmutableArray<DocumentId> GetRelatedDocumentIds(DocumentId documentId, bool includeDifferentLanguages)
1341var documentIds = GetDocumentIdsWithFilePath(filePath);
CodeLens\RemoteCodeLensReferencesService.cs (8)
66public async Task<ImmutableArray<ReferenceLocationDescriptor>?> FindReferenceLocationsAsync(Solution solution, DocumentId documentId, SyntaxNode? syntaxNode,
87public async Task<ImmutableArray<ReferenceMethodDescriptor>?> FindReferenceMethodsAsync(Solution solution, DocumentId documentId, SyntaxNode? syntaxNode,
100var result = await client.TryInvokeAsync<IRemoteCodeLensReferencesService, ImmutableArray<ReferenceMethodDescriptor>?>(
137private async Task<ImmutableArray<ReferenceLocationDescriptor>> FixUpDescriptorsAsync(
138Solution solution, ImmutableArray<ReferenceLocationDescriptor> descriptors, CancellationToken cancellationToken)
252private static async Task<ImmutableArray<ReferenceLocationDescriptor>?> FindReferenceLocationsWorkerAsync(Solution solution, DocumentId documentId, SyntaxNode syntaxNode,
257return ImmutableArray<ReferenceLocationDescriptor>.Empty;
263var result = await client.TryInvokeAsync<IRemoteCodeLensReferencesService, ImmutableArray<ReferenceLocationDescriptor>?>(
Library\ObjectBrowser\AbstractListItemFactory.cs (30)
167private static ImmutableArray<ObjectListItem> CreateListItemsFromSymbols<TSymbol>(
168ImmutableArray<TSymbol> symbols,
186ImmutableArray<ObjectListItem>.Builder builder)
205private ImmutableArray<ObjectListItem> GetBaseTypeListItems(INamedTypeSymbol namedTypeSymbol, Compilation compilation, ProjectId projectId)
229public ImmutableArray<ObjectListItem> GetBaseTypeListItems(ObjectListItem parentListItem, Compilation compilation)
245public ImmutableArray<ObjectListItem> GetFolderListItems(ObjectListItem parentListItem, Compilation compilation)
290private ImmutableArray<ObjectListItem> GetMemberListItems(
298var immediateMembers = GetMemberSymbols(namedTypeSymbol, compilation);
308var inheritedMembers = GetInheritedMemberSymbols(namedTypeSymbol, compilation);
316private static ImmutableArray<ISymbol> GetMemberSymbols(INamedTypeSymbol namedTypeSymbol, Compilation compilation)
318var members = namedTypeSymbol.GetMembers();
332private static ImmutableArray<ISymbol> GetInheritedMemberSymbols(INamedTypeSymbol namedTypeSymbol, Compilation compilation)
389public ImmutableArray<ObjectListItem> GetMemberListItems(ObjectListItem parentListItem, Compilation compilation)
405public void CollectNamespaceListItems(IAssemblySymbol assemblySymbol, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
438public ImmutableArray<ObjectListItem> GetNamespaceListItems(ObjectListItem parentListItem, Compilation compilation)
548private static ImmutableArray<INamedTypeSymbol> GetAccessibleTypeMembers(INamespaceOrTypeSymbol namespaceOrTypeSymbol, IAssemblySymbol assemblySymbol)
550var typeMembers = namespaceOrTypeSymbol.GetTypeMembers();
584public ImmutableArray<ObjectListItem> GetProjectListItems(Solution solution, string languageName, uint listFlags)
638public ImmutableArray<ObjectListItem> GetReferenceListItems(ObjectListItem parentListItem, Compilation compilation)
663private static ImmutableArray<INamedTypeSymbol> GetAccessibleTypes(INamespaceSymbol namespaceSymbol, Compilation compilation)
665var typeMembers = GetAccessibleTypeMembers(namespaceSymbol, compilation.Assembly);
687private ImmutableArray<ObjectListItem> GetTypeListItems(
694var types = GetAccessibleTypes(namespaceSymbol, compilation);
696var listItems = fullyQualified
718public ImmutableArray<ObjectListItem> GetTypeListItems(ObjectListItem parentListItem, Compilation compilation)
743public void CollectTypeListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
753var typeListItems = GetTypeListItems(namespaceSymbol, compilation, projectId, searchString, fullyQualified: true);
775public void CollectMemberListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
785var types = GetAccessibleTypes(namespaceSymbol, compilation);
789var memberListItems = GetMemberListItems(type, compilation, projectId, fullyQualified: true);
Library\ObjectBrowser\AbstractObjectBrowserLibraryManager_ListItems.cs (10)
14internal void CollectMemberListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
17internal void CollectNamespaceListItems(IAssemblySymbol assemblySymbol, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
20internal void CollectTypeListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
29internal ImmutableArray<ObjectListItem> GetBaseTypeListItems(ObjectListItem parentListItem, Compilation compilation)
32internal ImmutableArray<ObjectListItem> GetFolderListItems(ObjectListItem parentListItem, Compilation compilation)
35internal ImmutableArray<ObjectListItem> GetMemberListItems(ObjectListItem parentListItem, Compilation compilation)
38internal ImmutableArray<ObjectListItem> GetNamespaceListItems(ObjectListItem parentListItem, Compilation compilation)
41internal ImmutableArray<ObjectListItem> GetProjectListItems(Solution solution, string languageName, uint listFlags)
44internal ImmutableArray<ObjectListItem> GetReferenceListItems(ObjectListItem parentListItem, Compilation compilation)
47internal ImmutableArray<ObjectListItem> GetTypeListItems(ObjectListItem parentListItem, Compilation compilation)
ProjectSystem\FileChangeWatcher.cs (9)
88public IFileChangeContext CreateContext(ImmutableArray<WatchedDirectory> watchedDirectories)
106private readonly ImmutableArray<string> _filters;
144private WatcherOperation(Kind kind, string directory, ImmutableArray<string> filters, IVsFreeThreadedFileChangeEvents2 sink, List<uint> cookies)
212public static WatcherOperation WatchDirectory(string directory, ImmutableArray<string> filters, IVsFreeThreadedFileChangeEvents2 sink, List<uint> cookies)
218public static WatcherOperation WatchFiles(ImmutableArray<string> files, _VSFILECHANGEFLAGS fileChangeFlags, IVsFreeThreadedFileChangeEvents2 sink, ImmutableArray<Context.RegularWatchedFile> tokens)
224public static WatcherOperation UnwatchFiles(ImmutableArray<Context.RegularWatchedFile> tokens)
342private readonly ImmutableArray<WatchedDirectory> _watchedDirectories;
360public Context(FileChangeWatcher fileChangeWatcher, ImmutableArray<WatchedDirectory> watchedDirectories)
TableDataSource\Suppression\VisualStudioSuppressionFixService.cs (18)
229? ImmutableDictionary<Project, ImmutableArray<Diagnostic>>.Empty
337var operations = ImmutableArray.Create<CodeActionOperation>(new ApplyChangesOperation(newSolution));
404private static ImmutableDictionary<Document, ImmutableArray<Diagnostic>> GetDocumentDiagnosticsMappedToNewSolution(ImmutableDictionary<Document, ImmutableArray<Diagnostic>> documentDiagnosticsToFixMap, Solution newSolution, string language)
406ImmutableDictionary<Document, ImmutableArray<Diagnostic>>.Builder? builder = null;
415builder ??= ImmutableDictionary.CreateBuilder<Document, ImmutableArray<Diagnostic>>();
420return builder != null ? builder.ToImmutable() : ImmutableDictionary<Document, ImmutableArray<Diagnostic>>.Empty;
423private static ImmutableDictionary<Project, ImmutableArray<Diagnostic>> GetProjectDiagnosticsMappedToNewSolution(ImmutableDictionary<Project, ImmutableArray<Diagnostic>> projectDiagnosticsToFixMap, Solution newSolution, string language)
425ImmutableDictionary<Project, ImmutableArray<Diagnostic>>.Builder? projectDiagsBuilder = null;
434projectDiagsBuilder ??= ImmutableDictionary.CreateBuilder<Project, ImmutableArray<Diagnostic>>();
439return projectDiagsBuilder != null ? projectDiagsBuilder.ToImmutable() : ImmutableDictionary<Project, ImmutableArray<Diagnostic>>.Empty;
448private async Task<ImmutableDictionary<Document, ImmutableArray<Diagnostic>>> GetDocumentDiagnosticsToFixAsync(IEnumerable<DiagnosticData> diagnosticsToFix, Func<Project, bool> shouldFixInProject, bool filterStaleDiagnostics, CancellationToken cancellationToken)
466return ImmutableDictionary<Document, ImmutableArray<Diagnostic>>.Empty;
469var finalBuilder = ImmutableDictionary.CreateBuilder<Document, ImmutableArray<Diagnostic>>();
541private async Task<ImmutableDictionary<Project, ImmutableArray<Diagnostic>>> GetProjectDiagnosticsToFixAsync(IEnumerable<DiagnosticData> diagnosticsToFix, Func<Project, bool> shouldFixInProject, bool filterStaleDiagnostics, CancellationToken cancellationToken)
548return ImmutableDictionary<Project, ImmutableArray<Diagnostic>>.Empty;
550var finalBuilder = ImmutableDictionary.CreateBuilder<Project, ImmutableArray<Diagnostic>>();
UnusedReferences\RemoveUnusedReferencesCommandHandler.cs (5)
114ImmutableArray<ReferenceUpdate> referenceUpdates = default;
167private (Solution?, string?, ImmutableArray<ReferenceUpdate>) GetUnusedReferencesForProjectHierarchy(
184var unusedReferences = GetUnusedReferencesForProject(solution, projectFilePath!, projectAssetsFile, cancellationToken);
189private ImmutableArray<ReferenceUpdate> GetUnusedReferencesForProject(Solution solution, string projectFilePath, string projectAssetsFile, CancellationToken cancellationToken)
205private static void ApplyUnusedReferenceUpdates(JoinableTaskFactory joinableTaskFactory, Solution solution, string projectFilePath, ImmutableArray<ReferenceUpdate> referenceUpdates, CancellationToken cancellationToken)