1 #include <QtCore/QString>
2 QT_BEGIN_NAMESPACE
3 struct A { };
4 struct E { };
qHash(A)5 uint qHash(A) { return 0; }; // OK
6 namespace NS {
7 
8     struct B { struct B2 {}; struct B3 {}; };
qHash(B)9     uint qHash(B) { return 0; }; // OK
qHash(B::B2)10     uint qHash(B::B2) { return 0; }; // OK
11     namespace NS2 {
12         struct C {};
qHash(C)13         uint qHash(C) { return 0; }; // OK
14     }
qHash(NS2::C)15     uint qHash(NS2::C) { return 0; }; // Warn
qHash(::A)16     uint qHash(::A) { return 0; } // Warn
qHash(B::B3)17     uint qHash(B::B3) { return 0; }; // OK
18     enum class EnumClass
19     {
20         One
21     };
qHash(EnumClass)22     uint qHash(EnumClass) { return 0; } // OK
23 }
qHash(NS::B)24 uint qHash(NS::B) { return 0; } // Warn
qHash(NS::B *)25 uint qHash(NS::B *) { return 0; } // Warn
qHash(NS::B::B3)26 uint qHash(NS::B::B3) { return 0; }; // Warn
27 
28 
29 QT_END_NAMESPACE
qHash(E)30 uint qHash(E) { return 0; } // Warn
31