This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author davidhalter
Recipients davidhalter
Date 2012-09-02.08:46:04
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1346575566.52.0.640732929243.issue15846@psf.upfronthosting.co.za>
In-reply-to
Content
Hi! I'm the developer of Jedi: https://github.com/davidhalter/jedi, which is an auto-completion library. I try to support Python 2.5-3.2.
The bug just appears in Python 3.2.

Parsing string literals with literal_eval works normally without a problem, but in this certain constellation, it raises a SystemError (instead of a SyntaxError).

The error line is simple:
literal_eval(r"'\U'")

But: It only raises the error in that particular place:
https://github.com/davidhalter/jedi/blob/master/parsing.py#L157

To try and test it:

git clone git://github.com/davidhalter/jedi.git
cd jedi
# uncomment the line after TODO in parsing.Scope.add_docstr
python3 test/run.py array

The error message:

Traceback (most recent call last):
  File "./run.py", line 51, in run_definition_test
    result = defs(line_nr, len(line))
  File "./run.py", line 49, in defs
    return set(functions.get_definitions(source, line_nr, indent, path))
  File "./functions.py", line 253, in get_definitions
    scopes = _prepare_goto(source, pos, source_path, f, goto_path)
  File "./functions.py", line 227, in _prepare_goto
    scopes = evaluate.follow_statement(stmt)
  File "./helpers.py", line 23, in __call__
    if self.push_stmt(stmt):
  File "./helpers.py", line 31, in push_stmt
    self.current = RecursionNode(stmt, self.current)
  File "./helpers.py", line 75, in __init__
    or (self.script == builtin.Builtin.scope)
  File "./builtin.py", line 408, in scope
    return self._builtins.parser.module
  File "./builtin.py", line 42, in parser
    self._load_module()
  File "./builtin.py", line 50, in _load_module
    self._parser = parsing.PyFuzzyParser(source, self.path or self.name)
  File "./parsing.py", line 1047, in __init__
    self.parse()
  File "./parsing.py", line 1600, in parse
    stmt, tok = self._parse_statement(self.current)
  File "./parsing.py", line 1386, in _parse_statement
    self.scope.add_docstr(self.last_token[1])
  File "./parsing.py", line 157, in add_docstr
    literal_eval(r"'\U'")
  File "/usr/lib/python3.2/ast.py", line 48, in literal_eval
    node_or_string = parse(node_or_string, mode='eval')
  File "/usr/lib/python3.2/ast.py", line 36, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
SystemError: ../Objects/tupleobject.c:126: bad argument to internal function

Cheers!
David
History
Date User Action Args
2012-09-02 08:46:06davidhaltersetrecipients: + davidhalter
2012-09-02 08:46:06davidhaltersetmessageid: <1346575566.52.0.640732929243.issue15846@psf.upfronthosting.co.za>
2012-09-02 08:46:06davidhalterlinkissue15846 messages
2012-09-02 08:46:04davidhaltercreate