6 types derived from AnalyzedPattern
Microsoft.CodeAnalysis.Features (6)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.AnalyzedNodes.cs (6)
53internal sealed class Type(TIsExpressionSyntax expression) : AnalyzedPattern 61internal sealed class Source(TPatternSyntax patternSyntax) : AnalyzedPattern 69internal sealed class Constant(TExpressionSyntax expression) : AnalyzedPattern 77internal sealed class Relational(BinaryOperatorKind operatorKind, TExpressionSyntax value) : AnalyzedPattern 86internal sealed class Range(TExpressionSyntax lowerBound, TExpressionSyntax higherBound) : AnalyzedPattern 95internal sealed class And(AnalyzedPattern leftPattern, AnalyzedPattern rightPattern) : AnalyzedPattern
26 references to AnalyzedPattern
Microsoft.CodeAnalysis.CSharp.Features (7)
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (7)
95private static PatternSyntax AsPatternSyntax(AnalyzedPattern pattern, Feature feature) 98AnalyzedPattern.And p => BinaryPattern(SyntaxKind.AndPattern, AsPatternSyntax(p.LeftPattern, feature).Parenthesize(), AsPatternSyntax(p.RightPattern, feature).Parenthesize()), 99AnalyzedPattern.Constant p => ConstantPattern(p.ExpressionSyntax), 100AnalyzedPattern.Source p => p.PatternSyntax, 101AnalyzedPattern.Type p when feature.HasFlag(Feature.TypePattern) => TypePattern((TypeSyntax)p.IsExpressionSyntax.Right), 102AnalyzedPattern.Type p => DeclarationPattern((TypeSyntax)p.IsExpressionSyntax.Right, DiscardDesignation()), 103AnalyzedPattern.Relational p => RelationalPattern(Token(s_operatorMap[p.OperatorKind]), p.Value),
Microsoft.CodeAnalysis.Features (19)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.AnalyzedNodes.cs (6)
35internal sealed class AnalyzedSwitchLabel(AnalyzedPattern pattern, ImmutableArray<TExpressionSyntax> guards) 37public readonly AnalyzedPattern Pattern = pattern; 95internal sealed class And(AnalyzedPattern leftPattern, AnalyzedPattern rightPattern) : AnalyzedPattern 97public readonly AnalyzedPattern LeftPattern = leftPattern; 98public readonly AnalyzedPattern RightPattern = rightPattern;
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (13)
231var pattern = ParsePattern(operation, guards); 277private AnalyzedPattern? ParsePattern(IOperation operation, ArrayBuilder<TExpressionSyntax> guards) 283return new AnalyzedPattern.Range(lower, higher); 289=> new AnalyzedPattern.Constant(left), 291=> new AnalyzedPattern.Constant(right), 308var leftPattern = ParsePattern(op.LeftOperand, guards); 315var rightPattern = ParsePattern(op.RightOperand, guards); 317return new AnalyzedPattern.And(leftPattern, rightPattern); 334return new AnalyzedPattern.Type(node); 338return new AnalyzedPattern.Source(pattern); 347private AnalyzedPattern? ParseRelationalPattern(IBinaryOperation op) 352=> new AnalyzedPattern.Relational(Flip(op.OperatorKind), left), 354=> new AnalyzedPattern.Relational(op.OperatorKind, right),