40 references to Feature
Microsoft.CodeAnalysis.CSharp.Features (15)
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (1)
18public CSharpAnalyzer(ISyntaxFacts syntaxFacts, Feature features)
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.cs (9)
37var features = 38(version >= LanguageVersion.CSharp7 ? Feature.SourcePattern | Feature.IsTypePattern | Feature.CaseGuard : 0) | 39(version >= LanguageVersion.CSharp8 ? Feature.SwitchExpression : 0) | 40(version >= LanguageVersion.CSharp9 ? Feature.RelationalPattern | Feature.OrPattern | Feature.AndPattern | Feature.TypePattern : 0);
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (5)
30public override SyntaxNode CreateSwitchExpressionStatement(SyntaxNode target, ImmutableArray<AnalyzedSwitchSection> sections, Feature feature) 38private static SwitchExpressionArmSyntax AsSwitchExpressionArmSyntax(AnalyzedSwitchSection section, Feature feature) 89public override SyntaxNode AsSwitchLabelSyntax(AnalyzedSwitchLabel label, Feature feature) 95private static PatternSyntax AsPatternSyntax(AnalyzedPattern pattern, Feature feature) 101AnalyzedPattern.Type p when feature.HasFlag(Feature.TypePattern) => TypePattern((TypeSyntax)p.IsExpressionSyntax.Right),
Microsoft.CodeAnalysis.Features (19)
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (12)
67protected Analyzer(ISyntaxFacts syntaxFacts, Feature features) 73public Feature Features { get; } 75public bool Supports(Feature feature) 274when Supports(Feature.RangePattern) && GetRangeBounds(op) is (TExpressionSyntax lower, TExpressionSyntax higher): 288when Supports(Feature.InequalityPattern): 292when Supports(Feature.RelationalPattern) && IsRelationalOperator(op.OperatorKind): 298when Supports(Feature.AndPattern | Feature.CaseGuard): 304if (Supports(Feature.AndPattern)) 315if (Supports(Feature.CaseGuard) && op.RightOperand.Syntax is TExpressionSyntax node) 325when Supports(Feature.IsTypePattern) && CheckTargetExpression(op.ValueOperand) && op.Syntax is TIsExpressionSyntax node: 329when Supports(Feature.SourcePattern) && CheckTargetExpression(op.Value) && op.Pattern.Syntax is TPatternSyntax pattern:
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.cs (3)
58if (analyzer.Supports(Feature.SwitchExpression) && 59CanConvertToSwitchExpression(analyzer.Supports(Feature.OrPattern), sections)) 254if (convertToSwitchExpression && !CanConvertToSwitchExpression(analyzer.Supports(Feature.OrPattern), sections))
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (4)
22public abstract SyntaxNode CreateSwitchExpressionStatement(SyntaxNode target, ImmutableArray<AnalyzedSwitchSection> sections, Feature feature); 25public abstract SyntaxNode AsSwitchLabelSyntax(AnalyzedSwitchLabel label, Feature feature); 33Feature feature, 60private SyntaxNode AsSwitchSectionSyntax(AnalyzedSwitchSection section, SyntaxGenerator generator, Feature feature)
Microsoft.CodeAnalysis.VisualBasic.Features (6)
ConvertIfToSwitch\VisualBasicConvertIfToSwitchCodeRefactoringProvider.Analyzer.vb (1)
14Public Sub New(syntaxFacts As ISyntaxFacts, features As Feature)
ConvertIfToSwitch\VisualBasicConvertIfToSwitchCodeRefactoringProvider.Rewriting.vb (2)
22Public Overrides Function CreateSwitchExpressionStatement(target As SyntaxNode, sections As ImmutableArray(Of AnalyzedSwitchSection), feature As Feature) As SyntaxNode 35Public Overrides Function AsSwitchLabelSyntax(label As AnalyzedSwitchLabel, feature As Feature) As SyntaxNode
ConvertIfToSwitch\VisualBasicConvertIfToSwitchCodeRefactoringProvider.vb (3)
28Return New VisualBasicAnalyzer(syntaxFacts, Feature.RangePattern Or Feature.RelationalPattern Or Feature.InequalityPattern)