This handles cases like this:
typedef int& IntRef;
void mutate(IntRef);
void f() {
int x;
mutate(x);
}where the param type is a sugared type (TypedefType) instead of a
reference type directly.
Note that another category of similar but different cases are already
handled properly before:
typedef int Int;
void mutate(Int&);
void f() {
int x;
mutate(x);
}