erichkeane wrote:

> This is going to be rather disruptive on downstream projects. At least we 
> should wait until after the release of clang 18 to merge it, to avoid endless 
> merge conflicts

For the most part, git will handle these pretty well on downstreams I think, 
and as they are declarations, I suspect this isn't going to be super tough of a 
merge conflict.  That said, waiting until after 18 is perhaps a good diea.

>  Table of contents added at the very beginning of `Sema`. Grouping is 
> reflected in Doxygen commands, so structure of API reference of `Sema` is 
> also significantly improved ([example from official 
> documentation](https://www.doxygen.nl/manual/examples/memgrp/html/class_memgrp___test.html)).

Neat!
> 
> While grouping is intentional, as well as each group consisting of `public` 
> declarations followed by `private` ones (without changing access in-between),

I MIGHT suggest private followed by public?  It is a not-uncommon pattern I've 
seen to have a private 'helper' class(or data member) defined inline, that is 
then used by inline-defined public functions.  

>Data members and inline function definitions in `Sema.h` complicate the 
>matter, since it's not obvious which group they belong to. Further work is 
>expected to refine contents and order of declarations.

This IS going to be complicated unfortunately.  Many of the function 
definitions at least are going to be 1-liners that are just calling into a 
different definition.  Data members you'll probably have to hunt down where 
they are used to see the relationship.

> What is also intentional is some kind of layering, where Concepts group 
> follows template groups, and ObjC, code completion, CUDA, HLSL, OpenACC, 
> OpenMP, and SYCL are all placed at the end of the file, after C and C++ parts 
> of `Sema`.

 
> Member initializer list of `Sema` in `Sema.cpp` is rewritten to reflect new 
> order of data members in order to avoid `-Wreorder-ctor`.

I wouldn't mind some sort of 'static_assert' to ensure that this doesn't 
accidentally increase the size of Sema or cause some sort of pessimization for 
layout.  I realize we're not particularly concerned about the size, but I could 
imagine goofy things going on.  

https://github.com/llvm/llvm-project/pull/82217
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to