llvm-project/clang/test/CodeCompletion
Sam McCall d8716cd7d3 [CodeCompletion] (mostly) fix completion in incomplete C++ ctor initializers.
C++ member function bodies (including ctor initializers) are first captured
into a buffer and then parsed after the class is complete. (This allows
members to be referenced even if declared later).

When the boundary of the function body cannot be established, its buffer is
discarded and late-parsing never happens (it would surely fail).
For code completion this is the wrong tradeoff: the point of the parse is to
generate completions as a side-effect.
Today, when the ctor body wasn't typed yet there are no init list completions.
With this patch we parse such an init-list if it contains the completion point.

There's one caveat: the parser has to decide where to resume parsing members
after a broken init list. Often the first clear recovery point is *after* the
next member, so that member is missing from completion/signature help etc. e.g.
  struct S {
    S() m  //<- completion here
    int maaa;
    int mbbb;
  }
Here "int maaa;" is treated as part of the init list, so "maaa" is not available
as a completion. Maybe in future indentation can be used to recognize that
this is a separate member, not part of the init list.

Differential Revision: https://reviews.llvm.org/D116294
2022-01-13 08:06:35 +01:00
..
Inputs
PR9728.cpp
accessibility-crash.cpp
accessibility.cpp
after-function-equals.cpp [CodeComplete] Add code completion after function equals 2020-07-01 12:51:25 +08:00
attr.cpp [CodeCompletion] Provide placeholders for known attribute arguments 2021-08-19 14:03:41 +02:00
auto.cpp
auto_type.c
bracket-decl.c
call.c
call.cpp [clang] Make signature help work with dependent args 2020-08-17 10:06:36 +02:00
comments.cpp
concepts.cpp [CodeComplete] Member completion for concept-constrained types. 2020-03-31 18:43:24 +02:00
constexpr.cpp
crash-func-decl.cpp
crash-func-init.cpp
crash-if-directive.cpp [clang][PreProcessor] Cutoff parsing after hitting completion point 2021-05-10 11:24:27 +02:00
crash-null-type.cpp
crash-skipped-bodies-template-inst.cpp
ctor-initializer.cpp [CodeCompletion] (mostly) fix completion in incomplete C++ ctor initializers. 2022-01-13 08:06:35 +01:00
ctor-signature.cpp [CodeCompletion] Signature help for aggregate initialization. 2022-01-04 16:00:22 +01:00
desig-init.cpp [CodeCompletion] Complete designators for fields in anonymous structs/unions 2022-01-11 00:58:49 +01:00
documentation.cpp
documentation.m
enable-if-attr-crash.cpp
end-of-file.cpp
end-of-ident-macro.cpp
end-of-ident.cpp
enum-preferred-type.cpp
enum-switch-case-qualified.cpp
enum-switch-case.c
enum-switch-case.cpp
function-overloads.cpp [clang][CodeComplete] Fix crash on ParenListExprs 2021-02-08 13:16:49 +01:00
function-templates.cpp [clangd] Show lambda signature for lambda autocompletions 2019-11-22 12:48:06 +01:00
functions.cpp
ignore-ns-level-decls.cpp
included-files.cpp [CodeCompletion] Generally consider header files without extension 2021-11-10 08:22:48 +01:00
included-frameworks.m
included-symlinks.cpp Another fix for 7d91633a2b 2020-02-19 17:15:11 -05:00
incomplete-member.cpp [clang][CodeComplete] Dont perform fallback completion for incomplete member ref 2020-04-06 20:08:24 +02:00
incomplete-ret-type.cpp
inside-macros.cpp
invalid-initialized-class.cpp [AST] Dont invalide VarDecl even the default initializaiton is failed. 2020-04-14 12:58:48 +02:00
keywords.cpp
lambdas.cpp [clangd] Show lambda signature for lambda autocompletions 2019-11-22 12:48:06 +01:00
macros-in-modules.c
macros-in-modules.m
macros.c
member-access-qualifiers.cpp
member-access.c [clang][CodeComplete] Fix crash on ParenListExprs 2021-02-08 13:16:49 +01:00
member-access.cpp [clang][CodeComplete] Perform approximate member search in bases 2022-01-12 10:56:06 +01:00
namespace-alias.cpp
namespace.cpp
nested-name-specifier.cpp
objc-expr.m
objc-member-access.m [Sema][CodeComplete][ObjC] Don't include arrow/dot fixits 2020-06-08 12:46:00 -04:00
objc-message.m
objc-message.mm
objc-protocol-member-access.m
operator.cpp
ordinary-name-cxx11.cpp [CodeComplete] Add code completion for using alias. 2020-06-26 15:55:45 +02:00
ordinary-name.c
ordinary-name.cpp [CodeComplete] Add code completion for using alias. 2020-06-26 15:55:45 +02:00
overrides.cpp
paren_locs.cpp
patterns.cpp [CodeComplete] Tweak completion for else. 2020-06-30 16:48:24 +01:00
pch-and-module.m
pragma-macro-token-caching.c Diagnose -Wunused-value based on CFG reachability 2021-09-28 10:00:15 -07:00
preamble.c
preferred-type.cpp
qualifiers-as-written.cpp
self-inits.cpp
signatures-crash.cpp
skip-auto-funcs.cpp
some_struct.h
stdin.c
tag.c
tag.cpp
template-signature.cpp [CodeCompletion] Signature help for template argument lists 2022-01-03 16:28:16 +01:00
templates.cpp
this-quals.cpp
truncation.c
truncation.c.h
uninstantiated_params.cpp
using-namespace.cpp
using.cpp
variadic-template.cpp [clang][clangd] Improve signature help for variadic functions. 2021-11-18 15:50:47 +01:00