57 references to OperatorPrecedence
Microsoft.CodeAnalysis.CSharp.CodeStyle (57)
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryExpressionParenthesesDiagnosticAnalyzer.cs (3)
50var innerPrecedence = inner.GetOperatorPrecedence(); 51var innerIsSimple = innerPrecedence is OperatorPrecedence.Primary or 52OperatorPrecedence.None;
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (3)
47var innerPrecedence = inner.GetOperatorPrecedence(); 48var innerIsSimple = innerPrecedence is OperatorPrecedence.Primary or 49OperatorPrecedence.None;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs (19)
693public static OperatorPrecedence GetOperatorPrecedence(this ExpressionSyntax expression) 717return OperatorPrecedence.Primary; 734return OperatorPrecedence.Unary; 740return OperatorPrecedence.Range; 748return OperatorPrecedence.Multiplicative; 755return OperatorPrecedence.Additive; 762return OperatorPrecedence.Shift; 774return OperatorPrecedence.RelationalAndTypeTesting; 781return OperatorPrecedence.Equality; 787return OperatorPrecedence.LogicalAnd; 793return OperatorPrecedence.LogicalXor; 799return OperatorPrecedence.LogicalOr; 805return OperatorPrecedence.ConditionalAnd; 811return OperatorPrecedence.ConditionalOr; 817return OperatorPrecedence.NullCoalescing; 823return OperatorPrecedence.Conditional; 841return OperatorPrecedence.AssignmentAndLambdaExpression; 844return OperatorPrecedence.Switch; 847return OperatorPrecedence.None;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (17)
412var precedence = expression.GetOperatorPrecedence(); 413var parentPrecedence = parentExpression.GetOperatorPrecedence(); 414if (precedence == OperatorPrecedence.None || parentPrecedence == OperatorPrecedence.None) 731var patternPrecedence = pattern.GetOperatorPrecedence(); 732if (patternPrecedence is OperatorPrecedence.Primary or OperatorPrecedence.Unary) 767var precedence = pattern.GetOperatorPrecedence(); 768var parentPrecedence = parentPattern.GetOperatorPrecedence(); 769if (precedence == OperatorPrecedence.None || parentPrecedence == OperatorPrecedence.None) 779public static OperatorPrecedence GetOperatorPrecedence(this PatternSyntax pattern) 789return OperatorPrecedence.Primary; 793return OperatorPrecedence.Unary; 797return OperatorPrecedence.ConditionalAnd; 800return OperatorPrecedence.ConditionalOr; 806return OperatorPrecedence.None;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\AbstractCSharpPrecedenceService.cs (13)
10internal abstract class AbstractCSharpPrecedenceService<TSyntax> : AbstractPrecedenceService<TSyntax, OperatorPrecedence> 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,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\CSharpExpressionPrecedenceService.cs (1)
20public override OperatorPrecedence GetOperatorPrecedence(ExpressionSyntax expression)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\CSharpPatternPrecedenceService.cs (1)
20public override OperatorPrecedence GetOperatorPrecedence(PatternSyntax pattern)