From 151b4afde2ddcc2afac7ff5e8e2d035c547c62ae Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Sun, 16 Feb 2020 02:11:13 +0900 Subject: [PATCH] Fix #7151: crashed when extension assigns a value to ``env.indexentries`` --- CHANGES | 1 + sphinx/environment/__init__.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/CHANGES b/CHANGES index bf0a55f759f..0321d8faa69 100644 --- a/CHANGES +++ b/CHANGES @@ -19,6 +19,7 @@ Bugs fixed * #7138: autodoc: ``autodoc.typehints`` crashed when variable has unbound object as a value * #7156: autodoc: separator for keyword only arguments is not shown +* #7151: crashed when extension assigns a value to ``env.indexentries`` Testing -------- diff --git a/sphinx/environment/__init__.py b/sphinx/environment/__init__.py index 4ccdce7f1b9..f1ae6024df9 100644 --- a/sphinx/environment/__init__.py +++ b/sphinx/environment/__init__.py @@ -755,6 +755,14 @@ def indexentries(self) -> Dict[str, List[Tuple[str, str, str, str, str]]]: domain = cast(IndexDomain, self.get_domain('index')) return domain.entries + @indexentries.setter + def indexentries(self, entries: Dict[str, List[Tuple[str, str, str, str, str]]]) -> None: + warnings.warn('env.indexentries() is deprecated. Please use IndexDomain instead.', + RemovedInSphinx40Warning, stacklevel=2) + from sphinx.domains.index import IndexDomain + domain = cast(IndexDomain, self.get_domain('index')) + domain.data['entries'] = entries + from sphinx.errors import NoUri # NOQA