SubstTemplateTypeParmType and non-canonical replacement type

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