ChuanqiXu9 wrote: > > But in the current impl, for module units containing headers, how can > > clangd detect the change in the included header for the module units? > > I checked, for me this scenario works correctly. I used example provided here > #181770: > > * modifications of exported structure (added field) > * add an include at the end of M.cppm >
No, the example in my mind is, ```C++ // header.h #pragma once constexpr int vvv = 43; ``` ```C++ module; #include "header.h" export module m; export constexpr int mm = vvv; ``` We should be able to see the mm's value as 43. And after we change the value to 44 or 45 in header.h, we should be able to see mm's value be the corresponding value. > Behavior should be the same as for includes, which are outside the preamble > section (e.g. include directive in the middle of the file), so I believe > everything should be ok. No, modules have different mechanism. We can't assume header will have similar affect. But after all, the mechanism comes from the `canReuse` interface from the preamble. And now you just simply not building the preamble, I believe the `canReuse` interface will stop working and clangd won't detect the changes. https://github.com/llvm/llvm-project/pull/189284 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
