clang-tidy currently reports false positives even for simple cases such as:
struct S { using X = S; X &operator=(const X&) { return *this; } };
This is due to the fact that the misc-unconventional-assign-operator check fails to look at the canonical types. This patch fixes this behavior.