erichkeane added inline comments.

================
Comment at: clang/lib/Sema/SemaConcept.cpp:1065-1068
   assert(TC &&
          "TPL must have a template type parameter with a type constraint");
   auto *Constraint =
+      cast<ConceptSpecializationExpr>(TC->getImmediatelyDeclaredConstraint());
----------------
aaron.ballman wrote:
> mlychkov wrote:
> > aaron.ballman wrote:
> > > If we're going to be touching this code, there's more suspect code here 
> > > that needs to be cleaned up a bit. Directly above this is:
> > > ```
> > >   const TypeConstraint *TC =
> > >       cast<TemplateTypeParmDecl>(TPL->getParam(0))->getTypeConstraint();
> > >   assert(TC &&
> > >          "TPL must have a template type parameter with a type 
> > > constraint");
> > > ```
> > > That assertion can be removed entirely -- if the `cast<>` fails, it 
> > > doesn't return null, it asserts.
> > Actually, cast return nonnull value, but
> >    TC = "cast_result"->getTypeConstraint();
> > and TC may become nullptr, I suppose.
> Good catch! I think we should add the assertion on `TC` being nonnull back. 
> I'll take care of that.
Ooh, good catch!  I definitely missed that when suggesting removing the assert. 
 @aaron.ballman  can you re-add the assert on 1065?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D108481/new/

https://reviews.llvm.org/D108481

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to