CVR qualifiers not being removed

I have this statement:

const MyType *D = new MyType;

I would expect ASTContext::hasSameUnqualifiedType(VarDecl->getType(), NewExpr->getType()) to return true but it doesn't. I've tried manually to strip off the const qualifier with various other member functions of QualType and Type with no luck. It seems the Type::CanonicalType has the const baked in and every 'get-unqualified' function just returns that internal canonical type with the const stuck in there. Clearly my mental model of how this works is broken. Can someone sort me out?

Coffee was the necessary solution here. Sorry for the noise. My brain was seeing:

Const MyType *D =...

As

MyType * const D = ...