jansvoboda11 added inline comments.

================
Comment at: clang/lib/Frontend/CompilerInstance.cpp:2017
     // migrate off of Foo.Private syntax.
-    if (!Sub && PP->getLangOpts().ImplicitModules && Name == "Private" &&
-        Module == Module->getTopLevelModule()) {
+    if (!Sub && Name == "Private" && Module == Module->getTopLevelModule()) {
       SmallString<128> PrivateModule(Module->Name);
----------------
jansvoboda11 wrote:
> benlangmuir wrote:
> > Not sure if this is a good idea, but have you considered having the scanner 
> > provide the module with `Foo.Private=` syntax instead? It would be nice to 
> > keep this hack contained to implicit builds if we can.
> Interesting idea, that didn't occur to me. What implementation strategy are 
> you thinking of?
> 
> If we want to avoid this hack, it seems like we'd need to pass `ModuleIdPath 
> ImportPath` instead of `StringRef ModuleName` to 
> `findOrCompileModuleAndReadAST()` and friends. That would allow us to look up 
> the most specific `-fmodule-file=` argument. I'm not convinced changing 
> multiple functions (and then changing them back when we don't need the hack) 
> is better than extending the hack to explicit modules.
> 
> The upside is that we wouldn't need to report `M` as a dependency. WDYT?
Another thing to consider: implicit build would need to propagate the 
information that module `Foo_Private` needs to be spelled on the command-line 
as `Foo.Private` to the scanner.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D132502

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

Reply via email to