diff --git a/CHANGES.rst b/CHANGES.rst index e1096c869..15bea2772 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -18,6 +18,10 @@ Deprecated Features added -------------- +* Add a new ``duplicate_declaration`` warning type, + with ``duplicate_declaration.c`` and ``duplicate_declaration.cpp`` subtypes. + Patch by Julien Lecomte and Adam Turner. + Bugs fixed ---------- diff --git a/doc/usage/configuration.rst b/doc/usage/configuration.rst index b65b9b79f..69c9ccaa1 100644 --- a/doc/usage/configuration.rst +++ b/doc/usage/configuration.rst @@ -1374,6 +1374,8 @@ Options for warning control * ``config.cache`` * ``docutils`` * ``download.not_readable`` + * ``duplicate_declaration.c`` + * ``duplicate_declaration.cpp`` * ``epub.unknown_project_files`` * ``epub.duplicated_toc_entry`` * ``i18n.inconsistent_references`` @@ -1444,6 +1446,9 @@ Options for warning control .. versionadded:: 8.0 Added ``misc.copy_overwrite``. + .. versionadded:: 8.2 + Added ``duplicate_declaration.c`` and ``duplicate_declaration.cpp``. + Builder options =============== diff --git a/sphinx/domains/c/__init__.py b/sphinx/domains/c/__init__.py index 48c83a731..f58e2e607 100644 --- a/sphinx/domains/c/__init__.py +++ b/sphinx/domains/c/__init__.py @@ -284,6 +284,8 @@ class CObject(ObjectDescription[ASTDeclaration]): self.display_object_type, sig, location=signode, + type='duplicate_declaration', + subtype='c', ) if ast.objectType == 'enumerator': diff --git a/sphinx/domains/c/_symbol.py b/sphinx/domains/c/_symbol.py index fe4c17147..d4662b07f 100644 --- a/sphinx/domains/c/_symbol.py +++ b/sphinx/domains/c/_symbol.py @@ -548,6 +548,8 @@ class Symbol: our_child.declaration.directiveType, name, location=(other_child.docname, other_child.line), + type='duplicate_declaration', + subtype='c', ) else: # Both have declarations, and in the same docname. diff --git a/sphinx/domains/cpp/__init__.py b/sphinx/domains/cpp/__init__.py index 35d69de2f..7c84aac72 100644 --- a/sphinx/domains/cpp/__init__.py +++ b/sphinx/domains/cpp/__init__.py @@ -397,6 +397,8 @@ class CPPObject(ObjectDescription[ASTDeclaration]): self.display_object_type, sig, location=signode, + type='duplicate_declaration', + subtype='cpp', ) if ast.objectType == 'enumerator': diff --git a/sphinx/domains/cpp/_symbol.py b/sphinx/domains/cpp/_symbol.py index fa940e71a..cd5bb1707 100644 --- a/sphinx/domains/cpp/_symbol.py +++ b/sphinx/domains/cpp/_symbol.py @@ -895,6 +895,8 @@ class Symbol: our_child.declaration.directiveType, name, location=(other_child.docname, other_child.line), + type='duplicate_declaration', + subtype='cpp', ) else: our_object_type = our_child.declaration.objectType