From 5b5e1f33c0298a98b52725ad228ebfdd82425ac0 Mon Sep 17 00:00:00 2001 From: GiGaGon <107241144+MeGaGiGaGon@users.noreply.github.com> Date: Wed, 4 Mar 2026 15:14:55 -0800 Subject: [PATCH 1/2] [ty] Add quotes to related issues links --- crates/ruff_dev/src/generate_ty_rules.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/ruff_dev/src/generate_ty_rules.rs b/crates/ruff_dev/src/generate_ty_rules.rs index 87b76e56e9900a..3b0cb514964105 100644 --- a/crates/ruff_dev/src/generate_ty_rules.rs +++ b/crates/ruff_dev/src/generate_ty_rules.rs @@ -116,7 +116,7 @@ fn generate_markdown() -> String { r#" Default level: {level} · {status_text} · -Related issues · +Related issues · View source From 1cd4ed52bbc47941a87a3f2b41a5aa8782b5ef83 Mon Sep 17 00:00:00 2001 From: GiGaGon <107241144+MeGaGiGaGon@users.noreply.github.com> Date: Wed, 4 Mar 2026 15:35:56 -0800 Subject: [PATCH 2/2] Re-generate ty rules.md (Hopefully this works since I did it manually since can't build ruff) --- crates/ty/docs/rules.md | 226 ++++++++++++++++++++-------------------- 1 file changed, 113 insertions(+), 113 deletions(-) diff --git a/crates/ty/docs/rules.md b/crates/ty/docs/rules.md index c4672536a4fdc2..ad0e4e0a9ff9fe 100644 --- a/crates/ty/docs/rules.md +++ b/crates/ty/docs/rules.md @@ -7,7 +7,7 @@ Default level: error · Added in 0.0.13 · -Related issues · +Related issues · View source @@ -48,7 +48,7 @@ class Derived(Base): # Error: `Derived` does not implement `method` Default level: warn · Added in 0.0.1-alpha.20 · -Related issues · +Related issues · View source @@ -89,7 +89,7 @@ class SubProto(BaseProto, Protocol): Default level: error · Added in 0.0.14 · -Related issues · +Related issues · View source @@ -125,7 +125,7 @@ def _(x: int): Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -156,7 +156,7 @@ def test(): -> "int": Default level: error · Preview (since 0.0.16) · -Related issues · +Related issues · View source @@ -205,7 +205,7 @@ Foo.method() # Error: cannot call abstract classmethod Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -229,7 +229,7 @@ Calling a non-callable object will raise a `TypeError` at runtime. Default level: error · Added in 0.0.7 · -Related issues · +Related issues · View source @@ -260,7 +260,7 @@ def f(x: object): Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -292,7 +292,7 @@ f(int) # error Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -323,7 +323,7 @@ a = 1 Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -355,7 +355,7 @@ class C(A, B): ... Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -387,7 +387,7 @@ class B(A): ... Default level: error · Added in 0.0.1-alpha.29 · -Related issues · +Related issues · View source @@ -415,7 +415,7 @@ type B = A Default level: error · Preview (since 1.0.0) · -Related issues · +Related issues · View source @@ -447,7 +447,7 @@ class Example: Default level: warn · Added in 0.0.1-alpha.16 · -Related issues · +Related issues · View source @@ -474,7 +474,7 @@ old_func() # emits [deprecated] diagnostic Default level: ignore · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -503,7 +503,7 @@ false positives it can produce. Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -530,7 +530,7 @@ class B(A, A): ... Default level: error · Added in 0.0.1-alpha.12 · -Related issues · +Related issues · View source @@ -568,7 +568,7 @@ class A: # Crash at runtime Default level: error · Added in 0.0.14 · -Related issues · +Related issues · View source @@ -614,7 +614,7 @@ def bar() -> str: Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -639,7 +639,7 @@ def foo() -> "intt\b": ... Default level: error · Added in 0.0.20 · -Related issues · +Related issues · View source @@ -671,7 +671,7 @@ def my_function() -> int: Default level: error · Added in 0.0.15 · -Related issues · +Related issues · View source @@ -704,7 +704,7 @@ MY_CONSTANT: Final[int] = 1 Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -735,7 +735,7 @@ def test(): -> "int": Default level: warn · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -766,7 +766,7 @@ a = 20 / 0 # ty: ignore[division-by-zero] Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -797,7 +797,7 @@ def test(): -> "Literal[5]": Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -827,7 +827,7 @@ class C(A, B): ... Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -853,7 +853,7 @@ t[3] # IndexError: tuple index out of range Default level: warn · Added in 0.0.1-alpha.33 · -Related issues · +Related issues · View source @@ -887,7 +887,7 @@ class MyClass: ... Default level: error · Added in 0.0.1-alpha.12 · -Related issues · +Related issues · View source @@ -976,7 +976,7 @@ an atypical memory layout. Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1003,7 +1003,7 @@ func("foo") # error: [invalid-argument-type] Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1031,7 +1031,7 @@ a: int = '' Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1065,7 +1065,7 @@ C.instance_var = 3 # error: Cannot assign to instance variable Default level: error · Added in 0.0.1-alpha.19 · -Related issues · +Related issues · View source @@ -1101,7 +1101,7 @@ asyncio.run(main()) Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1125,7 +1125,7 @@ class A(42): ... # error: [invalid-base] Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1152,7 +1152,7 @@ with 1: Default level: error · Added in 0.0.12 · -Related issues · +Related issues · View source @@ -1189,7 +1189,7 @@ class Foo(NamedTuple): Default level: error · Added in 0.0.13 · -Related issues · +Related issues · View source @@ -1221,7 +1221,7 @@ class A: Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1250,7 +1250,7 @@ a: str Default level: warn · Added in 0.0.20 · -Related issues · +Related issues · View source @@ -1299,7 +1299,7 @@ class Pet(Enum): Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1343,7 +1343,7 @@ except ZeroDivisionError: Default level: error · Added in 0.0.1-alpha.28 · -Related issues · +Related issues · View source @@ -1385,7 +1385,7 @@ class D(A): Default level: error · Added in 0.0.1-alpha.35 · -Related issues · +Related issues · View source @@ -1429,7 +1429,7 @@ class NonFrozenChild(FrozenBase): # Error raised here Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1467,7 +1467,7 @@ class D(Generic[U, T]): ... Default level: error · Added in 0.0.12 · -Related issues · +Related issues · View source @@ -1516,7 +1516,7 @@ x: G[int] Default level: warn · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1546,7 +1546,7 @@ a = 20 / 0 # type: ignore Default level: error · Added in 0.0.1-alpha.17 · -Related issues · +Related issues · View source @@ -1585,7 +1585,7 @@ carol = Person(name="Carol", age=25) # typo! Default level: warn · Added in 0.0.15 · -Related issues · +Related issues · View source @@ -1646,7 +1646,7 @@ def f(x, y, /): # Python 3.8+ syntax Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1681,7 +1681,7 @@ def f(t: TypeVar("U")): ... Default level: error · Added in 0.0.18 · -Related issues · +Related issues · View source @@ -1709,7 +1709,7 @@ match x: Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1743,7 +1743,7 @@ class B(metaclass=f): ... Default level: error · Added in 0.0.1-alpha.20 · -Related issues · +Related issues · View source @@ -1850,7 +1850,7 @@ Correct use of `@override` is enforced by ty's `invalid-explicit-override` rule. Default level: error · Added in 0.0.1-alpha.19 · -Related issues · +Related issues · View source @@ -1904,7 +1904,7 @@ AttributeError: Cannot overwrite NamedTuple attribute _asdict Default level: error · Added in 0.0.1-alpha.27 · -Related issues · +Related issues · View source @@ -1934,7 +1934,7 @@ Baz = NewType("Baz", int | str) # error: invalid base for `typing.NewType` Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -1984,7 +1984,7 @@ def foo(x: int) -> int: ... Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2010,7 +2010,7 @@ def f(a: int = ''): ... Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2041,7 +2041,7 @@ P2 = ParamSpec("S2") # error: ParamSpec name must match the variable it's assig Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2075,7 +2075,7 @@ TypeError: Protocols can only inherit from other protocols, got Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2124,7 +2124,7 @@ def g(): Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2153,7 +2153,7 @@ def func() -> int: Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2199,7 +2199,7 @@ super(B, A) # error: `A` does not satisfy `issubclass(A, B)` Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2249,7 +2249,7 @@ class C: ... Default level: error · Added in 0.0.10 · -Related issues · +Related issues · View source @@ -2295,7 +2295,7 @@ class MyClass: Default level: error · Added in 0.0.1-alpha.6 · -Related issues · +Related issues · View source @@ -2322,7 +2322,7 @@ NewAlias = TypeAliasType(get_name(), int) # error: TypeAliasType name mus Default level: error · Added in 0.0.1-alpha.29 · -Related issues · +Related issues · View source @@ -2369,7 +2369,7 @@ Bar[int] # error: too few arguments Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2399,7 +2399,7 @@ TYPE_CHECKING = '' Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2429,7 +2429,7 @@ b: Annotated[int] # `Annotated` expects at least two arguments Default level: error · Added in 0.0.1-alpha.11 · -Related issues · +Related issues · View source @@ -2463,7 +2463,7 @@ f(10) # Error Default level: error · Added in 0.0.1-alpha.11 · -Related issues · +Related issues · View source @@ -2497,7 +2497,7 @@ class C: Default level: error · Added in 0.0.15 · -Related issues · +Related issues · View source @@ -2528,7 +2528,7 @@ def g[U, T: U](): ... # error: [invalid-type-variable-bound] Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2575,7 +2575,7 @@ U = TypeVar('U', list[int], int) # valid constrained Type Default level: error · Added in 0.0.16 · -Related issues · +Related issues · View source @@ -2607,7 +2607,7 @@ U = TypeVar("U", int, str, default=bytes) # error: [invalid-type-variable-defau Default level: error · Added in 0.0.14 · -Related issues · +Related issues · View source @@ -2642,7 +2642,7 @@ def f(x: dict): Default level: error · Added in 0.0.9 · -Related issues · +Related issues · View source @@ -2673,7 +2673,7 @@ class Foo(TypedDict): Default level: error · Added in 0.0.14 · -Related issues · +Related issues · View source @@ -2728,7 +2728,7 @@ def h(arg2: type): Default level: error · Added in 0.0.15 · -Related issues · +Related issues · View source @@ -2771,7 +2771,7 @@ def g(arg: object): Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2796,7 +2796,7 @@ func() # TypeError: func() missing 1 required positional argument: 'x' Default level: error · Added in 0.0.1-alpha.20 · -Related issues · +Related issues · View source @@ -2829,7 +2829,7 @@ alice["age"] # KeyError Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2858,7 +2858,7 @@ func("string") # error: [no-matching-overload] Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2884,7 +2884,7 @@ for i in 34: # TypeError: 'int' object is not iterable Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -2908,7 +2908,7 @@ Subscripting an object that does not support it will raise a `TypeError` at runt Default level: error · Added in 0.0.1-alpha.29 · -Related issues · +Related issues · View source @@ -2941,7 +2941,7 @@ class B(A): Default level: error · Added in 0.0.16 · -Related issues · +Related issues · View source @@ -2974,7 +2974,7 @@ class B(A): Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3001,7 +3001,7 @@ f(1, x=2) # Error raised here Default level: error · Added in 0.0.1-alpha.22 · -Related issues · +Related issues · View source @@ -3028,7 +3028,7 @@ f(x=1) # Error raised here Default level: warn · Added in 0.0.1-alpha.22 · -Related issues · +Related issues · View source @@ -3056,7 +3056,7 @@ A.c # AttributeError: type object 'A' has no attribute 'c' Default level: warn · Added in 0.0.1-alpha.22 · -Related issues · +Related issues · View source @@ -3088,7 +3088,7 @@ A()[0] # TypeError: 'A' object is not subscriptable Default level: ignore · Added in 0.0.1-alpha.22 · -Related issues · +Related issues · View source @@ -3125,7 +3125,7 @@ from module import a # ImportError: cannot import name 'a' from 'module' Default level: ignore · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3158,7 +3158,7 @@ print(x) # NameError: name 'x' is not defined Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3189,7 +3189,7 @@ def test(): -> "int": Default level: warn · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3216,7 +3216,7 @@ cast(int, f()) # Redundant Default level: warn · Added in 0.0.18 · -Related issues · +Related issues · View source @@ -3248,7 +3248,7 @@ class C: Default level: error · Added in 0.0.20 · -Related issues · +Related issues · View source @@ -3282,7 +3282,7 @@ class Outer[T]: Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3312,7 +3312,7 @@ static_assert(int(2.0 * 3.0) == 6) # error: does not have a statically known tr Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3341,7 +3341,7 @@ class B(A): ... # Error raised here Default level: error · Added in 0.0.1-alpha.30 · -Related issues · +Related issues · View source @@ -3375,7 +3375,7 @@ class F(NamedTuple): Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3402,7 +3402,7 @@ f("foo") # Error raised here Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3430,7 +3430,7 @@ def _(x: int): Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3476,7 +3476,7 @@ class A: Default level: error · Added in 0.0.20 · -Related issues · +Related issues · View source @@ -3513,7 +3513,7 @@ class C(Generic[T]): Default level: warn · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3537,7 +3537,7 @@ reveal_type(1) # NameError: name 'reveal_type' is not defined Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3564,7 +3564,7 @@ f(x=1, y=2) # Error raised here Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3592,7 +3592,7 @@ A().foo # AttributeError: 'A' object has no attribute 'foo' Default level: warn · Added in 0.0.1-alpha.15 · -Related issues · +Related issues · View source @@ -3650,7 +3650,7 @@ def g(): Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3675,7 +3675,7 @@ import foo # ModuleNotFoundError: No module named 'foo' Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3700,7 +3700,7 @@ print(x) # NameError: name 'x' is not defined Default level: warn · Added in 0.0.1-alpha.7 · -Related issues · +Related issues · View source @@ -3739,7 +3739,7 @@ class D(C): ... # error: [unsupported-base] Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3776,7 +3776,7 @@ b1 < b2 < b1 # exception raised here Default level: ignore · Added in 0.0.12 · -Related issues · +Related issues · View source @@ -3817,7 +3817,7 @@ def factory(base: type[Base]) -> type: Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3845,7 +3845,7 @@ A() + A() # TypeError: unsupported operand type(s) for +: 'A' and 'A' Default level: warn · Preview (since 0.0.21) · -Related issues · +Related issues · View source @@ -3878,7 +3878,7 @@ async def main() -> None: Default level: warn · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source @@ -3914,7 +3914,7 @@ to `false` to prevent this rule from reporting unused `type: ignore` comments. Default level: warn · Added in 0.0.14 · -Related issues · +Related issues · View source @@ -3951,7 +3951,7 @@ to `false`. Default level: warn · Added in 0.0.1-alpha.22 · -Related issues · +Related issues · View source @@ -4014,7 +4014,7 @@ def foo(x: int | str) -> int | str: Default level: error · Added in 0.0.1-alpha.1 · -Related issues · +Related issues · View source