{"abstract":"Erasing a shared borrow manufactures exclusive trait-object access.","category":"Borrow checking","checks":21,"contract":"Check erased borrowed trait objects in a stipulated object calculus. Erasure retains referent lifetime and ownership capability; default object bound inside reference inherits reference bound; object method return aliases must be represented in the vtable summary; mutable methods require exclusive object access; upcasting cannot enlarge lifetime or change data-address provenance; thin conversion cannot discard lifetime metadata; associated borrowed output includes owner lifetime; object-safe methods cannot expose a locally quantified lifetime as an unbound output; dynamic destruction observes declared borrowed fields. Input is a fully explicit descriptor of the stated toy IR. Return rule identifiers in declaration order; absent optional obligations use the provided neutral defaults. No rule is an assertion about a production language.","evaluation_group":"s3-borrow-checking-trait-object-borrows","failed_approach":"The partial repair uses if d['object_unique'] and not d['source_unique'] and not d['exclusive_access']: errors.append('erasure-capability'), which still violates the stipulated analysis contract.","family":"s3-borrow-checking-trait-object-borrows-erasure-capability","id":"FA-43596","implementations":{"attempt":{"sha256":"18155bfccb5e2c0c947ec05255246265d7c90614cbc5821555bfb9cf48ebf7b4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    errors=[]\n    if d['source_bound']!=d['erased_bound']: errors.append('erasure-bound')\n    if d['object_unique'] and not d['source_unique'] and not d['exclusive_access']: errors.append('erasure-capability')\n    if d['reference_bound'] is not None and d['default_bound']!=d['reference_bound']: errors.append('reference-default-bound')\n    if not set(d['method_aliases'])<=set(d['vtable_aliases']): errors.append('vtable-alias')\n    if d['mut_method'] and not d['exclusive_access']: errors.append('mutable-dispatch')\n    if not set(d['upcast_after'])<=set(d['upcast_before']): errors.append('upcast-lifetime')\n    if d['source_address']!=d['upcast_address']: errors.append('upcast-provenance')\n    if d['thin'] and not d['lifetime_metadata']: errors.append('thin-metadata')\n    if bool(set(d['local_quantified'])&set(d['output_free'])): errors.append('associated-owner')\n    if not set(d['drop_observes'])<=set(d['drop_summary']): errors.append('dynamic-drop-summary')\n    return errors\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nbase={'source_bound': [], 'erased_bound': [], 'source_unique': False, 'object_unique': False, 'reference_bound': None, 'default_bound': None, 'method_aliases': [], 'vtable_aliases': [], 'mut_method': False, 'exclusive_access': True, 'upcast_before': [], 'upcast_after': [], 'source_address': None, 'upcast_address': None, 'thin': False, 'lifetime_metadata': True, 'assoc_owner': [], 'assoc_output': [], 'local_quantified': [], 'output_free': [], 'drop_observes': [], 'drop_summary': []}\ncheck('well formed empty obligations',solve(base),[])\ncheck('erasure-bound regression 0', solve(dict(base, **({'source_bound':[N],'erased_bound':[N+1]}))), ['erasure-bound'])\ncheck('erasure-bound regression 1', solve(dict(base, **({'source_bound':[N,N+1],'erased_bound':[N+1,N+2]}))), ['erasure-bound'])\ncheck('erasure-capability regression 0', solve(dict(base, **({'object_unique':True}))), ['erasure-capability'])\ncheck('erasure-capability regression 1', solve(dict(base, **({'object_unique':True,'source_bound':[N],'erased_bound':[N]}))), ['erasure-capability'])\ncheck('reference-default-bound regression 0', solve(dict(base, **({'reference_bound':'a','default_bound':'static'}))), ['reference-default-bound'])\ncheck('reference-default-bound regression 1', solve(dict(base, **({'reference_bound':N,'default_bound':N+1}))), ['reference-default-bound'])\ncheck('vtable-alias regression 0', solve(dict(base, **({'method_aliases':['a','b'],'vtable_aliases':['a']}))), ['vtable-alias'])\ncheck('vtable-alias regression 1', solve(dict(base, **({'method_aliases':[N,N+1],'vtable_aliases':[N]}))), ['vtable-alias'])\ncheck('mutable-dispatch regression 0', solve(dict(base, **({'mut_method':True,'exclusive_access':False}))), ['mutable-dispatch'])\ncheck('mutable-dispatch regression 1', solve(dict(base, **({'mut_method':True,'exclusive_access':False,'source_bound':[N],'erased_bound':[N]}))), ['mutable-dispatch'])\ncheck('upcast-lifetime regression 0', solve(dict(base, **({'upcast_before':[N],'upcast_after':[N+1]}))), ['upcast-lifetime'])\ncheck('upcast-lifetime regression 1', solve(dict(base, **({'upcast_before':[N,N+1],'upcast_after':[N+1,N+2]}))), ['upcast-lifetime'])\ncheck('upcast-provenance regression 0', solve(dict(base, **({'source_address':N,'upcast_address':N+1}))), ['upcast-provenance'])\ncheck('upcast-provenance regression 1', solve(dict(base, **({'source_address':'owner','upcast_address':'vtable'}))), ['upcast-provenance'])\ncheck('thin-metadata regression 0', solve(dict(base, **({'thin':True,'lifetime_metadata':False}))), ['thin-metadata'])\ncheck('thin-metadata regression 1', solve(dict(base, **({'thin':True,'lifetime_metadata':False,'source_bound':[N],'erased_bound':[N]}))), ['thin-metadata'])\ncheck('associated-owner regression 0', solve(dict(base, **({'local_quantified':['a'],'output_free':['a']}))), ['associated-owner'])\ncheck('associated-owner regression 1', solve(dict(base, **({'local_quantified':[N],'output_free':[N]}))), ['associated-owner'])\ncheck('dynamic-drop-summary regression 0', solve(dict(base, **({'drop_observes':['a','b'],'drop_summary':['a']}))), ['dynamic-drop-summary'])\ncheck('dynamic-drop-summary regression 1', solve(dict(base, **({'drop_observes':[N,N+1],'drop_summary':[N]}))), ['dynamic-drop-summary'])\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":"605e137235bf60f5c5b5e9be4976cee99d9cbc7802c2fee85fa9093423a73f31","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    errors=[]\n    if d['source_bound']!=d['erased_bound']: errors.append('erasure-bound')\n    if False: errors.append('erasure-capability')\n    if d['reference_bound'] is not None and d['default_bound']!=d['reference_bound']: errors.append('reference-default-bound')\n    if not set(d['method_aliases'])<=set(d['vtable_aliases']): errors.append('vtable-alias')\n    if d['mut_method'] and not d['exclusive_access']: errors.append('mutable-dispatch')\n    if not set(d['upcast_after'])<=set(d['upcast_before']): errors.append('upcast-lifetime')\n    if d['source_address']!=d['upcast_address']: errors.append('upcast-provenance')\n    if d['thin'] and not d['lifetime_metadata']: errors.append('thin-metadata')\n    if bool(set(d['local_quantified'])&set(d['output_free'])): errors.append('associated-owner')\n    if not set(d['drop_observes'])<=set(d['drop_summary']): errors.append('dynamic-drop-summary')\n    return errors\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nbase={'source_bound': [], 'erased_bound': [], 'source_unique': False, 'object_unique': False, 'reference_bound': None, 'default_bound': None, 'method_aliases': [], 'vtable_aliases': [], 'mut_method': False, 'exclusive_access': True, 'upcast_before': [], 'upcast_after': [], 'source_address': None, 'upcast_address': None, 'thin': False, 'lifetime_metadata': True, 'assoc_owner': [], 'assoc_output': [], 'local_quantified': [], 'output_free': [], 'drop_observes': [], 'drop_summary': []}\ncheck('well formed empty obligations',solve(base),[])\ncheck('erasure-bound regression 0', solve(dict(base, **({'source_bound':[N],'erased_bound':[N+1]}))), ['erasure-bound'])\ncheck('erasure-bound regression 1', solve(dict(base, **({'source_bound':[N,N+1],'erased_bound':[N+1,N+2]}))), ['erasure-bound'])\ncheck('erasure-capability regression 0', solve(dict(base, **({'object_unique':True}))), ['erasure-capability'])\ncheck('erasure-capability regression 1', solve(dict(base, **({'object_unique':True,'source_bound':[N],'erased_bound':[N]}))), ['erasure-capability'])\ncheck('reference-default-bound regression 0', solve(dict(base, **({'reference_bound':'a','default_bound':'static'}))), ['reference-default-bound'])\ncheck('reference-default-bound regression 1', solve(dict(base, **({'reference_bound':N,'default_bound':N+1}))), ['reference-default-bound'])\ncheck('vtable-alias regression 0', solve(dict(base, **({'method_aliases':['a','b'],'vtable_aliases':['a']}))), ['vtable-alias'])\ncheck('vtable-alias regression 1', solve(dict(base, **({'method_aliases':[N,N+1],'vtable_aliases':[N]}))), ['vtable-alias'])\ncheck('mutable-dispatch regression 0', solve(dict(base, **({'mut_method':True,'exclusive_access':False}))), ['mutable-dispatch'])\ncheck('mutable-dispatch regression 1', solve(dict(base, **({'mut_method':True,'exclusive_access':False,'source_bound':[N],'erased_bound':[N]}))), ['mutable-dispatch'])\ncheck('upcast-lifetime regression 0', solve(dict(base, **({'upcast_before':[N],'upcast_after':[N+1]}))), ['upcast-lifetime'])\ncheck('upcast-lifetime regression 1', solve(dict(base, **({'upcast_before':[N,N+1],'upcast_after':[N+1,N+2]}))), ['upcast-lifetime'])\ncheck('upcast-provenance regression 0', solve(dict(base, **({'source_address':N,'upcast_address':N+1}))), ['upcast-provenance'])\ncheck('upcast-provenance regression 1', solve(dict(base, **({'source_address':'owner','upcast_address':'vtable'}))), ['upcast-provenance'])\ncheck('thin-metadata regression 0', solve(dict(base, **({'thin':True,'lifetime_metadata':False}))), ['thin-metadata'])\ncheck('thin-metadata regression 1', solve(dict(base, **({'thin':True,'lifetime_metadata':False,'source_bound':[N],'erased_bound':[N]}))), ['thin-metadata'])\ncheck('associated-owner regression 0', solve(dict(base, **({'local_quantified':['a'],'output_free':['a']}))), ['associated-owner'])\ncheck('associated-owner regression 1', solve(dict(base, **({'local_quantified':[N],'output_free':[N]}))), ['associated-owner'])\ncheck('dynamic-drop-summary regression 0', solve(dict(base, **({'drop_observes':['a','b'],'drop_summary':['a']}))), ['dynamic-drop-summary'])\ncheck('dynamic-drop-summary regression 1', solve(dict(base, **({'drop_observes':[N,N+1],'drop_summary':[N]}))), ['dynamic-drop-summary'])\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":"e16c8f605e6207ea051f4ebfb95d0467eaea1137a8ed7c885479fc9e2e1fa481","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    errors=[]\n    if d['source_bound']!=d['erased_bound']: errors.append('erasure-bound')\n    if d['object_unique'] and not d['source_unique']: errors.append('erasure-capability')\n    if d['reference_bound'] is not None and d['default_bound']!=d['reference_bound']: errors.append('reference-default-bound')\n    if not set(d['method_aliases'])<=set(d['vtable_aliases']): errors.append('vtable-alias')\n    if d['mut_method'] and not d['exclusive_access']: errors.append('mutable-dispatch')\n    if not set(d['upcast_after'])<=set(d['upcast_before']): errors.append('upcast-lifetime')\n    if d['source_address']!=d['upcast_address']: errors.append('upcast-provenance')\n    if d['thin'] and not d['lifetime_metadata']: errors.append('thin-metadata')\n    if bool(set(d['local_quantified'])&set(d['output_free'])): errors.append('associated-owner')\n    if not set(d['drop_observes'])<=set(d['drop_summary']): errors.append('dynamic-drop-summary')\n    return errors\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nbase={'source_bound': [], 'erased_bound': [], 'source_unique': False, 'object_unique': False, 'reference_bound': None, 'default_bound': None, 'method_aliases': [], 'vtable_aliases': [], 'mut_method': False, 'exclusive_access': True, 'upcast_before': [], 'upcast_after': [], 'source_address': None, 'upcast_address': None, 'thin': False, 'lifetime_metadata': True, 'assoc_owner': [], 'assoc_output': [], 'local_quantified': [], 'output_free': [], 'drop_observes': [], 'drop_summary': []}\ncheck('well formed empty obligations',solve(base),[])\ncheck('erasure-bound regression 0', solve(dict(base, **({'source_bound':[N],'erased_bound':[N+1]}))), ['erasure-bound'])\ncheck('erasure-bound regression 1', solve(dict(base, **({'source_bound':[N,N+1],'erased_bound':[N+1,N+2]}))), ['erasure-bound'])\ncheck('erasure-capability regression 0', solve(dict(base, **({'object_unique':True}))), ['erasure-capability'])\ncheck('erasure-capability regression 1', solve(dict(base, **({'object_unique':True,'source_bound':[N],'erased_bound':[N]}))), ['erasure-capability'])\ncheck('reference-default-bound regression 0', solve(dict(base, **({'reference_bound':'a','default_bound':'static'}))), ['reference-default-bound'])\ncheck('reference-default-bound regression 1', solve(dict(base, **({'reference_bound':N,'default_bound':N+1}))), ['reference-default-bound'])\ncheck('vtable-alias regression 0', solve(dict(base, **({'method_aliases':['a','b'],'vtable_aliases':['a']}))), ['vtable-alias'])\ncheck('vtable-alias regression 1', solve(dict(base, **({'method_aliases':[N,N+1],'vtable_aliases':[N]}))), ['vtable-alias'])\ncheck('mutable-dispatch regression 0', solve(dict(base, **({'mut_method':True,'exclusive_access':False}))), ['mutable-dispatch'])\ncheck('mutable-dispatch regression 1', solve(dict(base, **({'mut_method':True,'exclusive_access':False,'source_bound':[N],'erased_bound':[N]}))), ['mutable-dispatch'])\ncheck('upcast-lifetime regression 0', solve(dict(base, **({'upcast_before':[N],'upcast_after':[N+1]}))), ['upcast-lifetime'])\ncheck('upcast-lifetime regression 1', solve(dict(base, **({'upcast_before':[N,N+1],'upcast_after':[N+1,N+2]}))), ['upcast-lifetime'])\ncheck('upcast-provenance regression 0', solve(dict(base, **({'source_address':N,'upcast_address':N+1}))), ['upcast-provenance'])\ncheck('upcast-provenance regression 1', solve(dict(base, **({'source_address':'owner','upcast_address':'vtable'}))), ['upcast-provenance'])\ncheck('thin-metadata regression 0', solve(dict(base, **({'thin':True,'lifetime_metadata':False}))), ['thin-metadata'])\ncheck('thin-metadata regression 1', solve(dict(base, **({'thin':True,'lifetime_metadata':False,'source_bound':[N],'erased_bound':[N]}))), ['thin-metadata'])\ncheck('associated-owner regression 0', solve(dict(base, **({'local_quantified':['a'],'output_free':['a']}))), ['associated-owner'])\ncheck('associated-owner regression 1', solve(dict(base, **({'local_quantified':[N],'output_free':[N]}))), ['associated-owner'])\ncheck('dynamic-drop-summary regression 0', solve(dict(base, **({'drop_observes':['a','b'],'drop_summary':['a']}))), ['dynamic-drop-summary'])\ncheck('dynamic-drop-summary regression 1', solve(dict(base, **({'drop_observes':[N,N+1],'drop_summary':[N]}))), ['dynamic-drop-summary'])\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":"The explicitly stated toy language is the complete scope; this is not a production compiler or a claim about Rust semantics. 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":"s3-borrow-checking-trait-object-borrows-erasure-capability","generated_at":"2026-09-29T14:44:03.595814+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A finite offline static-analysis model of ownership and borrowing; it does not execute the analyzed program.","repair":"Apply the specified transfer or inference rule at this site: if d['object_unique'] and not d['source_unique']: errors.append('erasure-capability').","root_cause":"The static analyzer mishandles erasure capability: erasing a shared borrow manufactures exclusive trait-object access.","sha256":"200485d9e0dcf6bb797da662c782f17eeae5beeea19255d6ce7f66695aa0a07a","title":"Erasing a shared borrow manufactures exclusive trait-object access · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.863,"exit_code":1,"observations":[{"actual":[],"check":"well formed empty obligations","expected":[],"passed":true},{"actual":["erasure-bound"],"check":"erasure-bound regression 0","expected":["erasure-bound"],"passed":true},{"actual":["erasure-bound"],"check":"erasure-bound regression 1","expected":["erasure-bound"],"passed":true},{"actual":[],"check":"erasure-capability regression 0","expected":["erasure-capability"],"passed":false},{"actual":[],"check":"erasure-capability regression 1","expected":["erasure-capability"],"passed":false},{"actual":["reference-default-bound"],"check":"reference-default-bound regression 0","expected":["reference-default-bound"],"passed":true},{"actual":["reference-default-bound"],"check":"reference-default-bound regression 1","expected":["reference-default-bound"],"passed":true},{"actual":["vtable-alias"],"check":"vtable-alias regression 0","expected":["vtable-alias"],"passed":true},{"actual":["vtable-alias"],"check":"vtable-alias regression 1","expected":["vtable-alias"],"passed":true},{"actual":["mutable-dispatch"],"check":"mutable-dispatch regression 0","expected":["mutable-dispatch"],"passed":true},{"actual":["mutable-dispatch"],"check":"mutable-dispatch regression 1","expected":["mutable-dispatch"],"passed":true},{"actual":["upcast-lifetime"],"check":"upcast-lifetime regression 0","expected":["upcast-lifetime"],"passed":true},{"actual":["upcast-lifetime"],"check":"upcast-lifetime regression 1","expected":["upcast-lifetime"],"passed":true},{"actual":["upcast-provenance"],"check":"upcast-provenance regression 0","expected":["upcast-provenance"],"passed":true},{"actual":["upcast-provenance"],"check":"upcast-provenance regression 1","expected":["upcast-provenance"],"passed":true},{"actual":["thin-metadata"],"check":"thin-metadata regression 0","expected":["thin-metadata"],"passed":true},{"actual":["thin-metadata"],"check":"thin-metadata regression 1","expected":["thin-metadata"],"passed":true},{"actual":["associated-owner"],"check":"associated-owner regression 0","expected":["associated-owner"],"passed":true},{"actual":["associated-owner"],"check":"associated-owner regression 1","expected":["associated-owner"],"passed":true},{"actual":["dynamic-drop-summary"],"check":"dynamic-drop-summary regression 0","expected":["dynamic-drop-summary"],"passed":true},{"actual":["dynamic-drop-summary"],"check":"dynamic-drop-summary regression 1","expected":["dynamic-drop-summary"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"well formed empty obligations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"erasure-bound regression 0\", \"actual\": [\"erasure-bound\"], \"expected\": [\"erasure-bound\"], \"passed\": true}, {\"check\": \"erasure-bound regression 1\", \"actual\": [\"erasure-bound\"], \"expected\": [\"erasure-bound\"], \"passed\": true}, {\"check\": \"erasure-capability regression 0\", \"actual\": [], \"expected\": [\"erasure-capability\"], \"passed\": false}, {\"check\": \"erasure-capability regression 1\", \"actual\": [], \"expected\": [\"erasure-capability\"], \"passed\": false}, {\"check\": \"reference-default-bound regression 0\", \"actual\": [\"reference-default-bound\"], \"expected\": [\"reference-default-bound\"], \"passed\": true}, {\"check\": \"reference-default-bound regression 1\", \"actual\": [\"reference-default-bound\"], \"expected\": [\"reference-default-bound\"], \"passed\": true}, {\"check\": \"vtable-alias regression 0\", \"actual\": [\"vtable-alias\"], \"expected\": [\"vtable-alias\"], \"passed\": true}, {\"check\": \"vtable-alias regression 1\", \"actual\": [\"vtable-alias\"], \"expected\": [\"vtable-alias\"], \"passed\": true}, {\"check\": \"mutable-dispatch regression 0\", \"actual\": [\"mutable-dispatch\"], \"expected\": [\"mutable-dispatch\"], \"passed\": true}, {\"check\": \"mutable-dispatch regression 1\", \"actual\": [\"mutable-dispatch\"], \"expected\": [\"mutable-dispatch\"], \"passed\": true}, {\"check\": \"upcast-lifetime regression 0\", \"actual\": [\"upcast-lifetime\"], \"expected\": [\"upcast-lifetime\"], \"passed\": true}, {\"check\": \"upcast-lifetime regression 1\", \"actual\": [\"upcast-lifetime\"], \"expected\": [\"upcast-lifetime\"], \"passed\": true}, {\"check\": \"upcast-provenance regression 0\", \"actual\": [\"upcast-provenance\"], \"expected\": [\"upcast-provenance\"], \"passed\": true}, {\"check\": \"upcast-provenance regression 1\", \"actual\": [\"upcast-provenance\"], \"expected\": [\"upcast-provenance\"], \"passed\": true}, {\"check\": \"thin-metadata regression 0\", \"actual\": [\"thin-metadata\"], \"expected\": [\"thin-metadata\"], \"passed\": true}, {\"check\": \"thin-metadata regression 1\", \"actual\": [\"thin-metadata\"], \"expected\": [\"thin-metadata\"], \"passed\": true}, {\"check\": \"associated-owner regression 0\", \"actual\": [\"associated-owner\"], \"expected\": [\"associated-owner\"], \"passed\": true}, {\"check\": \"associated-owner regression 1\", \"actual\": [\"associated-owner\"], \"expected\": [\"associated-owner\"], \"passed\": true}, {\"check\": \"dynamic-drop-summary regression 0\", \"actual\": [\"dynamic-drop-summary\"], \"expected\": [\"dynamic-drop-summary\"], \"passed\": true}, {\"check\": \"dynamic-drop-summary regression 1\", \"actual\": [\"dynamic-drop-summary\"], \"expected\": [\"dynamic-drop-summary\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":53.964,"exit_code":1,"observations":[{"actual":[],"check":"well formed empty obligations","expected":[],"passed":true},{"actual":["erasure-bound"],"check":"erasure-bound regression 0","expected":["erasure-bound"],"passed":true},{"actual":["erasure-bound"],"check":"erasure-bound regression 1","expected":["erasure-bound"],"passed":true},{"actual":[],"check":"erasure-capability regression 0","expected":["erasure-capability"],"passed":false},{"actual":[],"check":"erasure-capability regression 1","expected":["erasure-capability"],"passed":false},{"actual":["reference-default-bound"],"check":"reference-default-bound regression 0","expected":["reference-default-bound"],"passed":true},{"actual":["reference-default-bound"],"check":"reference-default-bound regression 1","expected":["reference-default-bound"],"passed":true},{"actual":["vtable-alias"],"check":"vtable-alias regression 0","expected":["vtable-alias"],"passed":true},{"actual":["vtable-alias"],"check":"vtable-alias regression 1","expected":["vtable-alias"],"passed":true},{"actual":["mutable-dispatch"],"check":"mutable-dispatch regression 0","expected":["mutable-dispatch"],"passed":true},{"actual":["mutable-dispatch"],"check":"mutable-dispatch regression 1","expected":["mutable-dispatch"],"passed":true},{"actual":["upcast-lifetime"],"check":"upcast-lifetime regression 0","expected":["upcast-lifetime"],"passed":true},{"actual":["upcast-lifetime"],"check":"upcast-lifetime regression 1","expected":["upcast-lifetime"],"passed":true},{"actual":["upcast-provenance"],"check":"upcast-provenance regression 0","expected":["upcast-provenance"],"passed":true},{"actual":["upcast-provenance"],"check":"upcast-provenance regression 1","expected":["upcast-provenance"],"passed":true},{"actual":["thin-metadata"],"check":"thin-metadata regression 0","expected":["thin-metadata"],"passed":true},{"actual":["thin-metadata"],"check":"thin-metadata regression 1","expected":["thin-metadata"],"passed":true},{"actual":["associated-owner"],"check":"associated-owner regression 0","expected":["associated-owner"],"passed":true},{"actual":["associated-owner"],"check":"associated-owner regression 1","expected":["associated-owner"],"passed":true},{"actual":["dynamic-drop-summary"],"check":"dynamic-drop-summary regression 0","expected":["dynamic-drop-summary"],"passed":true},{"actual":["dynamic-drop-summary"],"check":"dynamic-drop-summary regression 1","expected":["dynamic-drop-summary"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"well formed empty obligations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"erasure-bound regression 0\", \"actual\": [\"erasure-bound\"], \"expected\": [\"erasure-bound\"], \"passed\": true}, {\"check\": \"erasure-bound regression 1\", \"actual\": [\"erasure-bound\"], \"expected\": [\"erasure-bound\"], \"passed\": true}, {\"check\": \"erasure-capability regression 0\", \"actual\": [], \"expected\": [\"erasure-capability\"], \"passed\": false}, {\"check\": \"erasure-capability regression 1\", \"actual\": [], \"expected\": [\"erasure-capability\"], \"passed\": false}, {\"check\": \"reference-default-bound regression 0\", \"actual\": [\"reference-default-bound\"], \"expected\": [\"reference-default-bound\"], \"passed\": true}, {\"check\": \"reference-default-bound regression 1\", \"actual\": [\"reference-default-bound\"], \"expected\": [\"reference-default-bound\"], \"passed\": true}, {\"check\": \"vtable-alias regression 0\", \"actual\": [\"vtable-alias\"], \"expected\": [\"vtable-alias\"], \"passed\": true}, {\"check\": \"vtable-alias regression 1\", \"actual\": [\"vtable-alias\"], \"expected\": [\"vtable-alias\"], \"passed\": true}, {\"check\": \"mutable-dispatch regression 0\", \"actual\": [\"mutable-dispatch\"], \"expected\": [\"mutable-dispatch\"], \"passed\": true}, {\"check\": \"mutable-dispatch regression 1\", \"actual\": [\"mutable-dispatch\"], \"expected\": [\"mutable-dispatch\"], \"passed\": true}, {\"check\": \"upcast-lifetime regression 0\", \"actual\": [\"upcast-lifetime\"], \"expected\": [\"upcast-lifetime\"], \"passed\": true}, {\"check\": \"upcast-lifetime regression 1\", \"actual\": [\"upcast-lifetime\"], \"expected\": [\"upcast-lifetime\"], \"passed\": true}, {\"check\": \"upcast-provenance regression 0\", \"actual\": [\"upcast-provenance\"], \"expected\": [\"upcast-provenance\"], \"passed\": true}, {\"check\": \"upcast-provenance regression 1\", \"actual\": [\"upcast-provenance\"], \"expected\": [\"upcast-provenance\"], \"passed\": true}, {\"check\": \"thin-metadata regression 0\", \"actual\": [\"thin-metadata\"], \"expected\": [\"thin-metadata\"], \"passed\": true}, {\"check\": \"thin-metadata regression 1\", \"actual\": [\"thin-metadata\"], \"expected\": [\"thin-metadata\"], \"passed\": true}, {\"check\": \"associated-owner regression 0\", \"actual\": [\"associated-owner\"], \"expected\": [\"associated-owner\"], \"passed\": true}, {\"check\": \"associated-owner regression 1\", \"actual\": [\"associated-owner\"], \"expected\": [\"associated-owner\"], \"passed\": true}, {\"check\": \"dynamic-drop-summary regression 0\", \"actual\": [\"dynamic-drop-summary\"], \"expected\": [\"dynamic-drop-summary\"], \"passed\": true}, {\"check\": \"dynamic-drop-summary regression 1\", \"actual\": [\"dynamic-drop-summary\"], \"expected\": [\"dynamic-drop-summary\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":47.136,"exit_code":0,"observations":[{"actual":[],"check":"well formed empty obligations","expected":[],"passed":true},{"actual":["erasure-bound"],"check":"erasure-bound regression 0","expected":["erasure-bound"],"passed":true},{"actual":["erasure-bound"],"check":"erasure-bound regression 1","expected":["erasure-bound"],"passed":true},{"actual":["erasure-capability"],"check":"erasure-capability regression 0","expected":["erasure-capability"],"passed":true},{"actual":["erasure-capability"],"check":"erasure-capability regression 1","expected":["erasure-capability"],"passed":true},{"actual":["reference-default-bound"],"check":"reference-default-bound regression 0","expected":["reference-default-bound"],"passed":true},{"actual":["reference-default-bound"],"check":"reference-default-bound regression 1","expected":["reference-default-bound"],"passed":true},{"actual":["vtable-alias"],"check":"vtable-alias regression 0","expected":["vtable-alias"],"passed":true},{"actual":["vtable-alias"],"check":"vtable-alias regression 1","expected":["vtable-alias"],"passed":true},{"actual":["mutable-dispatch"],"check":"mutable-dispatch regression 0","expected":["mutable-dispatch"],"passed":true},{"actual":["mutable-dispatch"],"check":"mutable-dispatch regression 1","expected":["mutable-dispatch"],"passed":true},{"actual":["upcast-lifetime"],"check":"upcast-lifetime regression 0","expected":["upcast-lifetime"],"passed":true},{"actual":["upcast-lifetime"],"check":"upcast-lifetime regression 1","expected":["upcast-lifetime"],"passed":true},{"actual":["upcast-provenance"],"check":"upcast-provenance regression 0","expected":["upcast-provenance"],"passed":true},{"actual":["upcast-provenance"],"check":"upcast-provenance regression 1","expected":["upcast-provenance"],"passed":true},{"actual":["thin-metadata"],"check":"thin-metadata regression 0","expected":["thin-metadata"],"passed":true},{"actual":["thin-metadata"],"check":"thin-metadata regression 1","expected":["thin-metadata"],"passed":true},{"actual":["associated-owner"],"check":"associated-owner regression 0","expected":["associated-owner"],"passed":true},{"actual":["associated-owner"],"check":"associated-owner regression 1","expected":["associated-owner"],"passed":true},{"actual":["dynamic-drop-summary"],"check":"dynamic-drop-summary regression 0","expected":["dynamic-drop-summary"],"passed":true},{"actual":["dynamic-drop-summary"],"check":"dynamic-drop-summary regression 1","expected":["dynamic-drop-summary"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"well formed empty obligations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"erasure-bound regression 0\", \"actual\": [\"erasure-bound\"], \"expected\": [\"erasure-bound\"], \"passed\": true}, {\"check\": \"erasure-bound regression 1\", \"actual\": [\"erasure-bound\"], \"expected\": [\"erasure-bound\"], \"passed\": true}, {\"check\": \"erasure-capability regression 0\", \"actual\": [\"erasure-capability\"], \"expected\": [\"erasure-capability\"], \"passed\": true}, {\"check\": \"erasure-capability regression 1\", \"actual\": [\"erasure-capability\"], \"expected\": [\"erasure-capability\"], \"passed\": true}, {\"check\": \"reference-default-bound regression 0\", \"actual\": [\"reference-default-bound\"], \"expected\": [\"reference-default-bound\"], \"passed\": true}, {\"check\": \"reference-default-bound regression 1\", \"actual\": [\"reference-default-bound\"], \"expected\": [\"reference-default-bound\"], \"passed\": true}, {\"check\": \"vtable-alias regression 0\", \"actual\": [\"vtable-alias\"], \"expected\": [\"vtable-alias\"], \"passed\": true}, {\"check\": \"vtable-alias regression 1\", \"actual\": [\"vtable-alias\"], \"expected\": [\"vtable-alias\"], \"passed\": true}, {\"check\": \"mutable-dispatch regression 0\", \"actual\": [\"mutable-dispatch\"], \"expected\": [\"mutable-dispatch\"], \"passed\": true}, {\"check\": \"mutable-dispatch regression 1\", \"actual\": [\"mutable-dispatch\"], \"expected\": [\"mutable-dispatch\"], \"passed\": true}, {\"check\": \"upcast-lifetime regression 0\", \"actual\": [\"upcast-lifetime\"], \"expected\": [\"upcast-lifetime\"], \"passed\": true}, {\"check\": \"upcast-lifetime regression 1\", \"actual\": [\"upcast-lifetime\"], \"expected\": [\"upcast-lifetime\"], \"passed\": true}, {\"check\": \"upcast-provenance regression 0\", \"actual\": [\"upcast-provenance\"], \"expected\": [\"upcast-provenance\"], \"passed\": true}, {\"check\": \"upcast-provenance regression 1\", \"actual\": [\"upcast-provenance\"], \"expected\": [\"upcast-provenance\"], \"passed\": true}, {\"check\": \"thin-metadata regression 0\", \"actual\": [\"thin-metadata\"], \"expected\": [\"thin-metadata\"], \"passed\": true}, {\"check\": \"thin-metadata regression 1\", \"actual\": [\"thin-metadata\"], \"expected\": [\"thin-metadata\"], \"passed\": true}, {\"check\": \"associated-owner regression 0\", \"actual\": [\"associated-owner\"], \"expected\": [\"associated-owner\"], \"passed\": true}, {\"check\": \"associated-owner regression 1\", \"actual\": [\"associated-owner\"], \"expected\": [\"associated-owner\"], \"passed\": true}, {\"check\": \"dynamic-drop-summary regression 0\", \"actual\": [\"dynamic-drop-summary\"], \"expected\": [\"dynamic-drop-summary\"], \"passed\": true}, {\"check\": \"dynamic-drop-summary regression 1\", \"actual\": [\"dynamic-drop-summary\"], \"expected\": [\"dynamic-drop-summary\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}