
This is consistent with the behavior of Doxygen, and allows users to write strings with C escapes or document input/output formats containing special characters (@ or \) without escaping them, which might be confusing. For example, if a function wants to document its expected input format as "user@host" it doesn't have to write user\@host instead, which would look right in the documentation but confusing in the code. Now users can just use double quotes (which they might do anyway). This fixes a lot of false positives of -Wdocumentation-unknown-command, but it could also fix issues with -Wdocumentation if the text triggers an actual command. Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D116190
25 lines
1.1 KiB
C++
25 lines
1.1 KiB
C++
// RUN: %clang_cc1 -std=c++11 -fsyntax-only -Wdocumentation-unknown-command -verify %s
|
|
// RUN: %clang_cc1 -std=c++11 -fsyntax-only -Werror -Wno-documentation-unknown-command %s
|
|
|
|
// expected-warning@+1 {{unknown command tag name}}
|
|
/// aaa \unknown
|
|
int test_unknown_comand_1;
|
|
|
|
// expected-warning@+1 {{unknown command tag name 'retur'; did you mean 'return'?}}
|
|
/// \retur aaa
|
|
int test_unknown_comand_2();
|
|
|
|
/// We don't recognize commands in double quotes: "\n\t @unknown2".
|
|
int test_unknown_comand_3();
|
|
|
|
// expected-warning@+2 {{unknown command tag name}}
|
|
// expected-warning@+2 {{unknown command tag name}}
|
|
/// But it has to be a single line: "\unknown3
|
|
/// @unknown4" (Doxygen treats multi-line quotes inconsistently.)
|
|
int test_unknown_comand_4();
|
|
|
|
// RUN: c-index-test -test-load-source all -Wdocumentation-unknown-command %s > /dev/null 2> %t.err
|
|
// RUN: FileCheck < %t.err -check-prefix=CHECK-RANGE %s
|
|
// CHECK-RANGE: warn-documentation-unknown-command.cpp:5:9:{5:9-5:17}: warning: unknown command tag name
|
|
// CHECK-RANGE: warn-documentation-unknown-command.cpp:9:5:{9:5-9:11}: warning: unknown command tag name 'retur'; did you mean 'return'?
|