Bug Report T698777
Visible to All Users

Static Code Analysis - The "Possible System.NullReferenceException" diagnostic works incorrectly in switch statements with the pattern type

created 6 years ago

Hello DX,

It seems CR reports this false positive:

C#
Code Issues (21,21): info CRR0027: The 'iSomething' expression is not checked for null and can cause System.NullReferenceException

In a case like this:

C#
private static void Method(object arg) { switch (arg) { case ISomething iSomething: iSomething.DoSomething(); // <-- CR suggest to do a null check here break; } }

Also note the typo in the description of CRR0027 in this table:
https://documentation.devexpress.com/CodeRushForRoslyn/116021/Static-Code-Analysis/Analyzers-Library

Alex

Comments (2)
DevExpress Support Team 6 years ago

    Alex,

    Thank you for the report and sample code. I have reproduced the issue locally. Please give us some time to fix it.

    DevExpress Support Team 6 years ago

      Also thanks for noticing the typo in the documentation, we will correct it.

      Answers approved by DevExpress Support

      created 6 years ago (modified 6 years ago)

      We have fixed the issue described in this ticket and will include the fix in our next maintenance update. To apply this solution before the official update, request a hotfix by clicking the corresponding link for product versions you require.

      Note: Hotfixes may be unavailable for beta versions and updates that are about to be released.

        Comments (2)

          Working perfectly in 18.2.5. Thanks for the quick fix!

          Alex

          DevExpress Support Team 6 years ago

            Alex,

            I am happy to hear it works well now on your side.

            Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

            Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.