My understanding is that clang::SubstTemplateTypeParmType::getReplacementType always returns a canonical type, i.e., information about typedefs is erased. Starting with a clang::Expr, is there another way to determine its non-erased type? Stephan