Current filter:
                                You should refresh the page.
                                  • Code Cleanup is incorrectly removing Curly braces from code for some else if statements. This changes the logic of the code and causes bugs.

                                    For Example the following code:

                                            public IEnumerable<bool> ValidateHeight(int? HeightFeet, int? HeightInches)
                                            {
                                                if (HeightFeet.HasValue)
                                                {
                                                    if (HeightInches.HasValue)
                                                    {
                                                        //Height Feet:
                                                        //1. Cannot be zero or less
                                                        //2. Cannot be greater than 8
                                                        if (HeightFeet.Value <= 0)
                                                        {
                                                            yield return false;
                                                        }
                                                        else if (HeightFeet.Value > 8)
                                                        {
                                                            yield return false;
                                                        }
                                                        else
                                                        {
                                                            //Height Inches:
                                                            //1. Cannot be less than zero
                                                            //2. Cannot be greater than 11
                                                            if (HeightInches.Value < 0)
                                                            {
                                                                yield return false;
                                                            }
                                                            else if (HeightInches.Value > 11)
                                                            {
                                                                yield return false;
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        yield return false;
                                                    }
                                                }
                                                else if (HeightInches.HasValue)
                                                {
                                                    yield return false;
                                                }
                                                yield break;
                                            }

                                    Gets Cleaned up to:
                                            public IEnumerable<bool> ValidateHeight(int? HeightFeet, int? HeightInches)
                                            {
                                                if (HeightFeet.HasValue)
                                                    if (HeightInches.HasValue)
                                                        //Height Feet:
                                                        //1. Cannot be zero or less
                                                        //2. Cannot be greater than 8
                                                        if (HeightFeet.Value <= 0)
                                                            yield return false;
                                                        else if (HeightFeet.Value > 8)
                                                            yield return false;
                                                        else
                                                            //Height Inches:
                                                            //1. Cannot be less than zero
                                                            //2. Cannot be greater than 11
                                                            if (HeightInches.Value < 0)
                                                            yield return false;
                                                        else if (HeightInches.Value > 11)
                                                            yield return false;
                                                        else
                                                            yield return false;
                                                    else if (HeightInches.HasValue)
                                                        yield return false;
                                                yield break;
                                            }

                                    It Should be:
                                            public IEnumerable<bool> ValidateHeight(int? HeightFeet, int? HeightInches)
                                            {
                                                if (HeightFeet.HasValue)
                                                {
                                                    if (HeightInches.HasValue)
                                                        //Height Feet:
                                                        //1. Cannot be zero or less
                                                        //2. Cannot be greater than 8
                                                        if (HeightFeet.Value <= 0)
                                                            yield return false;
                                                        else if (HeightFeet.Value > 8)
                                                            yield return false;
                                                        else
                                                        {
                                                            //Height Inches:
                                                            //1. Cannot be less than zero
                                                            //2. Cannot be greater than 11
                                                            if (HeightInches.Value < 0)
                                                                yield return false;
                                                            else if (HeightInches.Value > 11)
                                                                yield return false;
                                                            else
                                                                yield return false;
                                                        }
                                                }
                                                else if (HeightInches.HasValue)
                                                    yield return false;
                                                yield break;
                                            }

                                • Alexander K (DevExpress) 06.12.2018

                                  Hi Ben,

                                  Thank you for pointing out this issue and providing the code sample. I have reproduced this issue with the 'Apply 'Braces in statements' style' Code Cleanup rule. We are working on it and will inform you of our progress.

                                1 Solution

                                Creation Date Importance Sort by

                                Fixed: