10 interfaces inheriting from IPatternOperation
Microsoft.CodeAnalysis (10)
Generated\Operations.Generated.cs (10)
2912
public interface IConstantPatternOperation :
IPatternOperation
2936
public interface IDeclarationPatternOperation :
IPatternOperation
3216
public interface IRecursivePatternOperation :
IPatternOperation
3258
public interface IDiscardPatternOperation :
IPatternOperation
3504
public interface INegatedPatternOperation :
IPatternOperation
3528
public interface IBinaryPatternOperation :
IPatternOperation
3560
public interface ITypePatternOperation :
IPatternOperation
3584
public interface IRelationalPatternOperation :
IPatternOperation
3769
public interface IListPatternOperation :
IPatternOperation
3801
public interface ISlicePatternOperation :
IPatternOperation
1 implementation of IPatternOperation
Microsoft.CodeAnalysis (1)
Generated\Operations.Generated.cs (1)
8546
internal abstract partial class BasePatternOperation : Operation,
IPatternOperation
99 references to IPatternOperation
GenerateDocumentationAndConfigFiles (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
ILLink.RoslynAnalyzer (1)
DataFlow\FeatureChecksVisitor.cs (1)
142
static bool? GetExpectedValueFromPattern(
IPatternOperation
pattern)
Metrics (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
Metrics.Legacy (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
Microsoft.CodeAnalysis (46)
Generated\Operations.Generated.cs (30)
2152
IPatternOperation
Pattern { get; }
2721
IPatternOperation
Pattern { get; }
3231
ImmutableArray<
IPatternOperation
> DeconstructionSubpatterns { get; }
3309
IPatternOperation
Pattern { get; }
3345
IPatternOperation
Pattern { get; }
3509
IPatternOperation
Pattern { get; }
3537
IPatternOperation
LeftPattern { get; }
3541
IPatternOperation
RightPattern { get; }
3784
ImmutableArray<
IPatternOperation
> Patterns { get; }
3810
IPatternOperation
? Pattern { get; }
7233
internal IsPatternOperation(IOperation value,
IPatternOperation
pattern, SemanticModel? semanticModel, SyntaxNode syntax, ITypeSymbol? type, bool isImplicit)
7241
public
IPatternOperation
Pattern { get; }
8190
internal PatternCaseClauseOperation(ILabelSymbol label,
IPatternOperation
pattern, IOperation? guard, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
8197
public
IPatternOperation
Pattern { get; }
9267
internal RecursivePatternOperation(ITypeSymbol matchedType, ISymbol? deconstructSymbol, ImmutableArray<
IPatternOperation
> deconstructionSubpatterns, ImmutableArray<IPropertySubpatternOperation> propertySubpatterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
9278
public ImmutableArray<
IPatternOperation
> DeconstructionSubpatterns { get; }
9426
internal SwitchExpressionArmOperation(
IPatternOperation
pattern, IOperation? guard, IOperation value, ImmutableArray<ILocalSymbol> locals, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
9434
public
IPatternOperation
Pattern { get; }
9501
internal PropertySubpatternOperation(IOperation member,
IPatternOperation
pattern, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
9508
public
IPatternOperation
Pattern { get; }
9878
internal NegatedPatternOperation(
IPatternOperation
pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
9883
public
IPatternOperation
Pattern { get; }
9929
internal BinaryPatternOperation(BinaryOperatorKind operatorKind,
IPatternOperation
leftPattern,
IPatternOperation
rightPattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
9937
public
IPatternOperation
LeftPattern { get; }
9938
public
IPatternOperation
RightPattern { get; }
10397
internal ListPatternOperation(ISymbol? lengthSymbol, ISymbol? indexerSymbol, ImmutableArray<
IPatternOperation
> patterns, ISymbol? declaredSymbol, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
10407
public ImmutableArray<
IPatternOperation
> Patterns { get; }
10458
internal SlicePatternOperation(ISymbol? sliceSymbol,
IPatternOperation
? pattern, ITypeSymbol inputType, ITypeSymbol narrowedType, SemanticModel? semanticModel, SyntaxNode syntax, bool isImplicit)
10465
public
IPatternOperation
? Pattern { get; }
Operations\ControlFlowGraphBuilder.cs (16)
5610
var
pattern = (
IPatternOperation
)VisitRequired(patternClause.Pattern);
7469
var
visitedPattern = (
IPatternOperation
)VisitRequired(operation.Pattern);
7603
return createOperation(this, operation, (
IPatternOperation
)VisitRequired(operation.LeftPattern));
7617
var
result = (
IPatternOperation
)VisitRequired(current.LeftPattern);
7626
static BinaryPatternOperation createOperation(ControlFlowGraphBuilder @this, IBinaryPatternOperation operation,
IPatternOperation
left)
7631
rightPattern: (
IPatternOperation
)@this.VisitRequired(operation.RightPattern),
7643
pattern: (
IPatternOperation
)VisitRequired(operation.Pattern),
7679
(
IPatternOperation
?)Visit(operation.Pattern),
7692
operation.Patterns.SelectAsArray((p, @this) => (
IPatternOperation
)@this.VisitRequired(p), this),
7706
operation.DeconstructionSubpatterns.SelectAsArray((p, @this) => (
IPatternOperation
)@this.VisitRequired(p), this),
7720
(
IPatternOperation
)VisitRequired(operation.Pattern),
7790
var
visitedPattern = (
IPatternOperation
)VisitRequired(arm.Pattern);
Microsoft.CodeAnalysis.Analyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
Microsoft.CodeAnalysis.AnalyzerUtilities (2)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (1)
1274
IPatternOperation
patternOperation = isPatternOperation.Pattern;
Microsoft.CodeAnalysis.BannedApiAnalyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
Microsoft.CodeAnalysis.CodeStyle (2)
src\Analyzers\Core\Analyzers\PopulateSwitch\PopulateSwitchExpressionHelpers.cs (2)
88
public static bool IsDefault(
IPatternOperation
pattern)
116
var
pattern = arm.Pattern;
Microsoft.CodeAnalysis.CSharp (25)
Operations\CSharpOperationFactory.cs (25)
2622
ImmutableArray<
IPatternOperation
> deconstructionSubpatterns = boundRecursivePattern.Deconstruction is { IsDefault: false } deconstructions
2623
? deconstructions.SelectAsArray((p, fac) => (
IPatternOperation
)fac.Create(p.Pattern), this)
2624
: ImmutableArray<
IPatternOperation
>.Empty;
2643
ImmutableArray<
IPatternOperation
> deconstructionSubpatterns = boundITuplePattern.Subpatterns is { IsDefault: false } subpatterns
2644
? subpatterns.SelectAsArray((p, fac) => (
IPatternOperation
)fac.Create(p.Pattern), this)
2645
: ImmutableArray<
IPatternOperation
>.Empty;
2676
pattern: (
IPatternOperation
?)Create(boundNode.Pattern),
2689
patterns: boundNode.Subpatterns.SelectAsArray((p, fac) => (
IPatternOperation
)fac.Create(p), this),
2701
(
IPatternOperation
)Create(boundNegatedPattern.Negated),
2713
return createOperation(this, boundBinaryPattern, left: (
IPatternOperation
)Create(boundBinaryPattern.Left));
2727
var
result = (
IPatternOperation
)Create(current.Left);
2736
static BinaryPatternOperation createOperation(CSharpOperationFactory @this, BoundBinaryPattern boundBinaryPattern,
IPatternOperation
left)
2741
(
IPatternOperation
)@this.Create(boundBinaryPattern.Right),
2798
IPatternOperation
pattern = (
IPatternOperation
)Create(boundSwitchExpressionArm.Pattern);
2831
IPatternOperation
pattern = (
IPatternOperation
)Create(boundSwitchLabel.Pattern);
2840
IPatternOperation
pattern = (
IPatternOperation
)Create(boundIsPatternExpression.Pattern);
2924
IPatternOperation
pattern = (
IPatternOperation
)Create(subpattern.Pattern);
2948
IPatternOperation
nestedPattern = new RecursivePatternOperation(
2949
matchedType: previousType, deconstructSymbol: null, deconstructionSubpatterns: ImmutableArray<
IPatternOperation
>.Empty,
2958
IPropertySubpatternOperation 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)
828
Pattern:
IPatternOperation
isPattern
833
bool 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)
828
Pattern:
IPatternOperation
isPattern
833
bool 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)
88
public static bool IsDefault(
IPatternOperation
pattern)
116
var
pattern = arm.Pattern;
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
Microsoft.CodeAnalysis.PublicApiAnalyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
Microsoft.CodeAnalysis.ResxSourceGenerator (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
Microsoft.CodeAnalysis.Test.Utilities (3)
Compilation\OperationTreeVerifier.cs (2)
76
private void LogPatternPropertiesAndNewLine(
IPatternOperation
operation)
83
private void LogPatternProperties(
IPatternOperation
operation)
Compilation\TestOperationVisitor.cs (1)
1364
private void VisitPatternCommon(
IPatternOperation
pattern)
Roslyn.Diagnostics.Analyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public 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)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)
Text.Analyzers (1)
src\RoslynAnalyzers\Utilities\Compiler\Extensions\IOperationExtensions.cs (1)
390
public static ITypeSymbol? GetPatternType(this
IPatternOperation
pattern)