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