alexander-shaposhnikov added inline comments.
================ Comment at: clang/lib/Sema/SemaConcept.cpp:773 + // ConstrExpr for the inner template will properly adjust the depths. + if (isa<CXXRecordDecl>(ND) && isa<CXXRecordDecl>(OtherND)) + ForConstraintInstantiation = true; ---------------- erichkeane wrote: > Hmm... this seems really strange to have to do. `ForConstraintInstantiation` > shouldn't be used here, the point of that is to make sure we 'keep looking > upward' once we hit a spot we normally stop with. What exactly is the issue > that you end up running into here? Perhaps I can spend some time debugging > what we should really be doign. yeah, I agree. I haven't found a proper solution or at least a better workaround (but would be happy to). This kicks in for the case ``` template <class T0> concept Constraint = true; template<Constraint T1> struct Iterator { template <Constraint T2> friend class Iterator; void operator*(); }; Iterator<char*> I2; ``` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146178/new/ https://reviews.llvm.org/D146178 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits