brintos

brintos / llvm-project-archived public Read only

0
0
Text · 924 B · 70ff0f2 Raw
35 lines · plain
1.. title:: clang-tidy - llvm-prefer-isa-or-dyn-cast-in-conditionals2 3llvm-prefer-isa-or-dyn-cast-in-conditionals4===========================================5 6Looks at conditionals and finds and replaces cases of ``cast<>``,7which will assert rather than return a null pointer, and8``dyn_cast<>`` where the return value is not captured. Additionally,9finds and replaces cases that match the pattern ``var &&10isa<X>(var)``, where ``var`` is evaluated twice.11 12.. code-block:: c++13 14  // Finds these:15  if (auto x = cast<X>(y)) {}16  // is replaced by:17  if (auto x = dyn_cast<X>(y)) {}18 19  if (cast<X>(y)) {}20  // is replaced by:21  if (isa<X>(y)) {}22 23  if (dyn_cast<X>(y)) {}24  // is replaced by:25  if (isa<X>(y)) {}26 27  if (var && isa<T>(var)) {}28  // is replaced by:29  if (isa_and_nonnull<T>(var.foo())) {}30 31  // Other cases are ignored, e.g.:32  if (auto f = cast<Z>(y)->foo()) {}33  if (cast<Z>(y)->foo()) {}34  if (X.cast(y)) {}35