Bug Report T804409
Visible to All Users

Refactorings – The Boolean to Enum refactoring does not update call sites from other files

created 6 years ago

It seems the "Boolean to Enum" refactoring does not cascade to other classes. Call sites in the same file are updated correctly, but everything outside the file is left unchanged (leading to compile errors). This obviously only affects public and internal members, but thats one of the places where this refactoring would be very useful (but currently isn't).

C#
// File1.cs public class IveGotTheBool { public bool DoOrDont { get; } public IveGotTheBool(bool doOrDont) => DoOrDont = doOrDont; public static IveGotTheBool Create(bool doOrDont) => new IveGotTheBool(doOrDont); } // File2.cs public class DoesNotMatter { public static void Foo() { var b1 = new IveGotTheBool(true); var b2 = new IveGotTheBool(false); var b3 = IveGotTheBool.Create(true); var b4 = IveGotTheBool.Create(false); } }

When the refactoring is invoked on the constructor, the static Create method is updated, but the two constructor calls from the other file are not.

Comments (1)
DevExpress Support Team 6 years ago

    Hi Emanuel,
     
    Thank you for letting us know about the issue. I managed to reproduce it locally and passed this thread to our R&D queue.
    We will notify you once we have any results on it.

    Answers approved by DevExpress Support

    created 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.

      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.