diff --git a/src/ContextUtils.h b/src/ContextUtils.h --- a/src/ContextUtils.h +++ b/src/ContextUtils.h @@ -98,8 +98,8 @@ return nullptr; q = TypeUtils::pointeeQualType(q); - // Check if it's a class, struct or union - clang::CXXRecordDecl *rec = q->getAsCXXRecordDecl(); + // Check if it's a class, struct, union or enum + clang::TagDecl *rec = q->getAsTagDecl(); if (rec) return namespaceForDecl(rec); diff --git a/tests/qhash-namespace/main.cpp b/tests/qhash-namespace/main.cpp --- a/tests/qhash-namespace/main.cpp +++ b/tests/qhash-namespace/main.cpp @@ -15,6 +15,11 @@ uint qHash(NS2::C) { return 0; }; // Warn uint qHash(::A) { return 0; } // Warn uint qHash(B::B3) { return 0; }; // OK + enum class EnumClass + { + One + }; + uint qHash(EnumClass) { return 0; } // OK } uint qHash(NS::B) { return 0; } // Warn uint qHash(NS::B *) { return 0; } // Warn diff --git a/tests/qhash-namespace/main.cpp.expected b/tests/qhash-namespace/main.cpp.expected --- a/tests/qhash-namespace/main.cpp.expected +++ b/tests/qhash-namespace/main.cpp.expected @@ -1,7 +1,7 @@ qhash-namespace/main.cpp:15:5: warning: Move qHash(NS::NS2::C) to NS::NS2 namespace for ADL lookup [-Wclazy-qhash-namespace] qhash-namespace/main.cpp:16:5: warning: Move qHash(A) out of namespace NS [-Wclazy-qhash-namespace] -qhash-namespace/main.cpp:19:1: warning: Move qHash(NS::B) into NS namespace for ADL lookup [-Wclazy-qhash-namespace] -qhash-namespace/main.cpp:20:1: warning: Move qHash(NS::B *) into NS namespace for ADL lookup [-Wclazy-qhash-namespace] -qhash-namespace/main.cpp:21:1: warning: Move qHash(NS::B::B3) into NS namespace for ADL lookup [-Wclazy-qhash-namespace] -qhash-namespace/main.cpp:22:1: warning: Move qHash(NS::IntFoo) into NS namespace for ADL lookup [-Wclazy-qhash-namespace] -qhash-namespace/main.cpp:25:1: warning: qHash(E) must be declared before QT_END_NAMESPACE [-Wclazy-qhash-namespace] +qhash-namespace/main.cpp:24:1: warning: Move qHash(NS::B) into NS namespace for ADL lookup [-Wclazy-qhash-namespace] +qhash-namespace/main.cpp:25:1: warning: Move qHash(NS::B *) into NS namespace for ADL lookup [-Wclazy-qhash-namespace] +qhash-namespace/main.cpp:26:1: warning: Move qHash(NS::B::B3) into NS namespace for ADL lookup [-Wclazy-qhash-namespace] +qhash-namespace/main.cpp:27:1: warning: Move qHash(IntFoo) into NS namespace for ADL lookup [-Wclazy-qhash-namespace] +qhash-namespace/main.cpp:30:1: warning: qHash(E) must be declared before QT_END_NAMESPACE [-Wclazy-qhash-namespace]