before this change, user need to click into the details for more
details on the formatting issue identified by the lint workflow.
after this change, the workflow pastes the details with a comment,
to provide more specific details on the formatting issue if any.
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
* use clang-format v17.0.6 to reformat the tree
* tweak some places so that clang-format does not mutate the layout
of code too much
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
before this change, format_as() is unable to format a type which
has `auto format_as() -> const another_type&`, and `another_type`
is formattable. because `format_as_result` maps the result type
as it is, and the compiler refuses to compile
`static_cast<T*>(nullptr)`, where T is a reference type. but
it would be handy if we could use `format_as()` to format types
which, for instance, owns / inherit from a formattable type, and
delegate the formatter to these variables instead without creating
a copy of them.
in this change:
* instruct `format_as_result` to map the
result type to the decayed type, so that `type` can be the decayed
type of result type, and this also enables `type` to be formattable,
as long as the decayed type is formattable.
* corresponding test is added to format-test.cc
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
there is chance that the distro install python as python3, in that case
the shebang of
```
```
in build.py won't work.
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
this allows us to use sphinx-build-3, as user might already in a python3
world, and distros, like fedora 28, tend to add a "-3" suffix to sphinx-build.
Signed-off-by: Kefu Chai <tchaikov@gmail.com>