Currently, we are unable to inherit from a chain of parent configs where the outermost parent config has BasedOnStyle: InheritParentConfig set. This patch adds a test case for this scenario, and adds support for it.
To illustrate, suppose we have the following directory structure:
- e/ |- .clang-format (BasedOnStyle: InheritParentConfig) <-- outermost config |- sub/ |- .clang-format (BasedOnStyle: InheritParentConfig) |- sub/ |- .clang-format (BasedOnStyle: InheritParentConfig) |- code.cpp
Now consider what happens when we run clang-format --style=file /e/sub/sub/code.cpp.
Without this patch, on a release build, only the innermost config will be applied. On a debug build, clang-format crashes due to an assertion failure.
With this patch, clang-format behaves as we'd expect, applying all 3 configs.