[clang] [clang-tools-extra] Add code completion for C++20 keywords. (PR #107982)

via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 11 06:32:44 PDT 2024


================
@@ -2186,6 +2197,45 @@ AddOrdinaryNameResults(SemaCodeCompletion::ParserCompletionContext CCC,
       } else {
         Results.AddResult(Result("template", CodeCompletionResult::RK_Keyword));
       }
+
+      if (SemaRef.getLangOpts().CPlusPlus20 &&
+          SemaRef.getLangOpts().CPlusPlusModules) {
+        // export
+        Results.AddResult(Result("export", CodeCompletionResult::RK_Keyword));
+
+        if (SemaRef.CurContext->isTranslationUnit()) {
----------------
16bit-ykiko wrote:

I push a new commit and try to make completion for module related keywords more context-sensitive. 

And found something strange: https://godbolt.org/z/YM9dhEKKe

```cpp
module;

export module M;
                ^
``` 

If I try to run code completion at `^`, only get a compiler error.

```
<source>:3:1: error: export declaration can only be used within a module purview
    3 | export mo<U+0000>dule M;
```

The error shouldn't occur, right?

https://github.com/llvm/llvm-project/pull/107982


More information about the cfe-commits mailing list