summaryrefslogtreecommitdiff
path: root/sphinx/domains/std.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/domains/std.py')
-rw-r--r--sphinx/domains/std.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py
index 9d094d1a9..1e4f1b10f 100644
--- a/sphinx/domains/std.py
+++ b/sphinx/domains/std.py
@@ -12,7 +12,7 @@ import re
import unicodedata
import warnings
from copy import copy
-from typing import Any, Callable, Dict, Iterable, Iterator, List, Optional, Tuple, Type, Union
+from typing import Any, Callable, Dict, Iterable, Iterator, List, Optional, Tuple, Union
from typing import cast
from docutils import nodes
@@ -34,6 +34,7 @@ from sphinx.util.typing import RoleFunction
if False:
# For type annotation
+ from typing import Type # for python3.5.1
from sphinx.application import Sphinx
from sphinx.builders import Builder
from sphinx.environment import BuildEnvironment
@@ -254,9 +255,9 @@ def make_glossary_term(env: "BuildEnvironment", textnodes: Iterable[Node], index
new_id = nodes.make_id('term-' + termtext)
if new_id == 'term':
# the term is not good for node_id. Generate it by sequence number instead.
- new_id = 'term-' + str(len(gloss_entries))
- if new_id in gloss_entries:
- new_id = 'term-' + str(len(gloss_entries))
+ new_id = 'term-%d' % env.new_serialno('glossary')
+ while new_id in gloss_entries:
+ new_id = 'term-%d' % env.new_serialno('glossary')
gloss_entries.add(new_id)
std = cast(StandardDomain, env.get_domain('std'))
@@ -885,7 +886,7 @@ class StandardDomain(Domain):
def get_enumerable_node_type(self, node: Node) -> str:
"""Get type of enumerable nodes."""
- def has_child(node: Element, cls: Type) -> bool:
+ def has_child(node: Element, cls: "Type") -> bool:
return any(isinstance(child, cls) for child in node)
if isinstance(node, nodes.section):