65 references to PrecedenceKind
Microsoft.CodeAnalysis.CSharp.Features (8)
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (4)
30out PrecedenceKind precedence, out bool clarifiesPrecedence) 39out PrecedenceKind parentPrecedenceKind, out bool clarifiesPrecedence) 67parentPrecedenceKind = PrecedenceKind.Other; 86parentPrecedenceKind = PrecedenceKind.Other;
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (4)
30out PrecedenceKind precedence, out bool clarifiesPrecedence) 36ParenthesizedPatternSyntax parenthesizedPattern, out PrecedenceKind parentPrecedenceKind, out bool clarifiesPrecedence) 55parentPrecedenceKind = PrecedenceKind.Other; 64parentPrecedenceKind = PrecedenceKind.Other;
Microsoft.CodeAnalysis.CSharp.Workspaces (9)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\AbstractCSharpPrecedenceService.cs (9)
13public sealed override PrecedenceKind GetPrecedenceKind(OperatorPrecedence precedence) 16OperatorPrecedence.NullCoalescing => PrecedenceKind.Coalesce, 17OperatorPrecedence.ConditionalOr or OperatorPrecedence.ConditionalAnd => PrecedenceKind.Logical, 18OperatorPrecedence.LogicalOr or OperatorPrecedence.LogicalXor or OperatorPrecedence.LogicalAnd => PrecedenceKind.Bitwise, 19OperatorPrecedence.Equality => PrecedenceKind.Equality, 20OperatorPrecedence.RelationalAndTypeTesting => PrecedenceKind.Relational, 21OperatorPrecedence.Shift => PrecedenceKind.Shift, 22OperatorPrecedence.Additive or OperatorPrecedence.Multiplicative => PrecedenceKind.Arithmetic, 23_ => PrecedenceKind.Other,
Microsoft.CodeAnalysis.Features (43)
src\Analyzers\Core\Analyzers\AddRequiredParentheses\AbstractAddRequiredParenthesesDiagnosticAnalyzer.cs (24)
49private static PrecedenceKind CollapsePrecedenceGroups(PrecedenceKind precedenceKind) 52PrecedenceKind.Arithmetic or PrecedenceKind.Shift or PrecedenceKind.Bitwise => PrecedenceKind.Arithmetic, 53PrecedenceKind.Relational or PrecedenceKind.Equality => PrecedenceKind.Relational, 57protected static string GetEquivalenceKey(PrecedenceKind precedenceKind) 60PrecedenceKind.Arithmetic or PrecedenceKind.Shift or PrecedenceKind.Bitwise => "ArithmeticBinary", 61PrecedenceKind.Relational or PrecedenceKind.Equality => "RelationalBinary", 62PrecedenceKind.Logical or PrecedenceKind.Coalesce => "OtherBinary", 63PrecedenceKind.Other => "Other", 99var childPrecedenceKind = _precedenceService.GetPrecedenceKind(binaryLike); 100var parentPrecedenceKind = _precedenceService.GetPrecedenceKind(parentBinaryLike); 102var collapsedChildPrecedenceKind = CollapsePrecedenceGroups(childPrecedenceKind); 103var collapsedParentPrecedenceKind = CollapsePrecedenceGroups(parentPrecedenceKind); 150if (collapsedParentPrecedenceKind is PrecedenceKind.Coalesce) 155if (collapsedChildPrecedenceKind < PrecedenceKind.Coalesce && !IsAsExpression(binaryLike))
src\Analyzers\Core\Analyzers\ParenthesesDiagnosticAnalyzersHelper.cs (9)
23internal static CodeStyleOption2<ParenthesesPreference> GetLanguageOption(AnalyzerOptionsProvider options, PrecedenceKind precedenceKind) 26PrecedenceKind.Arithmetic or PrecedenceKind.Shift or PrecedenceKind.Bitwise => options.ArithmeticBinaryParentheses, 27PrecedenceKind.Relational or PrecedenceKind.Equality => options.RelationalBinaryParentheses, 28PrecedenceKind.Logical or PrecedenceKind.Coalesce => options.OtherBinaryParentheses, 29PrecedenceKind.Other => options.OtherParentheses,
src\Analyzers\Core\Analyzers\RemoveUnnecessaryParentheses\AbstractRemoveUnnecessaryParenthesesDiagnosticAnalyzer.cs (5)
45out PrecedenceKind precedence, out bool clarifiesPrecedence); 53out var precedence, out var clarifiesPrecedence)) 67case PrecedenceKind.Shift: 68case PrecedenceKind.Bitwise: 69case PrecedenceKind.Coalesce:
Wrapping\BinaryExpression\AbstractBinaryExpressionWrapper.cs (5)
52var precedence = _precedenceService.GetPrecedenceKind(binaryExpr); 53if (precedence == PrecedenceKind.Other) 96PrecedenceKind precedence, TBinaryExpressionSyntax binaryExpr) 104PrecedenceKind precedence, SyntaxNode expr, ArrayBuilder<SyntaxNodeOrToken> result) 127bool IsValidBinaryExpression(PrecedenceKind precedence, SyntaxNode? node)
Microsoft.CodeAnalysis.Workspaces (5)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Services\Precedence\IPrecedenceService.cs (5)
11/// <see cref="PrecedenceKind"/> values. The mapping is language specific. 13PrecedenceKind GetPrecedenceKind(int operatorPrecedence); 33PrecedenceKind IPrecedenceService.GetPrecedenceKind(int operatorPrecedence) 37public abstract PrecedenceKind GetPrecedenceKind(TOperatorPrecedence operatorPrecedence); 42public static PrecedenceKind GetPrecedenceKind(this IPrecedenceService service, SyntaxNode expression)