{"abstract":"Makes the classmethod static and loses automatic class binding and changes the required Python-language result.","category":"Method resolution","checks":4,"contract":"An inherited classmethod binds the accessing class, including access through an instance or a saved bound method. Return [bound class name,its label,suffix]. Inputs use the finite Python types shown in the fixtures. An error string denotes the specified caught exception, not an unhandled process failure.","evaluation_group":"xl-classmethod-dynamic-binding","failed_approach":"The alternative still fails because it uses an ordinary instance method in place of a classmethod.","family":"xl-classmethod-dynamic-binding-staticmethod-substitution","id":"FA-5106","implementations":{"attempt":{"sha256":"9476c287760c09e188e4ce4cd681692bbc34c060c262a7d29090618edeb05ef5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(mode, suffix):\n    class Base:\n        label='base'\n    \n        def read(cls,suffix): return [cls.__name__,cls.label,suffix]\n    class Child(Base): label='child'\n    try:\n        if mode=='base': return Base.read(suffix)\n        if mode=='child': return Child.read(suffix)\n        if mode=='instance': return Child().read(suffix)\n        bound=Child.read\n        return bound(suffix)\n    except (TypeError,AttributeError) as exc:\n        return type(exc).__name__\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('base access', solve('base', 'x'), ['Base', 'base', 'x'])\ncheck('subclass access', solve('child', 'y'), ['Child', 'child', 'y'])\ncheck('instance access', solve('instance', None), ['Child', 'child', None])\ncheck('saved bound method', solve('saved', 0), ['Child', 'child', 0])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"8c16be7966c9295d7053ca28d71a673079fd69fca962771ee7a5781ec72effa7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(mode, suffix):\n    class Base:\n        label='base'\n        @staticmethod\n        def read(cls,suffix): return [cls.__name__,cls.label,suffix]\n    class Child(Base): label='child'\n    try:\n        if mode=='base': return Base.read(suffix)\n        if mode=='child': return Child.read(suffix)\n        if mode=='instance': return Child().read(suffix)\n        bound=Child.read\n        return bound(suffix)\n    except (TypeError,AttributeError) as exc:\n        return type(exc).__name__\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('base access', solve('base', 'x'), ['Base', 'base', 'x'])\ncheck('subclass access', solve('child', 'y'), ['Child', 'child', 'y'])\ncheck('instance access', solve('instance', None), ['Child', 'child', None])\ncheck('saved bound method', solve('saved', 0), ['Child', 'child', 0])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"7f30de44638b8a60d774a651f2944bc1d879f12c49eeda25f27204a7ea91a750","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(mode, suffix):\n    class Base:\n        label='base'\n        @classmethod\n        def read(cls,suffix): return [cls.__name__,cls.label,suffix]\n    class Child(Base): label='child'\n    try:\n        if mode=='base': return Base.read(suffix)\n        if mode=='child': return Child.read(suffix)\n        if mode=='instance': return Child().read(suffix)\n        bound=Child.read\n        return bound(suffix)\n    except (TypeError,AttributeError) as exc:\n        return type(exc).__name__\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('base access', solve('base', 'x'), ['Base', 'base', 'x'])\ncheck('subclass access', solve('child', 'y'), ['Child', 'child', 'y'])\ncheck('instance access', solve('instance', None), ['Child', 'child', None])\ncheck('saved bound method', solve('saved', 0), ['Child', 'child', 0])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":" This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"xl-classmethod-dynamic-binding-staticmethod-substitution","generated_at":"2026-09-29T14:37:46.141598+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Runs Python standard-library language operations in a deterministic local reproducer. Literal expected answers are authored independently. Related defects share an evaluation group to avoid benchmark split leakage.","repair":"An inherited classmethod binds the accessing class, including access through an instance or a saved bound method. Return [bound class name,its label,suffix].","root_cause":"Makes the classmethod static and loses automatic class binding. The executable reproducer isolates this operation from the rest of the contract.","sha256":"3f23c82a5917ef53250882a4414f72100d6ac16db3bd6b50e6fe050c76591433","title":"Classmethod dynamic binding: Makes the classmethod static and loses automatic class binding · case 01","variant":1,"variant_policy":"The five numbered cases rerun the same authored boundary fixtures; they are reproducibility runs, not independent input variants.","verification":{"attempt":{"elapsed_ms":40.414,"exit_code":1,"observations":[{"actual":"TypeError","check":"base access","expected":["Base","base","x"],"passed":false},{"actual":"TypeError","check":"subclass access","expected":["Child","child","y"],"passed":false},{"actual":"AttributeError","check":"instance access","expected":["Child","child",null],"passed":false},{"actual":"TypeError","check":"saved bound method","expected":["Child","child",0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"base access\", \"actual\": \"TypeError\", \"expected\": [\"Base\", \"base\", \"x\"], \"passed\": false}, {\"check\": \"subclass access\", \"actual\": \"TypeError\", \"expected\": [\"Child\", \"child\", \"y\"], \"passed\": false}, {\"check\": \"instance access\", \"actual\": \"AttributeError\", \"expected\": [\"Child\", \"child\", null], \"passed\": false}, {\"check\": \"saved bound method\", \"actual\": \"TypeError\", \"expected\": [\"Child\", \"child\", 0], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.33,"exit_code":1,"observations":[{"actual":"TypeError","check":"base access","expected":["Base","base","x"],"passed":false},{"actual":"TypeError","check":"subclass access","expected":["Child","child","y"],"passed":false},{"actual":"TypeError","check":"instance access","expected":["Child","child",null],"passed":false},{"actual":"TypeError","check":"saved bound method","expected":["Child","child",0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"base access\", \"actual\": \"TypeError\", \"expected\": [\"Base\", \"base\", \"x\"], \"passed\": false}, {\"check\": \"subclass access\", \"actual\": \"TypeError\", \"expected\": [\"Child\", \"child\", \"y\"], \"passed\": false}, {\"check\": \"instance access\", \"actual\": \"TypeError\", \"expected\": [\"Child\", \"child\", null], \"passed\": false}, {\"check\": \"saved bound method\", \"actual\": \"TypeError\", \"expected\": [\"Child\", \"child\", 0], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":36.161,"exit_code":0,"observations":[{"actual":["Base","base","x"],"check":"base access","expected":["Base","base","x"],"passed":true},{"actual":["Child","child","y"],"check":"subclass access","expected":["Child","child","y"],"passed":true},{"actual":["Child","child",null],"check":"instance access","expected":["Child","child",null],"passed":true},{"actual":["Child","child",0],"check":"saved bound method","expected":["Child","child",0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"base access\", \"actual\": [\"Base\", \"base\", \"x\"], \"expected\": [\"Base\", \"base\", \"x\"], \"passed\": true}, {\"check\": \"subclass access\", \"actual\": [\"Child\", \"child\", \"y\"], \"expected\": [\"Child\", \"child\", \"y\"], \"passed\": true}, {\"check\": \"instance access\", \"actual\": [\"Child\", \"child\", null], \"expected\": [\"Child\", \"child\", null], \"passed\": true}, {\"check\": \"saved bound method\", \"actual\": [\"Child\", \"child\", 0], \"expected\": [\"Child\", \"child\", 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}