Nikita Sobolev <m...@sobolevn.me> added the comment:

Looks like this little patch can solve this problem:

```
   def unparse(ast_obj):
       unparser = _Unparser()
---    return unparser.visit(ast_obj)
+++    return unparser.visit(fix_missing_locations(ast_obj))
```

But, I am not sure we should call this helper here.

Another approach is to refactor `get_type_comment` function into something like 
this:

```
    def get_type_comment(self, node):
        comment = None
        if hasattr(node, 'lineno'):
            comment = self._type_ignores.get(node.lineno)
        comment = comment or node.type_comment
        if comment is not None:
            return f" # type: {comment}"
```

I feel like this is more suitable for this case. Even `ast.pyi` has this line:

```
    # TODO: Not all nodes have all of the following attributes
    lineno: int
    col_offset: int
```

So, I am going to propose a PR with the second option. Please, send your 
feedback!

----------
nosy: +sobolevn

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue46073>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to