Skip to content

COM812 and COM819 do not support type parameter lists #18844

@dscorbett

Description

@dscorbett

Summary

missing-trailing-comma (COM812) and prohibited-trailing-comma (COM819) have false negatives for type parameter lists, wherein trailing commas make no difference. The comma rules for type parameter lists should be the same as for normal parameter lists.

COM812 should fix this:

type X[
    T
] = T
def f[
    T
](): pass
class C[
    T
]: pass

to this:

type X[
    T,
] = T
def f[
    T,
](): pass
class C[
    T,
]: pass

COM819 should fix this:

type X[T,] = T
def f[T,](): pass
class C[T,]: pass

to this:

type X[T] = T
def f[T](): pass
class C[T]: pass

Version

ruff 0.12.0 (87f0feb 2025-06-17)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedContributions especially welcomeruleImplementing or modifying a lint rule

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions