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)
8544internal abstract partial class BasePatternOperation : Operation, IPatternOperation
99 references to IPatternOperation
GenerateDocumentationAndConfigFiles (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation pattern)
ILLink.RoslynAnalyzer (1)
DataFlow\FeatureChecksVisitor.cs (1)
142static bool? GetExpectedValueFromPattern(IPatternOperation pattern)
Metrics (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation pattern)
Metrics.Legacy (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this 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; } 7231internal IsPatternOperation(IOperation value, IPatternOperation pattern, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 7239public IPatternOperation Pattern { get; } 8188internal PatternCaseClauseOperation(ILabelSymbol label, IPatternOperation pattern, IOperation? guard, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8195public IPatternOperation Pattern { get; } 9265internal RecursivePatternOperation(ITypeSymbol matchedType, ISymbol? deconstructSymbol, ImmutableArray<IPatternOperation> deconstructionSubpatterns, ImmutableArray<IPropertySubpatternOperation> propertySubpatterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9276public ImmutableArray<IPatternOperation> DeconstructionSubpatterns { get; } 9424internal SwitchExpressionArmOperation(IPatternOperation pattern, IOperation? guard, IOperation value, ImmutableArray<ILocalSymbol> locals, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9432public IPatternOperation Pattern { get; } 9499internal PropertySubpatternOperation(IOperation member, IPatternOperation pattern, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9506public IPatternOperation Pattern { get; } 9876internal NegatedPatternOperation(IPatternOperation pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9881public IPatternOperation Pattern { get; } 9927internal BinaryPatternOperation(BinaryOperatorKind operatorKind, IPatternOperation leftPattern, IPatternOperation rightPattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9935public IPatternOperation LeftPattern { get; } 9936public IPatternOperation RightPattern { get; } 10395internal ListPatternOperation(ISymbol? lengthSymbol, ISymbol? indexerSymbol, ImmutableArray<IPatternOperation> patterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 10405public ImmutableArray<IPatternOperation> Patterns { get; } 10456internal SlicePatternOperation(ISymbol? sliceSymbol, IPatternOperation? pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 10463public IPatternOperation? Pattern { get; }
Operations\ControlFlowGraphBuilder.cs (16)
5610var pattern = (IPatternOperation)VisitRequired(patternClause.Pattern); 7469var visitedPattern = (IPatternOperation)VisitRequired(operation.Pattern); 7603return createOperation(this, operation, (IPatternOperation)VisitRequired(operation.LeftPattern)); 7617var result = (IPatternOperation)VisitRequired(current.LeftPattern); 7626static BinaryPatternOperation createOperation(ControlFlowGraphBuilder @this, IBinaryPatternOperation operation, IPatternOperation left) 7631rightPattern: (IPatternOperation)@this.VisitRequired(operation.RightPattern), 7643pattern: (IPatternOperation)VisitRequired(operation.Pattern), 7679(IPatternOperation?)Visit(operation.Pattern), 7692operation.Patterns.SelectAsArray((p, @this) => (IPatternOperation)@this.VisitRequired(p), this), 7706operation.DeconstructionSubpatterns.SelectAsArray((p, @this) => (IPatternOperation)@this.VisitRequired(p), this), 7720(IPatternOperation)VisitRequired(operation.Pattern), 7790var visitedPattern = (IPatternOperation)VisitRequired(arm.Pattern);
Microsoft.CodeAnalysis.Analyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation pattern)
Microsoft.CodeAnalysis.AnalyzerUtilities (2)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation pattern)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (1)
1274IPatternOperation patternOperation = isPatternOperation.Pattern;
Microsoft.CodeAnalysis.BannedApiAnalyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation 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)
2597ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundRecursivePattern.Deconstruction is { IsDefault: false } deconstructions 2598? deconstructions.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p.Pattern), this) 2599: ImmutableArray<IPatternOperation>.Empty; 2618ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundITuplePattern.Subpatterns is { IsDefault: false } subpatterns 2619? subpatterns.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p.Pattern), this) 2620: ImmutableArray<IPatternOperation>.Empty; 2651pattern: (IPatternOperation?)Create(boundNode.Pattern), 2664patterns: boundNode.Subpatterns.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p), this), 2676(IPatternOperation)Create(boundNegatedPattern.Negated), 2688return createOperation(this, boundBinaryPattern, left: (IPatternOperation)Create(boundBinaryPattern.Left)); 2702var result = (IPatternOperation)Create(current.Left); 2711static BinaryPatternOperation createOperation(CSharpOperationFactory @this, BoundBinaryPattern boundBinaryPattern, IPatternOperation left) 2716(IPatternOperation)@this.Create(boundBinaryPattern.Right), 2773IPatternOperation pattern = (IPatternOperation)Create(boundSwitchExpressionArm.Pattern); 2806IPatternOperation pattern = (IPatternOperation)Create(boundSwitchLabel.Pattern); 2815IPatternOperation pattern = (IPatternOperation)Create(boundIsPatternExpression.Pattern); 2899IPatternOperation pattern = (IPatternOperation)Create(subpattern.Pattern); 2923IPatternOperation nestedPattern = new RecursivePatternOperation( 2924matchedType: previousType, deconstructSymbol: null, deconstructionSubpatterns: ImmutableArray<IPatternOperation>.Empty, 2933IPropertySubpatternOperation 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)
828Pattern: IPatternOperation isPattern 833bool TryGetBoundVariableForIsPattern(IPatternOperation isPattern, [NotNullWhen(true)] out ISymbol? boundVariable)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (1)
1614_ when SemanticModel.GetOperation(pattern, CancellationToken) is IPatternOperation patternOperation =>
Microsoft.CodeAnalysis.CSharp.Features (2)
src\Analyzers\CSharp\CodeFixes\ConvertToRecord\ConvertToRecordHelpers.cs (2)
828Pattern: IPatternOperation isPattern 833bool TryGetBoundVariableForIsPattern(IPatternOperation isPattern, [NotNullWhen(true)] out ISymbol? boundVariable)
Microsoft.CodeAnalysis.CSharp.Workspaces (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (1)
1614_ 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.PerformanceSensitiveAnalyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation pattern)
Microsoft.CodeAnalysis.PublicApiAnalyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation pattern)
Microsoft.CodeAnalysis.ResxSourceGenerator (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this 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)
1364private void VisitPatternCommon(IPatternOperation pattern)
Roslyn.Diagnostics.Analyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation pattern)
Roslyn.Diagnostics.CSharp.Analyzers (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (1)
1614_ when SemanticModel.GetOperation(pattern, CancellationToken) is IPatternOperation patternOperation =>
Test.Utilities (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation pattern)
Text.Analyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390public static ITypeSymbol? GetPatternType(this IPatternOperation pattern)