QualifiedNameProvider provides incorrect builtins.None name.
- Dominant language
- Python
- Stars
- 1.9k
- Forks
- 229
- PR merge metrics
- No merged PRs in 30d
Description
Example:
```
In [1]: code = '".".join(["a", "b"])'
In [2]: import libcst as cst
In [3]: from libcst import MetadataWrapper
In [4]: wraper = MetadataWrapper(module=cst.parse_module(code))
In [5]: from libcst.metadata import QualifiedNameProvider
In [6]: wraper.resolve(QualifiedNameProvider)
```
The `Call` and the `Attribute (".".join())` show `builtins.None` as the wrong qualified name.
```
Call(
func=Attribute(
value=SimpleString(
value='"."',
lpar=[],
rpar=[],
),
attr=Name(
value='join',
lpar=[],
rpar=[],
),
dot=Dot(
whitespace_before=SimpleWhitespace(
value='',
),
whitespace_after=SimpleWhitespace(
value='',
),
),
lpar=[],
rpar=[],
),
args=[
Arg(
value=List(
elements=[
Element(
value=SimpleString(
value='"a"',
lpar=[],
rpar=[],
),
comma=Comma(
whitespace_before=SimpleWhitespace(
value='',
),
whitespace_after=SimpleWhitespace(
value=' ',
),
),
),
Element(
value=SimpleString(
value='"b"',
lpar=[],
rpar=[],
),
comma=MaybeSentinel.DEFAULT,
),
],
lbracket=LeftSquareBracket(
whitespace_after=SimpleWhitespace(
value='',
),
),
rbracket=RightSquareBracket(
whitespace_before=SimpleWhitespace(
value='',
),
),
lpar=[],
rpar=[],
),
keyword=None,
equal=MaybeSentinel.DEFAULT,
comma=MaybeSentinel.DEFAULT,
star='',
whitespace_after_star=SimpleWhitespace(
value='',
),
whitespace_after_arg=SimpleWhitespace(
value='',
),
),
],
lpar=[],
rpar=[],
whitespace_after_func=SimpleWhitespace(
value='',
),
whitespace_before_args=SimpleWhitespace(
value='',
),
): {QualifiedName(name='builtins.None', source=)},
Attribute(
value=SimpleString(
value='"."',
lpar=[],
rpar=[],
),
attr=Name(
value='join',
lpar=[],
rpar=[],
),
dot=Dot(
whitespace_before=SimpleWhitespace(
value='',
),
whitespace_after=SimpleWhitespace(
value='',
),
),
lpar=[],
rpar=[],
): {QualifiedName(name='builtins.None', source=)},
```
Contributor guide
Assessment
This issue has not been assessed yet.