From 9ccff74f66a55ea84276291c3d7ec474e675d621 Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Sat, 19 May 2018 22:50:10 +0900 Subject: [PATCH] Fix #4946: py domain: type field could not handle "None" as a type --- CHANGES | 1 + sphinx/domains/python.py | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 9f2c96dea..f9b6e6af5 100644 --- a/CHANGES +++ b/CHANGES @@ -32,6 +32,7 @@ Bugs fixed LaTeX engine crashed * #4978: latex: shorthandoff is not set up for Brazil locale * #4928: i18n: Ignore dot-directories like .git/ in LC_MESSAGES/ +* #4946: py domain: type field could not handle "None" as a type Testing -------- diff --git a/sphinx/domains/python.py b/sphinx/domains/python.py index 2b46596af..1d1f28b03 100644 --- a/sphinx/domains/python.py +++ b/sphinx/domains/python.py @@ -156,7 +156,15 @@ class PyGroupedField(PyXrefMixin, GroupedField): class PyTypedField(PyXrefMixin, TypedField): - pass + def make_xref(self, rolename, domain, target, + innernode=nodes.emphasis, contnode=None, env=None): + # type: (unicode, unicode, unicode, nodes.Node, nodes.Node, BuildEnvironment) -> nodes.Node # NOQA + if rolename == 'class' and target == 'None': + # None is not a type, so use obj role instead. + rolename = 'obj' + + return super(PyTypedField, self).make_xref(rolename, domain, target, + innernode, contnode, env) class PyObject(ObjectDescription):