================ @@ -0,0 +1,32 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %s + +namespace GH49093 { + class B { + public: + static int a() { return 0; } // expected-note {{member is declared here}} + decltype(a< 0 >(0)) test; // expected-error {{member 'a' used before its declaration}} ---------------- a-tarasyuk wrote:
@erichkeane @AaronBallman Thanks for the feedback. @AaronBallman The recovery checker attempts to diagnose an empty lookup and also tries to handle dependent member lookups, which detect them as being used before declarations https://github.com/llvm/llvm-project/blob/df935ff4eca91013553edbf3ca1d45b568f6709f/clang/lib/Sema/SemaExpr.cpp#L2473-L2490 https://github.com/llvm/llvm-project/blob/df935ff4eca91013553edbf3ca1d45b568f6709f/clang/lib/Sema/SemaExpr.cpp#L2425 Is it acceptable to handle a lookup result that isn’t a template but uses explicit templated arguments at this stage? https://github.com/llvm/llvm-project/pull/107786 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits