llvm-project/clang/test/Index
Haojian Wu 8222107aa9 [AST] Preserve the type in RecoveryExprs for broken function calls.
RecoveryExprs are modeled as dependent type to prevent bogus diagnostics
and crashes in clang.

This patch allows to preseve the type for broken calls when the
RecoveryEprs have a known type, e.g. a broken non-overloaded call, a
overloaded call when the all candidates have the same return type, so
that more features (code completion still work on "take2args(x).^") still
work.

However, adding the type is risky, which may result in more clang code being
affected leading to new crashes and hurt diagnostic, and it requires large
effort to minimize the affect (update all sites in clang to handle errorDepend
case), so we add a new flag (off by default) to allow us to develop/test
them incrementally.

This patch also has some trivial fixes to suppress diagnostics (to prevent regressions).

Tested:

all existing tests are passed (when both "-frecovery-ast", "-frecovery-ast-type" flags are flipped on);

Reviewed By: sammccall

Subscribers: rsmith, arphaman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79160
2020-05-11 08:46:18 +02:00
..
Core [Index/USRGeneration] Make sure that ObjC properties in categories also get namescoped properly for USR generation 2020-03-07 15:07:37 -08:00
Inputs [Wdocumentation] Implement \anchor 2019-12-21 14:52:21 +01:00
USR
reparse-with-remaps
skip-parsed-bodies [libclang][index][NFC] Fix test for skipping already parsed function bodies 2019-08-23 22:51:23 +00:00
IBOutletCollection.m
KeepGoingWithLotsOfErrors.mm
TestClassDecl.m
TestClassForwardDecl.m
allow-editor-placeholders.cpp
annotate-attribute.cpp
annotate-comments-availability-attrs.cpp
annotate-comments-objc.m
annotate-comments-preprocessor.c
annotate-comments-property-accessor.m
annotate-comments-typedef.m [AST] Attach comment in `/** doc */ typedef struct A {} B` to B as well as A. 2019-11-18 11:09:23 +01:00
annotate-comments-unterminated.c
annotate-comments.cpp
annotate-context-sensitive.cpp
annotate-deep-statements.cpp Replace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better 2019-05-10 17:57:22 +00:00
annotate-literals.m
annotate-macro-args.h
annotate-macro-args.m
annotate-module.m
annotate-nested-name-specifier.cpp
annotate-operator-call-expr.cpp
annotate-parameterized-classes.m
annotate-subscripting.m
annotate-tokens-cxx0x.cpp
annotate-tokens-include.c
annotate-tokens-include.h
annotate-tokens-pp.c
annotate-tokens-preamble.c
annotate-tokens-unexposed.cpp
annotate-tokens-with-default-args.cpp
annotate-tokens-with-default-args.h
annotate-tokens.c
annotate-tokens.cpp
annotate-tokens.m
annotate-toplevel-in-objccontainer.m
annotate-toplevel-in-objccontainer.m.h
arc-annotate.m
arc-complete.m
asm-attribute.c
attributes-cuda.cu
attributes.c
availability.c
availability.cpp
blocks.c
boxed-exprs.h
boxed-exprs.m
c-index-api-loadTU-test.m
c-index-getCursor-pp.c
c-index-getCursor-test.m
c-index-pch.c
c-index-redecls.c
c-index-unsupported-warning-test.c
cindex-from-source.m
cindex-on-invalid-usrs.m
cindex-on-invalid.m
cindex-test-inclusions.c
code-completion-skip-bodies.cpp
code-completion.cpp
codecompletion-chained.cpp
comment-c-decls.c
comment-cplus-decls.cpp
comment-cplus-template-decls.cpp
comment-cplus11-specific.cpp
comment-custom-block-command.cpp
comment-lots-of-unknown-commands.c
comment-misc-tags.m
comment-objc-decls.m Clean up ObjCPropertyDecl printing 2019-04-08 19:52:45 +00:00
comment-objc-parameterized-classes.m
comment-redeclarations.cpp [clang] Refactor doc comments to Decls attribution 2019-08-13 18:11:44 +00:00
comment-to-html-xml-conversion-with-original-literals.cpp
comment-to-html-xml-conversion.cpp [Wdocumentation] Implement \anchor 2019-12-21 14:52:21 +01:00
comment-unqualified-objc-pointer.m Clean up ObjCPropertyDecl printing 2019-04-08 19:52:45 +00:00
comment-with-preamble.c
comment-xml-schema.c [Wdocumentation] Implement \anchor 2019-12-21 14:52:21 +01:00
compile_commands.json
complete-access-checks-crash.cpp
complete-access-checks.cpp
complete-and-plugins.c
complete-arrow-dot.cpp
complete-at-EOF.c
complete-at-directives.m
complete-at-exprstmt.m
complete-available.m
complete-block-properties.m
complete-block-property-assignment.m
complete-blocks.m
complete-cached-globals.cpp
complete-call.cpp
complete-categories.m
complete-constructor-params.cpp
complete-ctor-inits.cpp
complete-cxx-inline-methods.cpp
complete-declarators.cpp
complete-declarators.m
complete-designated-initializer.m
complete-documentation-properties.m
complete-documentation-templates.cpp
complete-documentation.cpp
complete-enums.c
complete-enums.cpp
complete-exprs.c This reverts commit 632a36bfcfc8273c1861f04ff6758d863c47c784. 2019-07-13 06:27:35 +00:00
complete-exprs.cpp
complete-exprs.m
complete-functor-call.cpp
complete-hiding.c
complete-in-invalid-method.m
complete-in-stringify.c
complete-interfaces.m
complete-ivar-access.m
complete-kvc.m
complete-lambdas.cpp
complete-lambdas.mm
complete-macro-args.c
complete-macros.c [CodeComplete] Fix ASTUnit cached completion of macros from preamble, broken in r342528 2019-07-18 07:17:49 +00:00
complete-macros.h [CodeComplete] Fix ASTUnit cached completion of macros from preamble, broken in r342528 2019-07-18 07:17:49 +00:00
complete-member-access.m
complete-memfunc-cvquals.cpp
complete-method-decls.m
complete-module-undef.m
complete-modules.m
complete-natural.m
complete-objc-message-id.m
complete-objc-message.m
complete-optional-params.cpp
complete-parameterized-classes.m
complete-pch-skip.cpp
complete-pch.m
complete-pointer-and-reference-to-functions.cpp
complete-preamble.cpp
complete-preamble.h
complete-preprocessor.m
complete-properties.m
complete-property-flags.m
complete-property-getset.m
complete-protocols.m
complete-qualified-cached.cpp [ASTUnit] Attempt to unbreak Windows buildbots after r366448 2019-07-18 16:24:09 +00:00
complete-qualified.cpp
complete-recovery.m
complete-stmt.c [CodeComplete] Include more text into typed chunks of pattern completions 2019-06-04 09:26:08 +00:00
complete-super.cpp
complete-super.m
complete-switch.c
complete-synthesized.m
complete-tabs.c
complete-template-friends-defined.cpp
complete-template-keywords.cpp
complete-templates.cpp
complete-type-factors.m
complete-unterminated.c
complete-with-annotations.cpp
coroutines.cpp
crash-preamble-classes.cpp
crash-recovery-code-complete.c
crash-recovery-modules.m Make test check position independent as they sometimes come out reversed. NFCI. 2019-09-13 22:12:27 +00:00
crash-recovery-reparse.c
crash-recovery.c
create-libclang-completion-reproducer.c
create-libclang-parsing-reproducer.c
create-tu-fail.c
ctor-init-source-loc.cpp
cursor-dynamic-call.mm
cursor-ref-names.cpp
cxx-operator-overload.cpp
cxx11-lambdas.cpp
cxx14-lambdas.cpp [libclang] visit c++14 lambda capture init expressions 2019-05-21 09:21:35 +00:00
cxx17-if-with-initializer.cpp [libclang]: visit C++17 if init statements 2020-05-02 22:18:36 +02:00
cxx17-structured-binding.cpp [libclang]: visit BindingDecl in DecompositionDecl 2020-05-02 22:18:31 +02:00
error-on-deserialized.c
evaluate-cursor.cpp [libclang] Fix hang in release / assertion in debug when evaluating value-dependent types. 2019-07-09 14:27:01 +00:00
file-includes.c
file-macro-refs.c
file-refs-subscripting.m
file-refs.c
file-refs.cpp
file-refs.m
fix-its.c
fix-its.m
format-comment-cdecls.c
get-cursor-includes.c
get-cursor-macro-args.h
get-cursor-macro-args.m
get-cursor.c
get-cursor.cpp
get-cursor.m
getcursor-pp-pch.c
getcursor-pp-pch.c.h
getcursor-preamble.h
getcursor-preamble.m
getcursor-recovery.cpp [AST] Preserve the type in RecoveryExprs for broken function calls. 2020-05-11 08:46:18 +02:00
headerfile-comment-to-html.m
ignore-warnings-from-headers.cpp [libclang] Allow skipping warnings from all included files 2019-06-11 14:14:24 +00:00
ignore-warnings-from-headers.h [libclang] Allow skipping warnings from all included files 2019-06-11 14:14:24 +00:00
implicit-attrs.m
in-class-init.cpp
include_test.h
include_test_2.h
index-anonymous-union-fields.cpp [Index] Correctly set symbol kind of IndirectFieldDecl 2019-05-29 10:11:14 +00:00
index-attrs.c
index-attrs.cpp
index-attrs.m
index-decls.m
index-file.cpp
index-file.cu
index-invalid-code.m
index-kernel-invocation.cpp
index-local-symbol.cpp
index-many-call-ops.cpp Replace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better 2019-05-10 17:57:22 +00:00
index-many-logical-ops.c Replace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better 2019-05-10 17:57:22 +00:00
index-module-with-vfs.m Fix `sed -e s@FOO@%/S@` and similar when there's @'s in the working directory 2019-12-03 15:44:01 -08:00
index-module.m
index-pch-objc.m
index-pch-with-module.m
index-pch.cpp
index-refs.cpp
index-refs.m
index-subscripting-literals.m
index-suppress-refs.cpp
index-suppress-refs.h
index-suppress-refs.hpp
index-suppress-refs.m
index-template-specialization.cpp
index-template-template-param.cpp
index-templates.cpp [clang] Make handling of unnamed template params similar to function params 2019-10-01 14:08:51 +00:00
index-with-working-dir.c
initializer-memory.cpp
invalid-code-rdar10451854.m
invalid-code-rdar_7833619.m
invalid-rdar-8236270.cpp
keep-going-include-cycle.c
keep-going-template-instantiations.cpp
keep-going.cpp
linkage.c
lit.local.cfg [AIX][test/Index] Set/propagate AIXTHREAD_STK for AIX 2019-08-13 13:38:15 +00:00
load-classes.cpp
load-decls.c
load-exprs.c
load-namespaces.cpp
load-staticassert.cpp
load-stmts.cpp
local-symbols.m
missing_vfs.c Make test more robust by writing stdout/stderr to different files. 2019-04-29 22:57:15 +00:00
modules-objc-categories.m
ms-if-exists.cpp
ms-property.cpp
namespaced-base-ctor-init.cpp
nested-binaryoperators.cpp
nullability.c
objc-typeargs-protocols.m
opencl-types.cl [OpenCL] Pretty print __private addr space 2019-12-27 13:42:07 +00:00
overrides.cpp
overrides.m
overriding-ftemplate-comments.cpp
overriding-method-comments.mm
paren-type.c
parse-all-comments.c
pch-depending-on-deleted-module.c
pch-from-libclang.c BitStream reader: propagate errors 2019-06-26 19:50:12 +00:00
pch-opaque-value.cpp
pch-warn-as-error-code-split.cpp
pch-warn-as-error-code-split.h
pch-warn-as-error-code.cpp
pch-with-errors.c [pch] Honour -fallow-pch-with-compiler-errors for overall compilation status 2020-03-31 13:50:12 -07:00
pch-with-errors.m
pch-with-module.m
pipe-size.cl
pr20320.cpp
pr20320.h
pragma-diag-reparse.c [Diagnostic] add a warning which warns about misleading indentation 2019-12-03 21:21:27 +01:00
preamble-conditionals-crash.cpp
preamble-conditionals-inverted-with-error.cpp
preamble-conditionals-inverted.cpp
preamble-conditionals-skipping.cpp
preamble-conditionals.cpp
preamble-reparse-chained.c
preamble-reparse-cmd-define.c
preamble-reparse-cmd-define.c.h
preamble-reparse-cmd-define.c.remap
preamble-reparse-import.m
preamble-reparse-import.m-1.h
preamble-reparse-import.m-2.h
preamble-reparse-import.m-3.h
preamble-reparse-warn-end-of-file.c
preamble-reparse-warn-macro.c
preamble-reparse-with-BOM.m
preamble-reparse.c
preamble-with-implicit-import.m
preamble.c
preamble_macro_template.cpp
print-bitwidth.c
print-cxx-manglings.cpp
print-display-names.cpp [AST] Use written names instead of `type-param-0-0` in more cases when printing types and decls. 2019-11-15 10:40:38 +01:00
print-mangled-name.cpp
print-objc-manglings.m
print-type-cxx11.cpp
print-type-declaration.cpp
print-type-size.c Add an explicit triple to this test to hopefully appease the build bots. 2019-05-07 14:40:37 +00:00
print-type-size.cpp
print-type.c Expose AtomicType in the libclang C API. 2020-04-16 08:06:58 -04:00
print-type.cpp Refactor CompareReferenceRelationship and its callers in preparation for 2019-12-18 14:05:57 -08:00
print-type.m
print-usrs.c
properties-class-extensions.m
property-getter-setter.m
rdar-8288645-invalid-code.mm
rdar12316296-codecompletion.m
read-empty-diags.test
record-completion-invocation.c
record-parsing-invocation.c
recover-bad-code-rdar_7487294.c
recursive-cxx-member-calls.cpp
recursive-member-access.c
redeclarations.cpp
remap-complete.c
remap-cursor-at.c
remap-load.c
reparse-instantiate.cpp
reparse-predef-objc-protocol.m
reparsed-live-issue.cpp
retain-comments-from-system-headers.c
retain-excluded-conditional-blocks.m [preprocessor] Add an opportunity to retain excluded conditional blocks 2019-08-27 22:15:32 +00:00
retain-target-options.c
single-file-parse.m
skipped-bodies-ctors.cpp
skipped-bodies-templates.cpp
skipped-bodies-unused.cpp
skipped-function-bodies.cpp
skipped-ranges.c
subclass-comment.mm
symbol-visibility.c
target-info.c
targeted-annotation.c
targeted-cursor.c
targeted-cursor.m
targeted-cursor.m.h
targeted-fields.h
targeted-file-refs.c
targeted-nested1.h
targeted-preamble.h
targeted-top.h
unmatched-braces.c
unmatched-braces.m
usrs-cxx0x.cpp
usrs.cpp
usrs.m
visibility.c
warning-flags.c [Diagnostics] Try to improve warning message for -Wreturn-type 2019-11-09 17:54:58 +01:00
werror.c