erichkeane 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; ---------------- alexander-shaposhnikov wrote: > 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; > ``` > 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; > ``` Alright, well, I should have time later in the week to poke at this, perhaps I can come up with something better? I DO remember self-friend is a little wacky, and I spent a bunch of time on it last time. 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