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