10 interfaces inheriting from IPatternOperation
Microsoft.CodeAnalysis (10)
Generated\Operations.Generated.cs (10)
2690public interface IConstantPatternOperation : IPatternOperation 2712public interface IDeclarationPatternOperation : IPatternOperation 2971public interface IRecursivePatternOperation : IPatternOperation 3010public interface IDiscardPatternOperation : IPatternOperation 3244public interface INegatedPatternOperation : IPatternOperation 3266public interface IBinaryPatternOperation : IPatternOperation 3296public interface ITypePatternOperation : IPatternOperation 3318public interface IRelationalPatternOperation : IPatternOperation 3501public interface IListPatternOperation : IPatternOperation 3533public interface ISlicePatternOperation : IPatternOperation
1 implementation of IPatternOperation
Microsoft.CodeAnalysis (1)
Generated\Operations.Generated.cs (1)
8133internal abstract partial class BasePatternOperation : Operation, IPatternOperation
76 references to IPatternOperation
Microsoft.CodeAnalysis (43)
Generated\Operations.Generated.cs (30)
1988IPatternOperation Pattern { get; } 2515IPatternOperation Pattern { get; } 2986ImmutableArray<IPatternOperation> DeconstructionSubpatterns { get; } 3059IPatternOperation Pattern { get; } 3095IPatternOperation Pattern { get; } 3249IPatternOperation Pattern { get; } 3275IPatternOperation LeftPattern { get; } 3279IPatternOperation RightPattern { get; } 3516ImmutableArray<IPatternOperation> Patterns { get; } 3542IPatternOperation? Pattern { get; } 6820internal IsPatternOperation(IOperation value, IPatternOperation pattern, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 6828public IPatternOperation Pattern { get; } 7777internal PatternCaseClauseOperation(ILabelSymbol label, IPatternOperation pattern, IOperation? guard, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 7784public IPatternOperation Pattern { get; } 8854internal RecursivePatternOperation(ITypeSymbol matchedType, ISymbol? deconstructSymbol, ImmutableArray<IPatternOperation> deconstructionSubpatterns, ImmutableArray<IPropertySubpatternOperation> propertySubpatterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8865public ImmutableArray<IPatternOperation> DeconstructionSubpatterns { get; } 9013internal SwitchExpressionArmOperation(IPatternOperation pattern, IOperation? guard, IOperation value, ImmutableArray<ILocalSymbol> locals, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9021public IPatternOperation Pattern { get; } 9088internal PropertySubpatternOperation(IOperation member, IPatternOperation pattern, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9095public IPatternOperation Pattern { get; } 9465internal NegatedPatternOperation(IPatternOperation pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9470public IPatternOperation Pattern { get; } 9516internal BinaryPatternOperation(BinaryOperatorKind operatorKind, IPatternOperation leftPattern, IPatternOperation rightPattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9524public IPatternOperation LeftPattern { get; } 9525public IPatternOperation RightPattern { get; } 9984internal ListPatternOperation(ISymbol? lengthSymbol, ISymbol? indexerSymbol, ImmutableArray<IPatternOperation> patterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9994public ImmutableArray<IPatternOperation> Patterns { get; } 10045internal SlicePatternOperation(ISymbol? sliceSymbol, IPatternOperation? pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 10052public IPatternOperation? Pattern { get; }
Operations\ControlFlowGraphBuilder.cs (13)
5511var pattern = (IPatternOperation)VisitRequired(patternClause.Pattern); 7198var visitedPattern = (IPatternOperation)VisitRequired(operation.Pattern); 7332leftPattern: (IPatternOperation)VisitRequired(operation.LeftPattern), 7333rightPattern: (IPatternOperation)VisitRequired(operation.RightPattern), 7344pattern: (IPatternOperation)VisitRequired(operation.Pattern), 7380(IPatternOperation?)Visit(operation.Pattern), 7393operation.Patterns.SelectAsArray((p, @this) => (IPatternOperation)@this.VisitRequired(p), this), 7407operation.DeconstructionSubpatterns.SelectAsArray((p, @this) => (IPatternOperation)@this.VisitRequired(p), this), 7421(IPatternOperation)VisitRequired(operation.Pattern), 7491var visitedPattern = (IPatternOperation)VisitRequired(arm.Pattern);
Microsoft.CodeAnalysis.CodeStyle (1)
PopulateSwitchExpressionHelpers.cs (1)
89private static bool IsDefault(IPatternOperation pattern)
Microsoft.CodeAnalysis.CSharp (22)
Operations\CSharpOperationFactory.cs (22)
2439ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundRecursivePattern.Deconstruction is { IsDefault: false } deconstructions 2440? deconstructions.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p.Pattern), this) 2441: ImmutableArray<IPatternOperation>.Empty; 2460ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundITuplePattern.Subpatterns is { IsDefault: false } subpatterns 2461? subpatterns.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p.Pattern), this) 2462: ImmutableArray<IPatternOperation>.Empty; 2493pattern: (IPatternOperation?)Create(boundNode.Pattern), 2506patterns: boundNode.Subpatterns.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p), this), 2518(IPatternOperation)Create(boundNegatedPattern.Negated), 2530(IPatternOperation)Create(boundBinaryPattern.Left), 2531(IPatternOperation)Create(boundBinaryPattern.Right), 2587IPatternOperation pattern = (IPatternOperation)Create(boundSwitchExpressionArm.Pattern); 2620IPatternOperation pattern = (IPatternOperation)Create(boundSwitchLabel.Pattern); 2629IPatternOperation pattern = (IPatternOperation)Create(boundIsPatternExpression.Pattern); 2713IPatternOperation pattern = (IPatternOperation)Create(subpattern.Pattern); 2737IPatternOperation nestedPattern = new RecursivePatternOperation( 2738matchedType: previousType, deconstructSymbol: null, deconstructionSubpatterns: ImmutableArray<IPatternOperation>.Empty, 2747IPropertySubpatternOperation createPropertySubpattern(Symbol? symbol, IPatternOperation pattern, ITypeSymbol receiverType, SyntaxNode nameSyntax, bool isSingle)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (3)
ConvertToRecordHelpers.cs (2)
827Pattern: IPatternOperation isPattern 832bool TryGetBoundVariableForIsPattern(IPatternOperation isPattern, [NotNullWhen(true)] out ISymbol? boundVariable)
CSharpTypeInferenceService.TypeInferrer.cs (1)
1562_ when SemanticModel.GetOperation(pattern, CancellationToken) is IPatternOperation patternOperation =>
Microsoft.CodeAnalysis.CSharp.Features (2)
ConvertToRecordHelpers.cs (2)
827Pattern: IPatternOperation isPattern 832bool TryGetBoundVariableForIsPattern(IPatternOperation isPattern, [NotNullWhen(true)] out ISymbol? boundVariable)
Microsoft.CodeAnalysis.CSharp.Workspaces (1)
CSharpTypeInferenceService.TypeInferrer.cs (1)
1562_ when SemanticModel.GetOperation(pattern, CancellationToken) is IPatternOperation patternOperation =>
Microsoft.CodeAnalysis.Features (1)
PopulateSwitchExpressionHelpers.cs (1)
89private static bool IsDefault(IPatternOperation pattern)
Microsoft.CodeAnalysis.Test.Utilities (3)
Compilation\OperationTreeVerifier.cs (2)
76private void LogPatternPropertiesAndNewLine(IPatternOperation operation) 83private void LogPatternProperties(IPatternOperation operation)
Compilation\TestOperationVisitor.cs (1)
1339private void VisitPatternCommon(IPatternOperation pattern)