10 interfaces inheriting from IPatternOperation
Microsoft.CodeAnalysis (10)
Generated\Operations.Generated.cs (10)
2912public interface IConstantPatternOperation : IPatternOperation 2936public interface IDeclarationPatternOperation : IPatternOperation 3216public interface IRecursivePatternOperation : IPatternOperation 3258public interface IDiscardPatternOperation : IPatternOperation 3504public interface INegatedPatternOperation : IPatternOperation 3528public interface IBinaryPatternOperation : IPatternOperation 3560public interface ITypePatternOperation : IPatternOperation 3584public interface IRelationalPatternOperation : IPatternOperation 3769public interface IListPatternOperation : IPatternOperation 3801public interface ISlicePatternOperation : IPatternOperation
1 implementation of IPatternOperation
Microsoft.CodeAnalysis (1)
Generated\Operations.Generated.cs (1)
8506internal abstract partial class BasePatternOperation : Operation, IPatternOperation
85 references to IPatternOperation
ILLink.RoslynAnalyzer (1)
DataFlow\FeatureChecksVisitor.cs (1)
138 static bool? GetExpectedValueFromPattern (IPatternOperation pattern)
Microsoft.CodeAnalysis (46)
Generated\Operations.Generated.cs (30)
2152IPatternOperation Pattern { get; } 2721IPatternOperation Pattern { get; } 3231ImmutableArray<IPatternOperation> DeconstructionSubpatterns { get; } 3309IPatternOperation Pattern { get; } 3345IPatternOperation Pattern { get; } 3509IPatternOperation Pattern { get; } 3537IPatternOperation LeftPattern { get; } 3541IPatternOperation RightPattern { get; } 3784ImmutableArray<IPatternOperation> Patterns { get; } 3810IPatternOperation? Pattern { get; } 7193internal IsPatternOperation(IOperation value, IPatternOperation pattern, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 7201public IPatternOperation Pattern { get; } 8150internal PatternCaseClauseOperation(ILabelSymbol label, IPatternOperation pattern, IOperation? guard, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8157public IPatternOperation Pattern { get; } 9227internal RecursivePatternOperation(ITypeSymbol matchedType, ISymbol? deconstructSymbol, ImmutableArray<IPatternOperation> deconstructionSubpatterns, ImmutableArray<IPropertySubpatternOperation> propertySubpatterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9238public ImmutableArray<IPatternOperation> DeconstructionSubpatterns { get; } 9386internal SwitchExpressionArmOperation(IPatternOperation pattern, IOperation? guard, IOperation value, ImmutableArray<ILocalSymbol> locals, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9394public IPatternOperation Pattern { get; } 9461internal PropertySubpatternOperation(IOperation member, IPatternOperation pattern, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9468public IPatternOperation Pattern { get; } 9838internal NegatedPatternOperation(IPatternOperation pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9843public IPatternOperation Pattern { get; } 9889internal BinaryPatternOperation(BinaryOperatorKind operatorKind, IPatternOperation leftPattern, IPatternOperation rightPattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9897public IPatternOperation LeftPattern { get; } 9898public IPatternOperation RightPattern { get; } 10357internal ListPatternOperation(ISymbol? lengthSymbol, ISymbol? indexerSymbol, ImmutableArray<IPatternOperation> patterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 10367public ImmutableArray<IPatternOperation> Patterns { get; } 10418internal SlicePatternOperation(ISymbol? sliceSymbol, IPatternOperation? pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 10425public IPatternOperation? Pattern { get; }
Operations\ControlFlowGraphBuilder.cs (16)
5608var pattern = (IPatternOperation)VisitRequired(patternClause.Pattern); 7436var visitedPattern = (IPatternOperation)VisitRequired(operation.Pattern); 7570return createOperation(this, operation, (IPatternOperation)VisitRequired(operation.LeftPattern)); 7584var result = (IPatternOperation)VisitRequired(current.LeftPattern); 7593static BinaryPatternOperation createOperation(ControlFlowGraphBuilder @this, IBinaryPatternOperation operation, IPatternOperation left) 7598rightPattern: (IPatternOperation)@this.VisitRequired(operation.RightPattern), 7610pattern: (IPatternOperation)VisitRequired(operation.Pattern), 7646(IPatternOperation?)Visit(operation.Pattern), 7659operation.Patterns.SelectAsArray((p, @this) => (IPatternOperation)@this.VisitRequired(p), this), 7673operation.DeconstructionSubpatterns.SelectAsArray((p, @this) => (IPatternOperation)@this.VisitRequired(p), this), 7687(IPatternOperation)VisitRequired(operation.Pattern), 7757var visitedPattern = (IPatternOperation)VisitRequired(arm.Pattern);
Microsoft.CodeAnalysis.CodeStyle (2)
src\Analyzers\Core\Analyzers\PopulateSwitch\PopulateSwitchExpressionHelpers.cs (2)
88public static bool IsDefault(IPatternOperation pattern) 116var pattern = arm.Pattern;
Microsoft.CodeAnalysis.CSharp (25)
Operations\CSharpOperationFactory.cs (25)
2556ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundRecursivePattern.Deconstruction is { IsDefault: false } deconstructions 2557? deconstructions.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p.Pattern), this) 2558: ImmutableArray<IPatternOperation>.Empty; 2577ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundITuplePattern.Subpatterns is { IsDefault: false } subpatterns 2578? subpatterns.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p.Pattern), this) 2579: ImmutableArray<IPatternOperation>.Empty; 2610pattern: (IPatternOperation?)Create(boundNode.Pattern), 2623patterns: boundNode.Subpatterns.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p), this), 2635(IPatternOperation)Create(boundNegatedPattern.Negated), 2647return createOperation(this, boundBinaryPattern, left: (IPatternOperation)Create(boundBinaryPattern.Left)); 2661var result = (IPatternOperation)Create(current.Left); 2670static BinaryPatternOperation createOperation(CSharpOperationFactory @this, BoundBinaryPattern boundBinaryPattern, IPatternOperation left) 2675(IPatternOperation)@this.Create(boundBinaryPattern.Right), 2732IPatternOperation pattern = (IPatternOperation)Create(boundSwitchExpressionArm.Pattern); 2765IPatternOperation pattern = (IPatternOperation)Create(boundSwitchLabel.Pattern); 2774IPatternOperation pattern = (IPatternOperation)Create(boundIsPatternExpression.Pattern); 2858IPatternOperation pattern = (IPatternOperation)Create(subpattern.Pattern); 2882IPatternOperation nestedPattern = new RecursivePatternOperation( 2883matchedType: previousType, deconstructSymbol: null, deconstructionSubpatterns: ImmutableArray<IPatternOperation>.Empty, 2892IPropertySubpatternOperation createPropertySubpattern(Symbol? symbol, IPatternOperation pattern, ITypeSymbol receiverType, SyntaxNode nameSyntax, bool isSingle)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (3)
src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (2)
829Pattern: IPatternOperation isPattern 834bool TryGetBoundVariableForIsPattern(IPatternOperation isPattern, [NotNullWhen(true)] out ISymbol? boundVariable)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (1)
1536_ when SemanticModel.GetOperation(pattern, CancellationToken) is IPatternOperation patternOperation =>
Microsoft.CodeAnalysis.CSharp.Features (2)
src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (2)
829Pattern: IPatternOperation isPattern 834bool TryGetBoundVariableForIsPattern(IPatternOperation isPattern, [NotNullWhen(true)] out ISymbol? boundVariable)
Microsoft.CodeAnalysis.CSharp.Workspaces (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (1)
1536_ when SemanticModel.GetOperation(pattern, CancellationToken) is IPatternOperation patternOperation =>
Microsoft.CodeAnalysis.Features (2)
src\Analyzers\Core\Analyzers\PopulateSwitch\PopulateSwitchExpressionHelpers.cs (2)
88public static bool IsDefault(IPatternOperation pattern) 116var pattern = arm.Pattern;
Microsoft.CodeAnalysis.Test.Utilities (3)
Compilation\OperationTreeVerifier.cs (2)
76private void LogPatternPropertiesAndNewLine(IPatternOperation operation) 83private void LogPatternProperties(IPatternOperation operation)
Compilation\TestOperationVisitor.cs (1)
1357private void VisitPatternCommon(IPatternOperation pattern)