diff --git a/packages/pyright-internal/src/analyzer/typeInlayHintsWalker.ts b/packages/pyright-internal/src/analyzer/typeInlayHintsWalker.ts index 9d435320c..90ec140ab 100644 --- a/packages/pyright-internal/src/analyzer/typeInlayHintsWalker.ts +++ b/packages/pyright-internal/src/analyzer/typeInlayHintsWalker.ts @@ -260,7 +260,9 @@ export class TypeInlayHintsWalker extends ParseTreeWalker { // don't show them on super calls because that's invalid. node.d.leftExpr.d.value !== 'super' && // only show them on classes, because the index syntax to specify generics isn't valid on functions - isClass(callableType) + isClass(callableType) && + // pseudo-generic classes aren't actually generic, so it's invalid to explicitly specify them + !ClassType.isPseudoGenericClass(callableType) ) { const returnType = evaluator.getType(node); if ( diff --git a/packages/pyright-internal/src/tests/samples/inlay_hints/generics.py b/packages/pyright-internal/src/tests/samples/inlay_hints/generics.py index 532402521..0ed05e5dd 100644 --- a/packages/pyright-internal/src/tests/samples/inlay_hints/generics.py +++ b/packages/pyright-internal/src/tests/samples/inlay_hints/generics.py @@ -33,3 +33,9 @@ def foo(self) -> None: return super().foo() qux: list[tuple[int, str]] = list() + +class Quxx: + def __init__(self, value) -> None: ... + + +_ = Quxx(value=1) \ No newline at end of file