6 types derived from AnalyzedPattern
Microsoft.CodeAnalysis.Features (6)
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.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),