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)
8546internal 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; } 7233internal IsPatternOperation(IOperation value, IPatternOperation pattern, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit) 7241public IPatternOperation Pattern { get; } 8190internal PatternCaseClauseOperation(ILabelSymbol label, IPatternOperation pattern, IOperation? guard, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 8197public IPatternOperation Pattern { get; } 9267internal RecursivePatternOperation(ITypeSymbol matchedType, ISymbol? deconstructSymbol, ImmutableArray<IPatternOperation> deconstructionSubpatterns, ImmutableArray<IPropertySubpatternOperation> propertySubpatterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9278public ImmutableArray<IPatternOperation> DeconstructionSubpatterns { get; } 9426internal SwitchExpressionArmOperation(IPatternOperation pattern, IOperation? guard, IOperation value, ImmutableArray<ILocalSymbol> locals, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9434public IPatternOperation Pattern { get; } 9501internal PropertySubpatternOperation(IOperation member, IPatternOperation pattern, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9508public IPatternOperation Pattern { get; } 9878internal NegatedPatternOperation(IPatternOperation pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9883public IPatternOperation Pattern { get; } 9929internal BinaryPatternOperation(BinaryOperatorKind operatorKind, IPatternOperation leftPattern, IPatternOperation rightPattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 9937public IPatternOperation LeftPattern { get; } 9938public IPatternOperation RightPattern { get; } 10397internal ListPatternOperation(ISymbol? lengthSymbol, ISymbol? indexerSymbol, ImmutableArray<IPatternOperation> patterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 10407public ImmutableArray<IPatternOperation> Patterns { get; } 10458internal SlicePatternOperation(ISymbol? sliceSymbol, IPatternOperation? pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit) 10465public 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)
2622ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundRecursivePattern.Deconstruction is { IsDefault: false } deconstructions 2623? deconstructions.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p.Pattern), this) 2624: ImmutableArray<IPatternOperation>.Empty; 2643ImmutableArray<IPatternOperation> deconstructionSubpatterns = boundITuplePattern.Subpatterns is { IsDefault: false } subpatterns 2644? subpatterns.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p.Pattern), this) 2645: ImmutableArray<IPatternOperation>.Empty; 2676pattern: (IPatternOperation?)Create(boundNode.Pattern), 2689patterns: boundNode.Subpatterns.SelectAsArray((p, fac) => (IPatternOperation)fac.Create(p), this), 2701(IPatternOperation)Create(boundNegatedPattern.Negated), 2713return createOperation(this, boundBinaryPattern, left: (IPatternOperation)Create(boundBinaryPattern.Left)); 2727var result = (IPatternOperation)Create(current.Left); 2736static BinaryPatternOperation createOperation(CSharpOperationFactory @this, BoundBinaryPattern boundBinaryPattern, IPatternOperation left) 2741(IPatternOperation)@this.Create(boundBinaryPattern.Right), 2798IPatternOperation pattern = (IPatternOperation)Create(boundSwitchExpressionArm.Pattern); 2831IPatternOperation pattern = (IPatternOperation)Create(boundSwitchLabel.Pattern); 2840IPatternOperation pattern = (IPatternOperation)Create(boundIsPatternExpression.Pattern); 2924IPatternOperation pattern = (IPatternOperation)Create(subpattern.Pattern); 2948IPatternOperation nestedPattern = new RecursivePatternOperation( 2949matchedType: previousType, deconstructSymbol: null, deconstructionSubpatterns: ImmutableArray<IPatternOperation>.Empty, 2958IPropertySubpatternOperation 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)