mirror of https://github.com/astral-sh/ruff
[ty] Add goto for `Unknown` when it appears in an inlay hint (#21545)
This commit is contained in:
parent
c4767f5aa8
commit
290a5720cb
|
|
@ -1422,6 +1422,26 @@ mod tests {
|
|||
5 | self.y[: Unknown] = y
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:5:18
|
||||
|
|
||||
3 | def __init__(self, y):
|
||||
4 | self.x[: int] = int(1)
|
||||
5 | self.y[: Unknown] = y
|
||||
| ^^^^^^^
|
||||
6 |
|
||||
7 | a[: A] = A([y=]2)
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> main.py:2:7
|
||||
|
|
||||
|
|
@ -1659,6 +1679,24 @@ mod tests {
|
|||
4 | c[: list[Unknown | bool]] = [True, False]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:2:10
|
||||
|
|
||||
2 | a[: list[Unknown | int]] = [1, 2]
|
||||
| ^^^^^^^
|
||||
3 | b[: list[Unknown | float]] = [1.0, 2.0]
|
||||
4 | c[: list[Unknown | bool]] = [True, False]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -1695,6 +1733,25 @@ mod tests {
|
|||
5 | d[: list[Unknown | None]] = [None, None]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:3:10
|
||||
|
|
||||
2 | a[: list[Unknown | int]] = [1, 2]
|
||||
3 | b[: list[Unknown | float]] = [1.0, 2.0]
|
||||
| ^^^^^^^
|
||||
4 | c[: list[Unknown | bool]] = [True, False]
|
||||
5 | d[: list[Unknown | None]] = [None, None]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:661:7
|
||||
|
|
||||
|
|
@ -1732,6 +1789,26 @@ mod tests {
|
|||
6 | e[: list[Unknown | str]] = ["hel", "lo"]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:4:10
|
||||
|
|
||||
2 | a[: list[Unknown | int]] = [1, 2]
|
||||
3 | b[: list[Unknown | float]] = [1.0, 2.0]
|
||||
4 | c[: list[Unknown | bool]] = [True, False]
|
||||
| ^^^^^^^
|
||||
5 | d[: list[Unknown | None]] = [None, None]
|
||||
6 | e[: list[Unknown | str]] = ["hel", "lo"]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:2591:7
|
||||
|
|
||||
|
|
@ -1771,6 +1848,26 @@ mod tests {
|
|||
7 | f[: list[Unknown | str]] = ['the', 're']
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:5:10
|
||||
|
|
||||
3 | b[: list[Unknown | float]] = [1.0, 2.0]
|
||||
4 | c[: list[Unknown | bool]] = [True, False]
|
||||
5 | d[: list[Unknown | None]] = [None, None]
|
||||
| ^^^^^^^
|
||||
6 | e[: list[Unknown | str]] = ["hel", "lo"]
|
||||
7 | f[: list[Unknown | str]] = ['the', 're']
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/types.pyi:950:11
|
||||
|
|
||||
|
|
@ -1810,6 +1907,26 @@ mod tests {
|
|||
8 | g[: list[Unknown | str]] = [f"{ft}", f"{ft}"]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:6:10
|
||||
|
|
||||
4 | c[: list[Unknown | bool]] = [True, False]
|
||||
5 | d[: list[Unknown | None]] = [None, None]
|
||||
6 | e[: list[Unknown | str]] = ["hel", "lo"]
|
||||
| ^^^^^^^
|
||||
7 | f[: list[Unknown | str]] = ['the', 're']
|
||||
8 | g[: list[Unknown | str]] = [f"{ft}", f"{ft}"]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:915:7
|
||||
|
|
||||
|
|
@ -1849,6 +1966,26 @@ mod tests {
|
|||
9 | h[: list[Unknown | Template]] = [t"wow %d", t"wow %d"]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:7:10
|
||||
|
|
||||
5 | d[: list[Unknown | None]] = [None, None]
|
||||
6 | e[: list[Unknown | str]] = ["hel", "lo"]
|
||||
7 | f[: list[Unknown | str]] = ['the', 're']
|
||||
| ^^^^^^^
|
||||
8 | g[: list[Unknown | str]] = [f"{ft}", f"{ft}"]
|
||||
9 | h[: list[Unknown | Template]] = [t"wow %d", t"wow %d"]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:915:7
|
||||
|
|
||||
|
|
@ -1888,6 +2025,26 @@ mod tests {
|
|||
10 | i[: list[Unknown | bytes]] = [b'/x01', b'/x02']
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:8:10
|
||||
|
|
||||
6 | e[: list[Unknown | str]] = ["hel", "lo"]
|
||||
7 | f[: list[Unknown | str]] = ['the', 're']
|
||||
8 | g[: list[Unknown | str]] = [f"{ft}", f"{ft}"]
|
||||
| ^^^^^^^
|
||||
9 | h[: list[Unknown | Template]] = [t"wow %d", t"wow %d"]
|
||||
10 | i[: list[Unknown | bytes]] = [b'/x01', b'/x02']
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:915:7
|
||||
|
|
||||
|
|
@ -1927,6 +2084,26 @@ mod tests {
|
|||
11 | j[: list[Unknown | int | float]] = [+1, +2.0]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:9:10
|
||||
|
|
||||
7 | f[: list[Unknown | str]] = ['the', 're']
|
||||
8 | g[: list[Unknown | str]] = [f"{ft}", f"{ft}"]
|
||||
9 | h[: list[Unknown | Template]] = [t"wow %d", t"wow %d"]
|
||||
| ^^^^^^^
|
||||
10 | i[: list[Unknown | bytes]] = [b'/x01', b'/x02']
|
||||
11 | j[: list[Unknown | int | float]] = [+1, +2.0]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/string/templatelib.pyi:10:7
|
||||
|
|
||||
|
|
@ -1965,6 +2142,26 @@ mod tests {
|
|||
12 | k[: list[Unknown | int | float]] = [-1, -2.0]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:10:10
|
||||
|
|
||||
8 | g[: list[Unknown | str]] = [f"{ft}", f"{ft}"]
|
||||
9 | h[: list[Unknown | Template]] = [t"wow %d", t"wow %d"]
|
||||
10 | i[: list[Unknown | bytes]] = [b'/x01', b'/x02']
|
||||
| ^^^^^^^
|
||||
11 | j[: list[Unknown | int | float]] = [+1, +2.0]
|
||||
12 | k[: list[Unknown | int | float]] = [-1, -2.0]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:1448:7
|
||||
|
|
||||
|
|
@ -2003,6 +2200,25 @@ mod tests {
|
|||
12 | k[: list[Unknown | int | float]] = [-1, -2.0]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:11:10
|
||||
|
|
||||
9 | h[: list[Unknown | Template]] = [t"wow %d", t"wow %d"]
|
||||
10 | i[: list[Unknown | bytes]] = [b'/x01', b'/x02']
|
||||
11 | j[: list[Unknown | int | float]] = [+1, +2.0]
|
||||
| ^^^^^^^
|
||||
12 | k[: list[Unknown | int | float]] = [-1, -2.0]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -2057,6 +2273,24 @@ mod tests {
|
|||
| ^^^^
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:12:10
|
||||
|
|
||||
10 | i[: list[Unknown | bytes]] = [b'/x01', b'/x02']
|
||||
11 | j[: list[Unknown | int | float]] = [+1, +2.0]
|
||||
12 | k[: list[Unknown | int | float]] = [-1, -2.0]
|
||||
| ^^^^^^^
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -2312,6 +2546,26 @@ mod tests {
|
|||
9 | a[: MyClass[Unknown | int, str]], b[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "b…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:7:13
|
||||
|
|
||||
5 | self.y[: tuple[U@MyClass, U@MyClass]] = y
|
||||
6 |
|
||||
7 | x[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b"))
|
||||
| ^^^^^^^
|
||||
8 | y[: tuple[MyClass[Unknown | int, str], MyClass[Unknown | int, str]]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a",…
|
||||
9 | a[: MyClass[Unknown | int, str]], b[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "b…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -2410,6 +2664,25 @@ mod tests {
|
|||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:8:19
|
||||
|
|
||||
7 | x[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b"))
|
||||
8 | y[: tuple[MyClass[Unknown | int, str], MyClass[Unknown | int, str]]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a",…
|
||||
| ^^^^^^^
|
||||
9 | a[: MyClass[Unknown | int, str]], b[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "b…
|
||||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -2466,6 +2739,25 @@ mod tests {
|
|||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:8:48
|
||||
|
|
||||
7 | x[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b"))
|
||||
8 | y[: tuple[MyClass[Unknown | int, str], MyClass[Unknown | int, str]]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a",…
|
||||
| ^^^^^^^
|
||||
9 | a[: MyClass[Unknown | int, str]], b[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "b…
|
||||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -2598,6 +2890,25 @@ mod tests {
|
|||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:9:13
|
||||
|
|
||||
7 | x[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b"))
|
||||
8 | y[: tuple[MyClass[Unknown | int, str], MyClass[Unknown | int, str]]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a",…
|
||||
9 | a[: MyClass[Unknown | int, str]], b[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "b…
|
||||
| ^^^^^^^
|
||||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -2654,6 +2965,25 @@ mod tests {
|
|||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:9:47
|
||||
|
|
||||
7 | x[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b"))
|
||||
8 | y[: tuple[MyClass[Unknown | int, str], MyClass[Unknown | int, str]]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a",…
|
||||
9 | a[: MyClass[Unknown | int, str]], b[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "b…
|
||||
| ^^^^^^^
|
||||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -2785,6 +3115,24 @@ mod tests {
|
|||
| ^^^^^^^
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:10:13
|
||||
|
|
||||
8 | y[: tuple[MyClass[Unknown | int, str], MyClass[Unknown | int, str]]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a",…
|
||||
9 | a[: MyClass[Unknown | int, str]], b[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "b…
|
||||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
| ^^^^^^^
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -2838,6 +3186,24 @@ mod tests {
|
|||
| ^^^^^^^
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:10:47
|
||||
|
|
||||
8 | y[: tuple[MyClass[Unknown | int, str], MyClass[Unknown | int, str]]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a",…
|
||||
9 | a[: MyClass[Unknown | int, str]], b[: MyClass[Unknown | int, str]] = MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "b…
|
||||
10 | c[: MyClass[Unknown | int, str]], d[: MyClass[Unknown | int, str]] = (MyClass([x=][42], [y=]("a", "b")), MyClass([x=][42], [y=]("a", "…
|
||||
| ^^^^^^^
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -3347,6 +3713,24 @@ mod tests {
|
|||
4 | y[: list[Unknown | int]] = [2]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:3:10
|
||||
|
|
||||
2 | def foo(x: int): pass
|
||||
3 | x[: list[Unknown | int]] = [1]
|
||||
| ^^^^^^^
|
||||
4 | y[: list[Unknown | int]] = [2]
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -3384,6 +3768,26 @@ mod tests {
|
|||
6 | foo(x[0])
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:4:10
|
||||
|
|
||||
2 | def foo(x: int): pass
|
||||
3 | x[: list[Unknown | int]] = [1]
|
||||
4 | y[: list[Unknown | int]] = [2]
|
||||
| ^^^^^^^
|
||||
5 |
|
||||
6 | foo(x[0])
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/builtins.pyi:348:7
|
||||
|
|
||||
|
|
@ -4349,6 +4753,43 @@ mod tests {
|
|||
bar[: (a, b) -> Unknown] = lambda a, b: a + b
|
||||
foo([x=]5)
|
||||
bar([a=]1, [b=]2)
|
||||
---------------------------------------------
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:2:14
|
||||
|
|
||||
2 | foo[: (x) -> Unknown] = lambda x: x * 2
|
||||
| ^^^^^^^
|
||||
3 | bar[: (a, b) -> Unknown] = lambda a, b: a + b
|
||||
4 | foo([x=]5)
|
||||
|
|
||||
|
||||
info[inlay-hint-location]: Inlay Hint Target
|
||||
--> stdlib/ty_extensions.pyi:20:1
|
||||
|
|
||||
19 | # Types
|
||||
20 | Unknown = object()
|
||||
| ^^^^^^^
|
||||
21 | AlwaysTruthy = object()
|
||||
22 | AlwaysFalsy = object()
|
||||
|
|
||||
info: Source
|
||||
--> main2.py:3:17
|
||||
|
|
||||
2 | foo[: (x) -> Unknown] = lambda x: x * 2
|
||||
3 | bar[: (a, b) -> Unknown] = lambda a, b: a + b
|
||||
| ^^^^^^^
|
||||
4 | foo([x=]5)
|
||||
5 | bar([a=]1, [b=]2)
|
||||
|
|
||||
");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -612,16 +612,19 @@ impl Display for DisplayRepresentation<'_> {
|
|||
impl<'db> FmtDetailed<'db> for DisplayRepresentation<'db> {
|
||||
fn fmt_detailed(&self, f: &mut TypeWriter<'_, '_, 'db>) -> fmt::Result {
|
||||
match self.ty {
|
||||
Type::Dynamic(dynamic) => {
|
||||
if let DynamicType::Any = dynamic {
|
||||
write!(
|
||||
Type::Dynamic(dynamic) => match dynamic {
|
||||
DynamicType::Any => write!(
|
||||
f.with_detail(TypeDetail::Type(Type::SpecialForm(SpecialFormType::Any))),
|
||||
"{dynamic}"
|
||||
)
|
||||
} else {
|
||||
write!(f, "{dynamic}")
|
||||
}
|
||||
}
|
||||
),
|
||||
DynamicType::Unknown => write!(
|
||||
f.with_detail(TypeDetail::Type(Type::SpecialForm(
|
||||
SpecialFormType::Unknown
|
||||
))),
|
||||
"{dynamic}"
|
||||
),
|
||||
_ => write!(f, "{dynamic}"),
|
||||
},
|
||||
Type::Never => f.with_detail(TypeDetail::Type(self.ty)).write_str("Never"),
|
||||
Type::NominalInstance(instance) => {
|
||||
let class = instance.class(self.db);
|
||||
|
|
|
|||
Loading…
Reference in New Issue