MyDeveloperDay marked 7 inline comments as done. MyDeveloperDay added inline comments.
================ Comment at: clang/lib/Format/UnwrappedLineParser.cpp:2281 + if (FormatTok->Tok.is(tok::kw_requires)) + parseRequires(); +} ---------------- miscco wrote: > I believe this should be `parseConstraintExpression` because that is the > term of art in the standard. > > The requires expression is what is the `requieres { }` and that can be part > of an constraint expression I'm making some of these changes, the problem is with the form `concept id = Foo<T> && Bar<T>` in this case the `Foo<T> && Bar<T>` will be processed by the `parseStructualElement()` and this gets confused with the && being a `TT_PointerOrRefernce` and not a `TT_BinaryOperator` and that throws everything out. I think parseStructualElement() is thinking `Foo<T> &&` is part of `foo(Foo<T> &&abc);` and not `Foo<T> && abc<T>` We need to know we are in a concept expression ================ Comment at: clang/lib/Format/UnwrappedLineParser.cpp:2314 + nextToken(); + if (FormatTok->Tok.is(tok::less)) { + while (!FormatTok->Tok.is(tok::greater)) { ---------------- miscco wrote: > miscco wrote: > > I guess you could use `parseBracedList(/*ContinueOnSemicolons=*/false, > > /*IsEnum=*/false,/*ClosingBraceKind=*/tok::greater);` here? > To be more specific, I am concerned what happens if you have multiple > template arguments where a linebreak should occur. Is this still happening > here? > > > ``` > template <typename someLongTypename1, typename someLongTypename2> > concept someVeryLongConceptName = > someVeryLongConstraintName1<someLongTypename1 && someLongTypename2>; > ``` This is formatted as ``` template <typename someLongTypename1, typename someLongTypename2> concept someVeryLongConceptName = someVeryLongConstraintName1<someLongTypename1 && someLongTypename2>; ``` CHANGES SINCE LAST ACTION https://reviews.llvm.org/D79773/new/ https://reviews.llvm.org/D79773 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits