C++: Factor out transparent conversions in their own predicate

This commit is contained in:
Jeroen Ketema
2025-07-04 14:09:34 +02:00
parent e68d10119b
commit b185cc8b95

View File

@@ -909,17 +909,17 @@ class TranslatedTransparentUnaryOperation extends TranslatedTransparentExpr {
}
}
private predicate isTransparentConversion(Conversion expr) {
expr instanceof ParenthesisExpr or
expr instanceof ReferenceDereferenceExpr or
expr instanceof ReferenceToExpr or
expr instanceof C11GenericExpr
}
class TranslatedTransparentConversion extends TranslatedTransparentExpr {
override Conversion expr;
TranslatedTransparentConversion() {
(
expr instanceof ParenthesisExpr or
expr instanceof ReferenceDereferenceExpr or
expr instanceof ReferenceToExpr or
expr instanceof C11GenericExpr
)
}
TranslatedTransparentConversion() { isTransparentConversion(expr) }
override TranslatedExpr getOperand() { result = getTranslatedExpr(expr.getExpr()) }
}