New GitHub issue #118772 from JelleZijlstra:<br>

<hr>

<pre>
# Bug report

### Bug description:

```pycon
% ./python.exe                     
Python 3.14.0a0 (heads/main-dirty:891fd12e52, May  8 2024, 09:02:37) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from typing import *
>>> T = TypeVar("T")
>>> T_dflt = TypeVar("T_dflt", default=int)
>>> Callable[[T_dflt], T]
Traceback (most recent call last):
  File "<python-input-3>", line 1, in <module>
    Callable[[T_dflt], T]
 ~~~~~~~~^^^^^^^^^^^^^
  File "/Users/jelle/py/cpython/Lib/typing.py", line 1717, in __getitem__
    return self.__getitem_inner__(params)
 ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "/Users/jelle/py/cpython/Lib/typing.py", line 431, in inner
    return func(*args, **kwds)
  File "/Users/jelle/py/cpython/Lib/typing.py", line 1730, in __getitem_inner__
    return self.copy_with(params)
 ~~~~~~~~~~~~~~^^^^^^^^
  File "/Users/jelle/py/cpython/Lib/typing.py", line 1702, in copy_with
    return _CallableGenericAlias(self.__origin__, params,
                                 name=self._name, inst=self._inst)
 File "/Users/jelle/py/cpython/Lib/typing.py", line 1419, in __init__
 self.__parameters__ = _collect_parameters(args)
 ~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/Users/jelle/py/cpython/Lib/typing.py", line 296, in _collect_parameters
    raise TypeError(f'Type parameter {t!r} without a default'
                    ' follows type parameter with a default')
TypeError: Type parameter ~T without a default follows type parameter with a default
```

This can reasonably happen if you have a generic class generic over a TypeVar with a default, and that TypeVar appears in a Callable parameter type annotation:

```
class X[T1=int]:
    def meth[T](self, x: Callable[[T1], T]): pass
```

We encountered this in Hypothesis.

cc @Gobot1234 

### CPython versions tested on:

CPython main branch

### Operating systems tested on:

macOS
</pre>

<hr>

<a href="https://github.com/python/cpython/issues/118772">View on GitHub</a>
<p>Labels: type-bug, topic-typing, 3.13, 3.14</p>
<p>Assignee: </p>