)]}'
{
  "commit": "c0bbd8b7098b1a9a341462c725940bf936aa0aac",
  "tree": "303fbf748f2410204ab6d6217273786893d35b80",
  "parents": [
    "e4fbc05701ab41ebc927f558f2e047aef3d2c90d"
  ],
  "author": {
    "name": "Aaron Gokaslan",
    "email": "aaronGokaslan@gmail.com",
    "time": "Thu Mar 26 19:21:32 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Mar 26 16:21:32 2026 -0700"
  },
  "message": "fix: bind noexcept and ref-qualified methods from unregistered base classes (#5992)\n\n* Strip noexcept from cpp17 function type bindings\n\n* Fix a bug and increase test coverage\n\n* Does this fix it?\n\n* Silence clang-tidy issue\n\n* Simplify method adapter with macro and add missing rvalue adaptors + tests\n\n* Supress clang-tidy errors\n\n* Improve test coverage\n\n* Add additional static assert\n\n* Try to resolve MSVC C4003 warning\n\n* Simplify method adaptor into 2 template instatiations with enable_if_t\n\n* Fix ambiguous STL template\n\n* Close remaining qualifier consistency gaps for member pointer bindings.\n\nA production-code review after #2234 showed that ref-qualified member pointers were still inconsistently handled across def_buffer, vectorize, and overload_cast, so this adds the missing overloads with focused tests for each newly-supported signature.\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\n\n* Clarify why def_buffer/vectorize omit rvalue-qualified overloads.\n\nThese comments were added while reviewing the qualifier coverage follow-up, to document that buffer/vectorized calls operate on existing Python-owned instances and should not move-from self.\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\n\n* Add compile-only overload_cast guard for ref-qualified methods.\n\nThis was added as a maintenance follow-up to the qualifier-consistency work, so future changes that introduce overload_cast ambiguity or wrong ref/noexcept resolution fail at compile time.\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\n\n* Refactor overload_cast_impl qualifier overloads with a macro.\n\nAs part of the qualifier-consistency maintenance follow-up, this reduces duplication in overload_cast_impl while preserving the same ref/noexcept coverage and keeping pedantic-clean macro expansion.\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\n\n* Expose __cpp_noexcept_function_type to Python tests and use explicit skip guards.\n\nThis replaces hasattr-based optional assertions with skipif-gated noexcept-only tests so skipped coverage is visible in pytest output while keeping non-noexcept checks always active.\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\n\n* Add static_assert in method_adaptor to guard that T is a member function pointer.\n\nSuggested by @Skylion007 in PR #5992 review comment [T007].\n\nMade-with: Cursor\n\n* automatic clang-format change (because of #6002)\n\n---------\n\nCo-authored-by: Ralf W. Grosse-Kunstleve \u003crgrossekunst@nvidia.com\u003e\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5576ad1300c7198ed4b8d0d5c417e433420ac40d",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/common.h",
      "new_id": "ebffe579a3664f5fafaf9e3442901ab2946d4d2d",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/common.h"
    },
    {
      "type": "modify",
      "old_id": "408d1699cfdd9154752acebdda209f0b3d6cb9b7",
      "old_mode": 33188,
      "old_path": "include/pybind11/numpy.h",
      "new_id": "10c0c9446cc0734d04e1ab59ddf7beda8250769b",
      "new_mode": 33188,
      "new_path": "include/pybind11/numpy.h"
    },
    {
      "type": "modify",
      "old_id": "454638e299177ce5be5a5cedd111f67545295f16",
      "old_mode": 33188,
      "old_path": "include/pybind11/pybind11.h",
      "new_id": "6c269adbe18e7116019635fd40cc7c9f2e576437",
      "new_mode": 33188,
      "new_path": "include/pybind11/pybind11.h"
    },
    {
      "type": "modify",
      "old_id": "47d9d9a8cb631824068ed1098f64fa847d17e6be",
      "old_mode": 33188,
      "old_path": "tests/pybind11_tests.cpp",
      "new_id": "5dacd7aeb69391772c7abaeaf09aae533fac74fe",
      "new_mode": 33188,
      "new_path": "tests/pybind11_tests.cpp"
    },
    {
      "type": "modify",
      "old_id": "525be80bc0d269ca26436e67726b679fcb5291a8",
      "old_mode": 33188,
      "old_path": "tests/test_buffers.cpp",
      "new_id": "5ac4553a530c20f8fa80af31a9f7394d01d411c9",
      "new_mode": 33188,
      "new_path": "tests/test_buffers.cpp"
    },
    {
      "type": "modify",
      "old_id": "f666df5bad83c96e06a61ce931c3f16c062e7269",
      "old_mode": 33188,
      "old_path": "tests/test_buffers.py",
      "new_id": "c1d5770ab0102cd999aca9b377634f1dbe5ed584",
      "new_mode": 33188,
      "new_path": "tests/test_buffers.py"
    },
    {
      "type": "modify",
      "old_id": "a72d18792d4773b8af8dc11da447b26c08b3ca6d",
      "old_mode": 33188,
      "old_path": "tests/test_methods_and_attributes.cpp",
      "new_id": "f46563cec3032b2cac472e3ec101e3748a0b18c5",
      "new_mode": 33188,
      "new_path": "tests/test_methods_and_attributes.cpp"
    },
    {
      "type": "modify",
      "old_id": "ef0e7ac5170dbe6bba655ce86d712e29d2c03827",
      "old_mode": 33188,
      "old_path": "tests/test_methods_and_attributes.py",
      "new_id": "c0943742dae3004e891286718f4f3dc3a6d17199",
      "new_mode": 33188,
      "new_path": "tests/test_methods_and_attributes.py"
    },
    {
      "type": "modify",
      "old_id": "dcc4c6ac250c1b113c697db6aab31d8105ea681e",
      "old_mode": 33188,
      "old_path": "tests/test_numpy_vectorize.cpp",
      "new_id": "2334521658fc0353417df5a6ce590d7ae18512b2",
      "new_mode": 33188,
      "new_path": "tests/test_numpy_vectorize.cpp"
    },
    {
      "type": "modify",
      "old_id": "05f7c704f5efec624565f3ab7ab095ca0b7ebc74",
      "old_mode": 33188,
      "old_path": "tests/test_numpy_vectorize.py",
      "new_id": "030abeceaaa488ab1b621597f40659d0b7ac10e3",
      "new_mode": 33188,
      "new_path": "tests/test_numpy_vectorize.py"
    }
  ]
}
