Skip to content

[clang-format] inner final classes are not formatted correctly #153443

@joelhock

Description

@joelhock

clang-format version 20.1.0 (https://github.com/llvm/llvm-project.git 24a30da) correctly formatted inner classes marked final:

class Outer {
    class Inner : public Base,
                  public Base2,
                  public Base3,
                  public Base4,
                  public Base5,
                  public Base6 {
        Inner();
    };

    class InnerFinal final : public Base,
                             public Base2,
                             public Base3,
                             public Base4,
                             public Base5,
                             public Base6 {
        InnerFinal();
    };

    struct InternNameLongerrrr final
      : BaseClasssssssssssssssssssssssssssssssssssss {
        InternNameLongerrrr();
    };
};

whereas clang-format version 21.1.0-rc3 (https://github.com/llvm/llvm-project.git 6096d35) misformats the inner classes marked final:

class Outer {
  class Inner : public Base,
                public Base2,
                public Base3,
                public Base4,
                public Base5,
                public Base6 {
    Inner();
  };

  class InnerFinal final : public Base, public Base2, public Base3,
      public Base4, public Base5, public Base6 {
    InnerFinal();
  };

  struct InternNameLongerrrr
      final : BaseClasssssssssssssssssssssssssssssssssssss {
    InternNameLongerrrr();
  };
};

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions