[C++20] [Module] Support reachable definition initially/partiallyThis patch introduces a new kind of ModuleOwnershipKind asReachableWhenImported. This intended the status for reachable describeda
[C++20] [Module] Support reachable definition initially/partiallyThis patch introduces a new kind of ModuleOwnershipKind asReachableWhenImported. This intended the status for reachable describedat: https://eel.is/c++draft/module.reach#3.Note that this patch is not intended to support all semantics aboutreachable semantics. For example, this patch didn't implement discardeddeclarations in GMF. (https://eel.is/c++draft/module.global.frag#3).This fixes: https://bugs.llvm.org/show_bug.cgi?id=52281 andhttps://godbolt.org/z/81f3ocjfW.Reviewed By: rsmith, iainsDifferential Revision: https://reviews.llvm.org/D113545
show more ...
Revert "[C++20] [Modules] Implement Reachable initiallly"This reverts commit a223ba0a697c1598b434cf2495c9cd9ec5640fc7.The previous commit don't contain additional information, which is bad.
[C++20] [Modules] Implement Reachable initiallly
Improve diagnostics for missing import / #include of module.Fix a few bugs where we would fail to properly determine header tomodule correspondence when determining whether to suggest a #include o
Improve diagnostics for missing import / #include of module.Fix a few bugs where we would fail to properly determine header tomodule correspondence when determining whether to suggest a #include orimport, and suggest a #include more often in language modes where thereis no import syntax. Generally, if the target is in a header withinclude guards or #pragma once, we should suggest either #including orimporting that header, and not importing a module that happens totextually include it.In passing, improve the notes we attach to the correspondingdiagnostics: calling an entity that we couldn't see "previous" isconfusing.
[c++2a] Improve diagnostic for use of declaration from another TU'sglobal module fragment.We know that the declaration in question should have been introduced bya '#include', so try to figure out
[c++2a] Improve diagnostic for use of declaration from another TU'sglobal module fragment.We know that the declaration in question should have been introduced bya '#include', so try to figure out which one and suggest it. Don'tsuggest importing the global module fragment itself!llvm-svn: 358631