//==--- DiagnosticCommentKinds.td - diagnostics related to comments -------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
let Component = "Comment" in {
let CategoryName = "Documentation Issue" in {
// HTML parsing errors. These are under -Wdocumentation to make sure the user
// knows that we didn't parse something as they might expect.
def warn_doc_html_start_tag_expected_quoted_string : Warning<
"expected quoted string after equals sign">,
InGroup<Documentation>, DefaultIgnore;
def warn_doc_html_start_tag_expected_ident_or_greater : Warning<
"HTML start tag prematurely ended, expected attribute name or '>'">,
InGroup<Documentation>, DefaultIgnore;
def note_doc_html_tag_started_here : Note<
"HTML tag started here">;
// HTML semantic errors
def warn_doc_html_end_forbidden : Warning<
"HTML end tag '%0' is forbidden">,
InGroup<DocumentationHTML>, DefaultIgnore;
def warn_doc_html_end_unbalanced : Warning<
"HTML end tag does not match any start tag">,
InGroup<DocumentationHTML>, DefaultIgnore;
def warn_doc_html_start_end_mismatch : Warning<
"HTML start tag '%0' closed by '%1'">,
InGroup<DocumentationHTML>, DefaultIgnore;
def note_doc_html_end_tag : Note<
"end tag">;
def warn_doc_html_missing_end_tag : Warning<
"HTML tag '%0' requires an end tag">,
InGroup<DocumentationHTML>, DefaultIgnore;
// Commands
def warn_doc_block_command_empty_paragraph : Warning<
"empty paragraph passed to '%select{\\|@}0%1' command">,
InGroup<Documentation>, DefaultIgnore;
def warn_doc_block_command_duplicate : Warning<
"duplicated command '%select{\\|@}0%1'">,
InGroup<Documentation>, DefaultIgnore;
def note_doc_block_command_previous : Note<
"previous command '%select{\\|@}0%1' here">;
def note_doc_block_command_previous_alias : Note<
"previous command '%select{\\|@}0%1' (an alias of '\\%2') here">;
// \param command
def warn_doc_param_invalid_direction : Warning<
"unrecognized parameter passing direction, "
"valid directions are '[in]', '[out]' and '[in,out]'">,
InGroup<Documentation>, DefaultIgnore;
def warn_doc_param_spaces_in_direction : Warning<
"whitespace is not allowed in parameter passing direction">,
InGroup<DocumentationPedantic>, DefaultIgnore;
def warn_doc_param_not_attached_to_a_function_decl : Warning<
"'%select{\\|@}0param' command used in a comment that is not attached to "
"a function declaration">,
InGroup<Documentation>, DefaultIgnore;
def warn_doc_function_method_decl_mismatch : Warning<
"'%select{\\|@}0%select{function|functiongroup|method|methodgroup|callback}1' "
"command should be used in a comment attached to "
"%select{a function|a function|an Objective-C method|an Objective-C method|"
"a pointer to function}2 declaration">,
InGroup<Documentation>, DefaultIgnore;
def warn_doc_api_container_decl_mismatch : Warning<
"'%select{\\|@}0%select{class|interface|protocol|struct|union}1' "
"command should not be used in a comment attached to a "
"non-%select{class|interface|protocol|struct|union}2 declaration">,
InGroup<Documentation>, DefaultIgnore;
def warn_doc_container_decl_mismatch : Warning<
"'%select{\\|@}0%select{classdesign|coclass|dependency|helper"
"|helperclass|helps|instancesize|ownership|performance|security|superclass}1' "
"command should not be used in a comment attached to a non-container declaration">,
InGroup<Documentation>, DefaultIgnore;
def warn_doc_param_duplicate : Warning<
"parameter '%0' is already documented">,
InGroup<Documentation>, DefaultIgnore;
def note_doc_param_previous : Note<
"previous documentation">;
def warn_doc_param_not_found : Warning<
"parameter '%0' not found in the function declaration">,
InGroup<Documentation>, DefaultIgnore;
def note_doc_param_name_suggestion : Note<
"did you mean '%0'?">;
// tparam command
def warn_doc_tparam_not_attached_to_a_template_decl : Warning<
"'%select{\\|@}0tparam' command used in a comment that is not attached to "
"a template declaration">,
InGroup<Documentation>, DefaultIgnore;
def warn_doc_tparam_duplicate : Warning<
"template parameter '%0' is already documented">,
InGroup<Documentation>, DefaultIgnore;
def note_doc_tparam_previous : Note<
"previous documentation">;
def warn_doc_tparam_not_found : Warning<
"template parameter '%0' not found in the template declaration">,
InGroup<Documentation>, DefaultIgnore;
def note_doc_tparam_name_suggestion : Note<
"did you mean '%0'?">;
// \returns command
def warn_doc_returns_not_attached_to_a_function_decl : Warning<
"'%select{\\|@}0%1' command used in a comment that is not attached to "
"a function or method declaration">,
InGroup<Documentation>, DefaultIgnore;
def warn_doc_returns_attached_to_a_void_function : Warning<
"'%select{\\|@}0%1' command used in a comment that is attached to a "
"%select{function returning void|constructor|destructor|"
"method returning void}2">,
InGroup<Documentation>, DefaultIgnore;
// \deprecated command
def warn_doc_deprecated_not_sync : Warning<
"declaration is marked with '%select{\\|@}0deprecated' command but does "
"not have a deprecation attribute">,
InGroup<DocumentationDeprecatedSync>, DefaultIgnore;
def note_add_deprecation_attr : Note<
"add a deprecation attribute to the declaration to silence this warning">;
// inline contents commands
def warn_doc_inline_command_not_enough_arguments : Warning<
"'%select{\\|@}0%1' command has %plural{0:no|:%2}2 word argument%s2, expected %3">,
InGroup<Documentation>, DefaultIgnore;
// verbatim block commands
def warn_verbatim_block_end_without_start : Warning<
"'%select{\\|@}0%1' command does not terminate a verbatim text block">,
InGroup<Documentation>, DefaultIgnore;
def warn_unknown_comment_command_name : Warning<
"unknown command tag name">,
InGroup<DocumentationUnknownCommand>, DefaultIgnore;
def warn_correct_comment_command_name : Warning<
"unknown command tag name '%0'; did you mean '%1'?">,
InGroup<DocumentationUnknownCommand>, DefaultIgnore;
} // end of documentation issue category
} // end of AST component