You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[CIR][NFC] Replace uses of isa/dyn_cast/cast/... member functions (#703)
Mechanical rewrite to use the corresponding free functions; fixes#702.
I used a slightly modified version of the `clang-tidy` check provided in
https://discourse.llvm.org/t/psa-deprecating-cast-isa-methods-in-some-classes/70909
to rewrite the C++ source files, regular expressions for the TableGen
files, and manual cleanups where needed (e.g. chains like
`x.foo().cast<A>().bar().cast<B>()`)
I applied the following heuristic to determine which namespace prefix to
use:
- If the target type is not qualified, and the TU has `using namespace
mlir` or the code is inside the `mlir` namespace -> use a plain
`isa`/`cast`/...
- Exception: Always qualify inside custom types and attributes, because
their base classes define the very members we want to get rid of.
- Else. i.e. the target type is qualified as `::mlir::` or `mlir::`, use
that prefix.
The `clang-tidy` check also rewrote `dyn_cast_or_null` to
`dyn_cast_if_present`. I think that's useful because the former variant
is going to be deprecated as well in the future.
I'm using `-Werror=deprecated-declarations` to test the change (see
6b7420a); this required also changing
two occurrences of `StringRef::equals` to `==`. I could also just drop
the commit here; maybe we want to enable `-Werror` in general (there
aren't too many other warnings left in the codebase).
---------
Signed-off-by: Julian Oppermann <[email protected]>
0 commit comments