The Annotator base class has some standard type propagation rules that might (a) not be necessary anymore, and (b) might be unsound. For example, in VisitImplicitCastExpr, we propagate the annotation from the cast-from expression to the cast-to type.
Is this necessary now, or is Clang taking care of propagating in obvious situations for us? Check this for each of the rules.
If we do need to do it manually, we probably need to do it for the entire type tree—not just the outermost annotation. For example, when casting from a pointer type to the pointer type, propagate any annotation on the pointed-to type.
The
Annotator
base class has some standard type propagation rules that might (a) not be necessary anymore, and (b) might be unsound. For example, inVisitImplicitCastExpr
, we propagate the annotation from the cast-from expression to the cast-to type.