6 types derived from AnalyzedPattern
Microsoft.CodeAnalysis.Features (6)
30 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)
223var pattern = ParsePattern(operation, guards);
269private AnalyzedPattern? ParsePattern(IOperation operation, ArrayBuilder<TExpressionSyntax> guards)
275return new AnalyzedPattern.Range(lower, higher);
281=> new AnalyzedPattern.Constant(left),
283=> new AnalyzedPattern.Constant(right),
300var leftPattern = ParsePattern(op.LeftOperand, guards);
307var rightPattern = ParsePattern(op.RightOperand, guards);
309return new AnalyzedPattern.And(leftPattern, rightPattern);
326return new AnalyzedPattern.Type(node);
330return new AnalyzedPattern.Source(pattern);
339private AnalyzedPattern? ParseRelationalPattern(IBinaryOperation op)
344=> new AnalyzedPattern.Relational(Flip(op.OperatorKind), left),
346=> new AnalyzedPattern.Relational(op.OperatorKind, right),
Microsoft.CodeAnalysis.VisualBasic.Features (4)