From 25a6690cdb0bc43e8dc32f9bc2998eca8fc54e5a Mon Sep 17 00:00:00 2001 From: Douglas Creager Date: Fri, 12 Dec 2025 21:59:44 -0500 Subject: [PATCH] add materialization test --- .../mdtest/generics/pep695/paramspec.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md b/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md index 0aa0996e1e..43e3e38063 100644 --- a/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md +++ b/crates/ty_python_semantic/resources/mdtest/generics/pep695/paramspec.md @@ -619,6 +619,22 @@ reveal_type(foo.method) # revealed: bound method Foo[(int, str, /)].method(int, reveal_type(foo.method(1, "a")) # revealed: str ``` +### Gradual types propagate through `ParamSpec` inference + +```py +from typing import Callable + +def callable_identity[**P, R](func: Callable[P, R]) -> Callable[P, R]: + return func + +@callable_identity +def f(env: dict) -> None: + pass + +# revealed: (env: dict[Unknown, Unknown]) -> None +reveal_type(f) +``` + ### Overloads `overloaded.pyi`: