CodeRefactorings\UseRecursivePatterns\UseRecursivePatternsCodeRefactoringProvider.cs (25)
181ImmutableArray<IdentifierNameSyntax> namesOpt)
285private static (PatternSyntax ContainingPattern, ImmutableArray<IdentifierNameSyntax> NamesOpt)? TryFindVariableDesignation(
290using var _ = ArrayBuilder<IdentifierNameSyntax>.GetInstance(out var names);
291if (GetInnermostReceiver(rightReceiver, names, model) is not IdentifierNameSyntax identifierName)
362private static SubpatternSyntax CreateSubpattern(ImmutableArray<IdentifierNameSyntax> names, PatternSyntax pattern)
382private static SubpatternSyntax Subpattern(IdentifierNameSyntax name, PatternSyntax pattern)
398private static (ExpressionSyntax CommonReceiver, ImmutableArray<IdentifierNameSyntax> LeftNames, ImmutableArray<IdentifierNameSyntax> RightNames)? TryGetCommonReceiver(
403using var _1 = ArrayBuilder<IdentifierNameSyntax>.GetInstance(out var leftNames);
404using var _2 = ArrayBuilder<IdentifierNameSyntax>.GetInstance(out var rightNames);
416var lastName = SkipCommonNames(leftNames, rightNames);
429static bool TryGetInnermostReceiver(ExpressionSyntax node, ArrayBuilder<IdentifierNameSyntax> builder, [NotNullWhen(true)] out ExpressionSyntax? receiver, SemanticModel model)
435static IdentifierNameSyntax? SkipCommonNames(ArrayBuilder<IdentifierNameSyntax> leftNames, ArrayBuilder<IdentifierNameSyntax> rightNames)
437IdentifierNameSyntax? lastName = null;
442var leftName = leftNames[leftIndex];
443var rightName = rightNames[rightIndex];
455private static ExpressionSyntax? GetInnermostReceiver(ExpressionSyntax node, ArrayBuilder<IdentifierNameSyntax> builder, SemanticModel model)
459static bool CanConvertToSubpattern(IdentifierNameSyntax name, SemanticModel model)
472Func<IdentifierNameSyntax, TArg, bool> canConvertToSubpattern,
473ArrayBuilder<IdentifierNameSyntax>? builder = null)
482case IdentifierNameSyntax name
490case MemberBindingExpressionSyntax { Name: IdentifierNameSyntax name }
497case MemberAccessExpressionSyntax(SimpleMemberAccessExpression) { Name: IdentifierNameSyntax name } memberAccess