Skip to content

addition of ast.Constant type makes astroid crash on import when using current CPython master (which will become 3.8) #617

Closed
@njsmith

Description

@njsmith

It looks like the merge of python/cpython#9445 broke astroid on CPython 3.8 pre-releases:

../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/trio/tests/test_exports.py:9: in <module>
    from pylint.lint import PyLinter
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/pylint/lint.py:75: in <module>
    import astroid
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/__init__.py:156: in <module>
    __import__(module[:-3])
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/brain/brain_builtin_inference.py:103: in <module>
    extend_builtins({'bytes': partial(_extend_str, rvalue="b''"),
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/brain/brain_builtin_inference.py:99: in extend_builtins
    transform(builtin_ast[class_name])
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/brain/brain_builtin_inference.py:84: in _extend_str
    fake = AstroidBuilder(MANAGER).string_build(code)['whatever']
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/builder.py:132: in string_build
    module = self._data_build(data, modname, path)
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/builder.py:173: in _data_build
    module = builder.visit_module(node, modname, node_file, package)
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:162: in visit_module
    newnode.postinit([self.visit(child, newnode) for child in node.body])
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:162: in <listcomp>
    newnode.postinit([self.visit(child, newnode) for child in node.body])
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:174: in visit
    return visit_method(node, parent)
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:954: in visit_classdef
    return super(TreeRebuilder3, self).visit_classdef(node, parent,
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:394: in visit_classdef
    [self.visit(child, newnode)
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:394: in <listcomp>
    [self.visit(child, newnode)
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:174: in visit
    return visit_method(node, parent)
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:576: in visit_functiondef
    return self._visit_functiondef(nodes.FunctionDef, node, parent)
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:566: in _visit_functiondef
    body=[self.visit(child, newnode) for child in node.body],
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:566: in <listcomp>
    body=[self.visit(child, newnode) for child in node.body],
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:174: in visit
    return visit_method(node, parent)
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:741: in visit_return
    newnode.postinit(self.visit(node.value, newnode))
../../../../virtualenv/python3.8-dev/lib/python3.8/site-packages/astroid/rebuilder.py:172: in visit
    visit_method = getattr(self, visit_name)
E   AttributeError: 'TreeRebuilder3' object has no attribute 'visit_constant'

(See: https://travis-ci.org/python-trio/trio/jobs/435176057)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions