Merge branch '1.7'

This commit is contained in:
Takeshi KOMIYA 2018-05-29 02:13:54 +09:00
commit 98f10216c7
3 changed files with 38 additions and 5 deletions

15
CHANGES
View File

@ -144,7 +144,7 @@ Features removed
* ``sphinx.ext.pngmath`` extension * ``sphinx.ext.pngmath`` extension
Release 1.7.5 (in development) Release 1.7.6 (in development)
============================== ==============================
Dependencies Dependencies
@ -162,6 +162,15 @@ Features added
Bugs fixed Bugs fixed
---------- ----------
Testing
--------
Release 1.7.5 (released May 29, 2018)
=====================================
Bugs fixed
----------
* #4924: html search: Upper characters problem in any other languages * #4924: html search: Upper characters problem in any other languages
* #4932: apidoc: some subpackage is ignored if sibling subpackage contains a * #4932: apidoc: some subpackage is ignored if sibling subpackage contains a
module starting with underscore module starting with underscore
@ -172,6 +181,7 @@ Bugs fixed
* #4825: C++, properly parse expr roles and give better error messages when * #4825: C++, properly parse expr roles and give better error messages when
(escaped) line breaks are present. (escaped) line breaks are present.
* C++, properly use ``desc_addname`` nodes for prefixes of names. * C++, properly use ``desc_addname`` nodes for prefixes of names.
* C++, parse pack expansions in function calls.
* #4915, #4916: links on search page are broken when using dirhtml builder * #4915, #4916: links on search page are broken when using dirhtml builder
* #4969: autodoc: constructor method should not have return annotation * #4969: autodoc: constructor method should not have return annotation
* latex: deeply nested enumerated list which is beginning with non-1 causes * latex: deeply nested enumerated list which is beginning with non-1 causes
@ -191,9 +201,6 @@ Bugs fixed
napoleon module napoleon module
* #5007: sphinx-build crashes when error log contains a "%" character * #5007: sphinx-build crashes when error log contains a "%" character
Testing
--------
Release 1.7.4 (released Apr 25, 2018) Release 1.7.4 (released Apr 25, 2018)
===================================== =====================================

View File

@ -1221,6 +1221,22 @@ class ASTPostfixExpr(ASTBase):
p.describe_signature(signode, mode, env, symbol) p.describe_signature(signode, mode, env, symbol)
class ASTPackExpansionExpr(ASTBase):
def __init__(self, expr):
self.expr = expr
def __unicode__(self):
return text_type(self.expr) + '...'
def get_id(self, version):
id = self.expr.get_id(version)
return 'sp' + id
def describe_signature(self, signode, mode, env, symbol):
self.expr.describe_signature(signode, mode, env, symbol)
signode += nodes.Text('...')
class ASTFallbackExpr(ASTBase): class ASTFallbackExpr(ASTBase):
def __init__(self, expr): def __init__(self, expr):
self.expr = expr self.expr = expr
@ -4298,6 +4314,9 @@ class DefinitionParser(object):
if self.skip_string('*'): if self.skip_string('*'):
# don't steal the dot # don't steal the dot
self.pos -= 2 self.pos -= 2
elif self.skip_string('..'):
# don't steal the dot
self.pos -= 3
else: else:
name = self._parse_nested_name() name = self._parse_nested_name()
postFixes.append(ASTPostfixMember(name)) # type: ignore postFixes.append(ASTPostfixMember(name)) # type: ignore
@ -4324,7 +4343,11 @@ class DefinitionParser(object):
while True: while True:
self.skip_ws() self.skip_ws()
expr = self._parse_expression(inTemplate=False) expr = self._parse_expression(inTemplate=False)
exprs.append(expr) self.skip_ws()
if self.skip_string('...'):
exprs.append(ASTPackExpansionExpr(expr))
else:
exprs.append(expr)
self.skip_ws() self.skip_ws()
if self.skip_string(')'): if self.skip_string(')'):
break break

View File

@ -214,6 +214,9 @@ def test_expressions():
exprCheck('operator()()', 'clclE') exprCheck('operator()()', 'clclE')
exprCheck('operator()<int>()', 'clclIiEE') exprCheck('operator()<int>()', 'clclIiEE')
# pack expansion
exprCheck('a(b(c, 1 + d...)..., e(f..., g))', 'cl1aspcl1b1cspplL1E1dEcl1esp1f1gEE')
def test_type_definitions(): def test_type_definitions():
check("type", "public bool b", {1: "b", 2: "1b"}, "bool b") check("type", "public bool b", {1: "b", 2: "1b"}, "bool b")