示例#1
0
        public static bool IsDefault(ISwitchExpressionArmOperation arm)
        {
            if (arm.Pattern.Kind == OperationKind.DiscardPattern)
            {
                return(true);
            }

            if (arm.Pattern is IDeclarationPatternOperation declarationPattern)
            {
                return(declarationPattern.MatchesNull);
            }

            return(false);
        }
示例#2
0
        private void AnalyzeExpression(OperationAnalysisContext obj)
        {
            ISwitchExpressionOperation operation = (ISwitchExpressionOperation)obj.Operation;

            if (operation.Arms.Length != 1)
            {
                return;
            }

            ISwitchExpressionArmOperation caseOperation = operation.Arms[0];

            if (caseOperation.Pattern.Kind == OperationKind.DiscardPattern)
            {
                obj.ReportDiagnostic(Diagnostic.Create(Rule, operation.Arms[0].Syntax.GetLocation()));
                return;
            }
        }
示例#3
0
 public virtual void VisitSwitchExpressionArm(ISwitchExpressionArmOperation operation)
 {
     DefaultVisit(operation);
 }