{"abstract":"Uses the defining Base class instead of the bound subclass 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 reports the bound class metaclass instead of the class name.","family":"xl-classmethod-dynamic-binding-defining-class-hardcoded","id":"FA-5116","implementations":{"attempt":{"sha256":"e80ebf3120618dc53b7a2e38fae56b40d501c2b35975a7d875e6c26e41054999","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 [type(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":"2048e0e5f3858c1098b86aec6e82d41de806f05a23282ce22c4fe22fc444e707","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 ['Base',Base.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-defining-class-hardcoded","generated_at":"2026-09-29T14:37:46.265647+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":"Uses the defining Base class instead of the bound subclass. The executable reproducer isolates this operation from the rest of the contract.","sha256":"e77bae31e3943fed61b77e4cf836b4e2343296079bed20d5a55d6108f48c550e","title":"Classmethod dynamic binding: Uses the defining Base class instead of the bound subclass · 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":39.124,"exit_code":1,"observations":[{"actual":["type","base","x"],"check":"base access","expected":["Base","base","x"],"passed":false},{"actual":["type","child","y"],"check":"subclass access","expected":["Child","child","y"],"passed":false},{"actual":["type","child",null],"check":"instance access","expected":["Child","child",null],"passed":false},{"actual":["type","child",0],"check":"saved bound method","expected":["Child","child",0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"base access\", \"actual\": [\"type\", \"base\", \"x\"], \"expected\": [\"Base\", \"base\", \"x\"], \"passed\": false}, {\"check\": \"subclass access\", \"actual\": [\"type\", \"child\", \"y\"], \"expected\": [\"Child\", \"child\", \"y\"], \"passed\": false}, {\"check\": \"instance access\", \"actual\": [\"type\", \"child\", null], \"expected\": [\"Child\", \"child\", null], \"passed\": false}, {\"check\": \"saved bound method\", \"actual\": [\"type\", \"child\", 0], \"expected\": [\"Child\", \"child\", 0], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.34,"exit_code":1,"observations":[{"actual":["Base","base","x"],"check":"base access","expected":["Base","base","x"],"passed":true},{"actual":["Base","base","y"],"check":"subclass access","expected":["Child","child","y"],"passed":false},{"actual":["Base","base",null],"check":"instance access","expected":["Child","child",null],"passed":false},{"actual":["Base","base",0],"check":"saved bound method","expected":["Child","child",0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"base access\", \"actual\": [\"Base\", \"base\", \"x\"], \"expected\": [\"Base\", \"base\", \"x\"], \"passed\": true}, {\"check\": \"subclass access\", \"actual\": [\"Base\", \"base\", \"y\"], \"expected\": [\"Child\", \"child\", \"y\"], \"passed\": false}, {\"check\": \"instance access\", \"actual\": [\"Base\", \"base\", null], \"expected\": [\"Child\", \"child\", null], \"passed\": false}, {\"check\": \"saved bound method\", \"actual\": [\"Base\", \"base\", 0], \"expected\": [\"Child\", \"child\", 0], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.651,"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"}