style: clang-tidy: llvm-namespace-comment

This commit is contained in:
Henry Schreiner 2020-09-10 21:16:40 -04:00 committed by Henry Schreiner
parent d65e34d61d
commit 8dc31c7b29
12 changed files with 62 additions and 12 deletions

8
.clang-tidy Normal file
View File

@ -0,0 +1,8 @@
FormatStyle: file
Checks: '
-*,
llvm-namespace-comment,
'
HeaderFilterRegex: 'pybind11/.*h'

View File

@ -164,6 +164,30 @@ name, pre-commit):
pre-commit install
```
### Clang-Tidy
To run Clang tidy, the following recipe should work. Files will be modified in
place, so you can use git to monitor the changes.
```bash
docker run --rm -v $PWD:/pybind11 -it silkeh/clang:10
apt-get update && apt-get install python3-dev python3-pytest
cmake -S pybind11/ -B build -DCMAKE_CXX_CLANG_TIDY="$(which clang-tidy);-fix"
cmake --build build
```
### Include what you use
To run include what you use, install (`brew install include-what-you-use` on
macOS), then run:
```bash
cmake -S . -B build-iwyu -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=$(which include-what-you-use)
cmake --build build
```
The report is sent to stderr; you can pip it into a file if you wish.
### Build recipes
This builds with the Intel compiler (assuming it is in your path, along with a
@ -186,7 +210,6 @@ cmake -S pybind11/ -B build
cmake --build build
```
[pre-commit]: https://pre-commit.com
[pybind11.readthedocs.org]: http://pybind11.readthedocs.org/en/latest
[issue tracker]: https://github.com/pybind/pybind11/issues

View File

@ -17,3 +17,19 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: pre-commit/action@v2.0.0
clang-tidy:
name: Clang-Tidy
runs-on: ubuntu-latest
container: silkeh/clang:10
steps:
- uses: actions/checkout@v2
- name: Install requirements
run: apt-get update && apt-get install -y python3-dev python3-pytest
- name: Configure
run: cmake -S . -B build -DCMAKE_CXX_CLANG_TIDY="$(which clang-tidy);--warnings-as-errors=*"
- name: Build
run: cmake --build build -j 2

View File

@ -1929,7 +1929,7 @@ inline namespace literals {
String literal version of `arg`
\endrst */
constexpr arg operator"" _a(const char *name, size_t) { return arg(name); }
}
} // namespace literals
PYBIND11_NAMESPACE_BEGIN(detail)

View File

@ -35,7 +35,7 @@ namespace accessor_policies {
struct sequence_item;
struct list_item;
struct tuple_item;
}
} // namespace accessor_policies
using obj_attr_accessor = accessor<accessor_policies::obj_attr>;
using str_attr_accessor = accessor<accessor_policies::str_attr>;
using item_accessor = accessor<accessor_policies::generic_item>;
@ -976,7 +976,7 @@ inline namespace literals {
String literal version of `str`
\endrst */
inline str operator"" _s(const char *s, size_t size) { return {s, size}; }
}
} // namespace literals
/// \addtogroup pytypes
/// @{

View File

@ -58,7 +58,7 @@ public:
std::string name_;
const std::string &name() { return name_; }
};
}
} // namespace pets
struct MixGL { int i; MixGL(int i) : i{i} {} };
struct MixGL2 { int i; MixGL2(int i) : i{i} {} };

View File

@ -74,7 +74,7 @@ struct C {
# pragma GCC diagnostic pop
#endif
};
}
} // namespace test_exc_sp
TEST_SUBMODULE(constants_and_functions, m) {

View File

@ -58,7 +58,8 @@ public:
return py::none().release();
}
};
}}
} // namespace detail
} // namespace pybind11
// test_custom_caster_destruction
class DestructionTester {
@ -79,7 +80,8 @@ template <> struct type_caster<DestructionTester> {
return py::bool_(true).release();
}
};
}}
} // namespace detail
} // namespace pybind11
TEST_SUBMODULE(custom_type_casters, m) {
// test_custom_type_casters

View File

@ -73,7 +73,7 @@ namespace std {
// Not a good hash function, but easy to test
size_t operator()(const Vector2 &) { return 4; }
};
}
} // namespace std
// Not a good abs function, but easy to test.
std::string abs(const Vector2&) {

View File

@ -27,7 +27,8 @@ namespace pybind11 { namespace detail {
struct holder_helper<ref<T>> {
static const T *get(const ref<T> &p) { return p.get_ptr(); }
};
}}
} // namespace detail
} // namespace pybind11
// The following is not required anymore for std::shared_ptr, but it should compile without error:
PYBIND11_DECLARE_HOLDER_TYPE(T, std::shared_ptr<T>);

View File

@ -47,7 +47,7 @@ struct TplCtorClass {
namespace std {
template <>
struct hash<TplCtorClass> { size_t operator()(const TplCtorClass &) const { return 0; } };
}
} // namespace std
template <template <typename> class OptionalImpl, typename T>

View File

@ -117,7 +117,7 @@ namespace pybind11 {
static const void *get(const itype *src, const std::type_info*& type)
{ type = src ? Animal::type_of_kind(src->kind) : nullptr; return src; }
};
}
} // namespace pybind11
TEST_SUBMODULE(tagbased_polymorphic, m) {
py::class_<Animal>(m, "Animal")