[ty] Integer indexing into bytes returns int (#18218)

## Summary

Resolves [#461](https://github.com/astral-sh/ty/issues/461).

ty was hardcoded to infer `BytesLiteral` types for integer indexing into
`BytesLiteral`. It will now infer `IntLiteral` types instead.

## Test Plan

Markdown tests.
This commit is contained in:
InSync 2025-05-20 21:44:12 +07:00 committed by GitHub
parent 90ca0a4c13
commit 76ab3425d3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 10 deletions

View file

@ -5,16 +5,16 @@
```py
b = b"\x00abc\xff"
reveal_type(b[0]) # revealed: Literal[b"\x00"]
reveal_type(b[1]) # revealed: Literal[b"a"]
reveal_type(b[4]) # revealed: Literal[b"\xff"]
reveal_type(b[0]) # revealed: Literal[0]
reveal_type(b[1]) # revealed: Literal[97]
reveal_type(b[4]) # revealed: Literal[255]
reveal_type(b[-1]) # revealed: Literal[b"\xff"]
reveal_type(b[-2]) # revealed: Literal[b"c"]
reveal_type(b[-5]) # revealed: Literal[b"\x00"]
reveal_type(b[-1]) # revealed: Literal[255]
reveal_type(b[-2]) # revealed: Literal[99]
reveal_type(b[-5]) # revealed: Literal[0]
reveal_type(b[False]) # revealed: Literal[b"\x00"]
reveal_type(b[True]) # revealed: Literal[b"a"]
reveal_type(b[False]) # revealed: Literal[0]
reveal_type(b[True]) # revealed: Literal[97]
x = b[5] # error: [index-out-of-bounds] "Index 5 is out of bounds for bytes literal `Literal[b"\x00abc\xff"]` with length 5"
reveal_type(x) # revealed: Unknown