[clang] [clang]get non-injected-class before finding instantiated decl (PR #70886)

Henrik G. Olsson via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 1 06:14:31 PDT 2023


================
@@ -429,3 +429,19 @@ namespace qualified_friend_no_match {
     friend void Y::f(double); // expected-error {{friend declaration of 'f' does not match any declaration in 'qualified_friend_no_match::Y'}}
   };
 }
+
+namespace gh21483 {
+template <typename I>
+struct B {
+  struct mixin {
+    int type;
+    friend void foo(B<I>::mixin it) {
+      (void)it.mixin::type;
----------------
hnrklssn wrote:

Why is `it.mixin` not an error? I thought `it` was of type `B<int>::mixin`, which has no `mixin` field.

https://github.com/llvm/llvm-project/pull/70886


More information about the cfe-commits mailing list