Skip to content

gh-137191: Fix how type parameters are collected from Protocol and Generic bases with parameters - #137281

Merged
sobolevn merged 3 commits into
python:mainfrom
sobolevn:issue-137191
Aug 3, 2025
Merged

gh-137191: Fix how type parameters are collected from Protocol and Generic bases with parameters#137281
sobolevn merged 3 commits into
python:mainfrom
sobolevn:issue-137191

Conversation

@sobolevn

@sobolevnsobolevn commented Jul 31, 2025

Copy link
Copy Markdown
Member

While fixing this problem, I've also noticed that code like

classExtraTypeVars(P1[S], Protocol[T, T2]): ...

never produced any TypeError, it is in contrast to

classExtraTypeVars(P1[S], Generic[T, T2]): ...

which produced this error as it should. I've fixed this as well.

@sobolevnsobolevn added the 3.15 pre-release feature fixes, bugs and security fixes label Jul 31, 2025
Comment threadLib/typing.py Outdated
@sobolevn

Copy link
Copy Markdown
MemberAuthor

Thank you! I will keep this open for a bit for any extra feedback :)

@sobolevn

Copy link
Copy Markdown
MemberAuthor

Looks like there are no objections / suggestions. Merging!

@sobolevn
sobolevn merged commit 158b28d into python:mainAug 3, 2025
45 checks passed
@bedevere-bot

Copy link
Copy Markdown

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot ARM Raspbian Linux Asan 3.x (no tier) has failed when building commit 158b28d.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/#/builders/1811/builds/69) and take a look at the build logs.
  4. Check if the failure is related to this commit (158b28d) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/#/builders/1811/builds/69

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 14, done. remote: Counting objects: 7% (1/13) remote: Counting objects: 15% (2/13) remote: Counting objects: 23% (3/13) remote: Counting objects: 30% (4/13) remote: Counting objects: 38% (5/13) remote: Counting objects: 46% (6/13) remote: Counting objects: 53% (7/13) remote: Counting objects: 61% (8/13) remote: Counting objects: 69% (9/13) remote: Counting objects: 76% (10/13) remote: Counting objects: 84% (11/13) remote: Counting objects: 92% (12/13) remote: Counting objects: 100% (13/13) remote: Counting objects: 100% (13/13), done. remote: Compressing objects: 12% (1/8) remote: Compressing objects: 25% (2/8) remote: Compressing objects: 37% (3/8) remote: Compressing objects: 50% (4/8) remote: Compressing objects: 62% (5/8) remote: Compressing objects: 75% (6/8) remote: Compressing objects: 87% (7/8) remote: Compressing objects: 100% (8/8) remote: Compressing objects: 100% (8/8), done. remote: Total 14 (delta 5), reused 5 (delta 5), pack-reused 1 (from 1) 
From https://github.com/python/cpython
* branch main -> FETCH_HEAD
Note: switching to '158b28dd1906c5d3fac7955f87ba808f1e89fdad'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 158b28dd190 gh-137191: Fix how type parameters are collected from `Protocol` and `Generic` bases with parameters (#137281)
Switched to and reset branch 'main'
configure: WARNING: no system libmpdec found; falling back to pure-Python version for the decimal module
In file included from ./Include/internal/pycore_dict.h:11,
from Objects/typeobject.c:7:
In function ‘Py_DECREF_MORTAL’,
inlined from ‘PyStackRef_XCLOSE’ at ./Include/internal/pycore_stackref.h:730:9,
inlined from ‘_PyThreadState_PopCStackRef’ at ./Include/internal/pycore_stackref.h:810:5,
inlined from ‘vectorcall_maybe’ at Objects/typeobject.c:3107:9:
./Include/internal/pycore_object.h:481:8: warning: array subscript 0 is outside array bounds of ‘PyObject[0]’ {aka ‘struct _object[]’} [-Warray-bounds]
481 | if (--op->ob_refcnt == 0) {
|^
Timeout (0:05:00)!
Thread 0x0000007f7ceef100 [Thread-2] (most recent call first):
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/subprocess.py", line 2044 in _wait
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/subprocess.py", line 1277 in wait
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 194 in _run_process
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 299 in run_tmp_files
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 363 in _runtest
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 403 in run
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/threading.py", line 1074 in _bootstrap_inner
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/threading.py", line 1036 in _bootstrap
Thread 0x0000007f7d6ff100 [Thread-1] (most recent call first):
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/subprocess.py", line 2057 in _wait
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/subprocess.py", line 1277 in wait
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 194 in _run_process
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 299 in run_tmp_files
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 363 in _runtest
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 403 in run
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/threading.py", line 1074 in _bootstrap_inner
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/threading.py", line 1036 in _bootstrap
Thread 0x0000007f893fa6c0 [python] (most recent call first):
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/utils.py", line 82 in format_duration
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 464 in get_running
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 551 in _get_result
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/run_workers.py", line 610 in run
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/main.py", line 455 in _run_tests_mp
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/main.py", line 561 in _run_tests
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/main.py", line 598 in run_tests
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/main.py", line 767 in main
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/libregrtest/main.py", line 775 in main
File "/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/Lib/test/__main__.py", line 2 in <module>
File "<frozen runpy>", line 88 in _run_code
File "<frozen runpy>", line 198 in _run_module_as_main
make: *** [Makefile:2494: buildbottest] Error 1
Cannot open file '/home/buildbot/buildarea/3.x.pablogsal-rasp.asan/build/test-results.xml' for upload

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.15pre-release feature fixes, bugs and security fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@sobolevn@bedevere-bot@JelleZijlstra