Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot document ctor taking an array with size which is a template parameter #125

Closed
vitaut opened this issue Mar 2, 2015 · 4 comments
Closed

Comments

@vitaut
Copy link
Contributor

vitaut commented Mar 2, 2015

Ctor that causes exception in Sphinx:

https://github.com/cppformat/cppformat/blob/efc42fbd4e39691c058e7cecbaf40502af0f6066/format.h#L2223

Stack trace:

# Sphinx version: 1.2.3
# Python version: 2.7.6
# Docutils version: 0.11 release
# Jinja2 version: 2.7.2
# Loaded extensions:
#   breathe from ../breathe/breathe/__init__.pyc
#   sphinx.ext.ifconfig from /usr/local/lib/python2.7/dist-packages/sphinx/ext/ifconfig.pyc
#   sphinx.ext.oldcmarkup from /usr/local/lib/python2.7/dist-packages/sphinx/ext/oldcmarkup.pyc
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/sphinx/cmdline.py", line 254, in main
    app.build(force_all, filenames)
  File "/usr/local/lib/python2.7/dist-packages/sphinx/application.py", line 220, in build
    self.builder.build_update()
  File "/usr/local/lib/python2.7/dist-packages/sphinx/builders/__init__.py", line 214, in build_update
    'out of date' % len(to_build))
  File "/usr/local/lib/python2.7/dist-packages/sphinx/builders/__init__.py", line 234, in build
    purple, length):
  File "/usr/local/lib/python2.7/dist-packages/sphinx/builders/__init__.py", line 134, in status_iterator
    for item in iterable:
  File "/usr/local/lib/python2.7/dist-packages/sphinx/environment.py", line 478, in update_generator
    self.read_doc(docname, app=app)
  File "/usr/local/lib/python2.7/dist-packages/sphinx/environment.py", line 628, in read_doc
    pub.publish()
  File "/usr/lib/python2.7/dist-packages/docutils/core.py", line 217, in publish
    self.settings)
  File "/usr/lib/python2.7/dist-packages/docutils/readers/__init__.py", line 72, in read
    self.parse()
  File "/usr/lib/python2.7/dist-packages/docutils/readers/__init__.py", line 78, in parse
    self.parser.parse(self.input, document)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/__init__.py", line 172, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 171, in run
    input_source=document['source'])
  File "/usr/lib/python2.7/dist-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/lib/python2.7/dist-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 2962, in text
    self.section(title.lstrip(), source, style, lineno + 1, messages)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 328, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 396, in new_subsection
    node=section_node, match_titles=True)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 283, in nested_parse
    node=node, match_titles=match_titles)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python2.7/dist-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/lib/python2.7/dist-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 2727, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 328, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 396, in new_subsection
    node=section_node, match_titles=True)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 283, in nested_parse
    node=node, match_titles=match_titles)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python2.7/dist-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/lib/python2.7/dist-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 2302, in explicit_markup
    self.explicit_list(blank_finish)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 2332, in explicit_list
    match_titles=self.state_machine.match_titles)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 320, in nested_list_parse
    node=node, match_titles=match_titles)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python2.7/dist-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/lib/python2.7/dist-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 2605, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 2312, in explicit_construct
    return method(self, expmatch)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 2055, in directive
    directive_class, match, type_name, option_presets)
  File "/usr/lib/python2.7/dist-packages/docutils/parsers/rst/states.py", line 2104, in run_directive
    result = directive_instance.run()
  File "../breathe/breathe/directives.py", line 334, in run
    mask_factory)
  File "../breathe/breathe/directive/base.py", line 91, in render
    node_list = object_renderer.render()
  File "../breathe/breathe/renderer/rst/doxygen/index.py", line 126, in render
    data_renderer.render(),
  File "../breathe/breathe/renderer/rst/doxygen/compound.py", line 11, in render
    return compound_renderer.render()
  File "../breathe/breathe/renderer/rst/doxygen/compound.py", line 78, in render
    child_nodes = renderer.render()
  File "../breathe/breathe/renderer/rst/doxygen/compound.py", line 128, in render
    node_list.extend(renderer.render())
  File "../breathe/breathe/renderer/rst/doxygen/compound.py", line 221, in render
    targets.extend(self.create_domain_target())
  File "../breathe/breathe/renderer/rst/doxygen/compound.py", line 243, in create_domain_target
    return self.domain_handler.create_function_target(self.data_object)
  File "../breathe/breathe/renderer/rst/doxygen/domain.py", line 153, in create_function_target
    id_ = self.create_function_id(data_object)
  File "../breathe/breathe/renderer/rst/doxygen/domain.py", line 147, in create_function_id
    sigobj = parser.parse_function()
  File "/usr/local/lib/python2.7/dist-packages/sphinx/domains/cpp.py", line 948, in parse_function
    **self._parse_signature())
  File "/usr/local/lib/python2.7/dist-packages/sphinx/domains/cpp.py", line 845, in _parse_signature
    argname = self._parse_name()
  File "/usr/local/lib/python2.7/dist-packages/sphinx/domains/cpp.py", line 630, in _parse_name
    return self._parse_name_or_template_arg(False)
  File "/usr/local/lib/python2.7/dist-packages/sphinx/domains/cpp.py", line 635, in _parse_name_or_template_arg
    self.fail('expected name')
  File "/usr/local/lib/python2.7/dist-packages/sphinx/domains/cpp.py", line 556, in fail
    (msg, self.pos, self.definition))
DefinitionError: Invalid definition: expected name [error at 61]
  explicit fmt::BasicArrayWriter< Char >::BasicArrayWriter(Char(&array)[SIZE])
@vitaut
Copy link
Contributor Author

vitaut commented Mar 2, 2015

Looks like a bug in Sphinx cpp domain: sphinx-doc/sphinx#1753

@lehmannro
Copy link

+ sphinx-doc/sphinx#1314

@vitaut
Copy link
Contributor Author

vitaut commented Mar 2, 2015

Thanks for the link, @lehmannro.

@vitaut
Copy link
Contributor Author

vitaut commented Jun 3, 2015

There is also an issue in Breathe which is addressed by breathe-doc/breathe#193.

@vitaut vitaut closed this as completed in d311927 Jun 4, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants