facebook / facebook/pyrefly

str.split v. LiteralString false positive type error.

Open
#1,766 7 comments 0 reactions 0 assignees View on GitHub
needs-discussion overloads typechecking
Dominant language
Rust
Stars
7k
Forks
516
PR merge metrics
No merged PRs in 30d

Description

### Describe the Bug

This appears to be a false-positive type error from pyrefly. Using `str.split` on a LiteralString ends up with confusion between `list[str]` and `list[LiteralString]`:

> ERROR sandbox.py:6:5-6: Argument `list[LiteralString]` is not assignable to parameter `x` with type `list[str]` in function `foo` [[bad-argument-type](https://pyrefly.org/en/docs/error-kinds/#bad-argument-type)]

```python

def foo(x: list[str]) -> None:
pass

l = 'a b c d'.split()
foo(l)

```

### Sandbox Link

https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeSIAOljGAARi64AU%2BidUEcALgNo8AnALoBKOgFoAfHQByudDETU6KusVRw41alDoBeOgHJUdbHQDGdTIcJxinbsxHVGLKM-QgANCACu3aDgSckQQAGI6AFUAh1IGX3RzAPktdGpMWgZcAQBbVG4AfXRfHOwYAVZ2CHRuMSk6QSV0VToBGG5fAWawShAZErKBdmB8AF9e6m8QMjawKFJCblwcqAoIgAVSWfmGjBwCC3lIAHNO-Ih5QmoIgGUYGDoAC25uYjhEAHoPmdp5wmzjh8YOgPphcOY4B9zEcIKcBOd5B8sgI6KgAG6oaCobCwQ7oE5nZLNXDEIlBahkbiPeTiNHlOAXZoGXoAZkIAEYAEwTTyjHyoJIQOkAMWgMAoaCweCIZBAoyAA

### (Only applicable for extension issues) IDE Information

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.