{"abstract":"A single moved field leaves a custom destructor with an invalid whole receiver.","category":"Borrow checking","checks":21,"contract":"Check destructor-specific lifetime obligations. Destructor-read referents live at drop point; field destruction follows declaration order; explicit manual drop removes only its own drop obligation; may_dangle relaxation excludes observed parameters; owning phantom markers restore transitive drop obligations; arrays repeat element obligations even at nonzero symbolic lengths; partial move prohibited for custom-drop values; recursive drop dependencies need a visited set but may not skip distinct substitutions; unwinding runs initialized-field drops; destructor receiver borrow stays live through the whole body. 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-drop-check-obligations","failed_approach":"The partial repair uses if d['custom_drop'] and len(d['partial_moves'])>1: errors.append('custom-drop-partial-move'), which still violates the stipulated analysis contract.","family":"s3-borrow-checking-drop-check-obligations-custom-drop-partial-move","id":"FA-43671","implementations":{"attempt":{"sha256":"61191038cc329ee70d021177f4ab626ec14009606e3410ef30558ce62778fa99","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    errors=[]\n    if any(p<d['drop_point'] for p in d['observed_valid_until']): errors.append('destructor-read-live')\n    if d['field_order']!=d['decl_order']: errors.append('field-drop-order')\n    if set(d['removed'])!=set(d['manual']): errors.append('manual-drop-specific')\n    if bool(set(d['may_dangle'])&set(d['observed_params'])): errors.append('may-dangle-observation')\n    if not set(d['owned_phantom'])<=set(d['obligations']): errors.append('owning-phantom-drop')\n    if d['array_length']>0 and not set(d['element_obligations'])<=set(d['array_obligations']): errors.append('array-element-drop')\n    if d['custom_drop'] and len(d['partial_moves'])>1: errors.append('custom-drop-partial-move')\n    if not set(map(tuple,d['substitutions']))<=set(map(tuple,d['visited'])): errors.append('substitution-sensitive-visit')\n    if set(d['initialized'])!=set(d['unwind_drops']): errors.append('unwind-initialized-drops')\n    if d['receiver_end']<d['body_end']: errors.append('destructor-receiver')\n    return errors\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nbase={'observed_valid_until': [], 'drop_point': 0, 'field_order': [], 'decl_order': [], 'manual': [], 'removed': [], 'may_dangle': [], 'observed_params': [], 'owned_phantom': [], 'obligations': [], 'array_length': 0, 'element_obligations': [], 'array_obligations': [], 'custom_drop': False, 'partial_moves': [], 'substitutions': [], 'visited': [], 'initialized': [], 'unwind_drops': [], 'receiver_end': 0, 'body_end': 0}\ncheck('well formed empty obligations',solve(base),[])\ncheck('destructor-read-live regression 0', solve(dict(base, **({'observed_valid_until':[N],'drop_point':N+1}))), ['destructor-read-live'])\ncheck('destructor-read-live regression 1', solve(dict(base, **({'observed_valid_until':[N+1],'drop_point':N+2}))), ['destructor-read-live'])\ncheck('field-drop-order regression 0', solve(dict(base, **({'field_order':['b','a'],'decl_order':['a','b']}))), ['field-drop-order'])\ncheck('field-drop-order regression 1', solve(dict(base, **({'field_order':[N+1,N],'decl_order':[N,N+1]}))), ['field-drop-order'])\ncheck('manual-drop-specific regression 0', solve(dict(base, **({'manual':['a'],'removed':['a','b']}))), ['manual-drop-specific'])\ncheck('manual-drop-specific regression 1', solve(dict(base, **({'manual':[N],'removed':[N,N+1]}))), ['manual-drop-specific'])\ncheck('may-dangle-observation regression 0', solve(dict(base, **({'may_dangle':['a'],'observed_params':['a']}))), ['may-dangle-observation'])\ncheck('may-dangle-observation regression 1', solve(dict(base, **({'may_dangle':[N],'observed_params':[N]}))), ['may-dangle-observation'])\ncheck('owning-phantom-drop regression 0', solve(dict(base, **({'owned_phantom':['a','b'],'obligations':['a']}))), ['owning-phantom-drop'])\ncheck('owning-phantom-drop regression 1', solve(dict(base, **({'owned_phantom':[N,N+1],'obligations':[N]}))), ['owning-phantom-drop'])\ncheck('array-element-drop regression 0', solve(dict(base, **({'array_length':1,'element_obligations':[N]}))), ['array-element-drop'])\ncheck('array-element-drop regression 1', solve(dict(base, **({'array_length':1,'element_obligations':[N+1]}))), ['array-element-drop'])\ncheck('custom-drop-partial-move regression 0', solve(dict(base, **({'custom_drop':True,'partial_moves':['f']}))), ['custom-drop-partial-move'])\ncheck('custom-drop-partial-move regression 1', solve(dict(base, **({'custom_drop':True,'partial_moves':[N]}))), ['custom-drop-partial-move'])\ncheck('substitution-sensitive-visit regression 0', solve(dict(base, **({'substitutions':[('T','a'),('T','b')],'visited':[('T','a')]}))), ['substitution-sensitive-visit'])\ncheck('substitution-sensitive-visit regression 1', solve(dict(base, **({'substitutions':[('T',N),('T',N+1)],'visited':[('T',N)]}))), ['substitution-sensitive-visit'])\ncheck('unwind-initialized-drops regression 0', solve(dict(base, **({'initialized':['a'],'unwind_drops':['a','b']}))), ['unwind-initialized-drops'])\ncheck('unwind-initialized-drops regression 1', solve(dict(base, **({'initialized':[N],'unwind_drops':[N,N+1]}))), ['unwind-initialized-drops'])\ncheck('destructor-receiver regression 0', solve(dict(base, **({'receiver_end':N,'body_end':N+1}))), ['destructor-receiver'])\ncheck('destructor-receiver regression 1', solve(dict(base, **({'receiver_end':N+1,'body_end':N+2}))), ['destructor-receiver'])\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":"178b10008b26d0933c2a1f397664311d5d95beafaf01fd68195204fefaa2e23e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    errors=[]\n    if any(p<d['drop_point'] for p in d['observed_valid_until']): errors.append('destructor-read-live')\n    if d['field_order']!=d['decl_order']: errors.append('field-drop-order')\n    if set(d['removed'])!=set(d['manual']): errors.append('manual-drop-specific')\n    if bool(set(d['may_dangle'])&set(d['observed_params'])): errors.append('may-dangle-observation')\n    if not set(d['owned_phantom'])<=set(d['obligations']): errors.append('owning-phantom-drop')\n    if d['array_length']>0 and not set(d['element_obligations'])<=set(d['array_obligations']): errors.append('array-element-drop')\n    if False: errors.append('custom-drop-partial-move')\n    if not set(map(tuple,d['substitutions']))<=set(map(tuple,d['visited'])): errors.append('substitution-sensitive-visit')\n    if set(d['initialized'])!=set(d['unwind_drops']): errors.append('unwind-initialized-drops')\n    if d['receiver_end']<d['body_end']: errors.append('destructor-receiver')\n    return errors\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nbase={'observed_valid_until': [], 'drop_point': 0, 'field_order': [], 'decl_order': [], 'manual': [], 'removed': [], 'may_dangle': [], 'observed_params': [], 'owned_phantom': [], 'obligations': [], 'array_length': 0, 'element_obligations': [], 'array_obligations': [], 'custom_drop': False, 'partial_moves': [], 'substitutions': [], 'visited': [], 'initialized': [], 'unwind_drops': [], 'receiver_end': 0, 'body_end': 0}\ncheck('well formed empty obligations',solve(base),[])\ncheck('destructor-read-live regression 0', solve(dict(base, **({'observed_valid_until':[N],'drop_point':N+1}))), ['destructor-read-live'])\ncheck('destructor-read-live regression 1', solve(dict(base, **({'observed_valid_until':[N+1],'drop_point':N+2}))), ['destructor-read-live'])\ncheck('field-drop-order regression 0', solve(dict(base, **({'field_order':['b','a'],'decl_order':['a','b']}))), ['field-drop-order'])\ncheck('field-drop-order regression 1', solve(dict(base, **({'field_order':[N+1,N],'decl_order':[N,N+1]}))), ['field-drop-order'])\ncheck('manual-drop-specific regression 0', solve(dict(base, **({'manual':['a'],'removed':['a','b']}))), ['manual-drop-specific'])\ncheck('manual-drop-specific regression 1', solve(dict(base, **({'manual':[N],'removed':[N,N+1]}))), ['manual-drop-specific'])\ncheck('may-dangle-observation regression 0', solve(dict(base, **({'may_dangle':['a'],'observed_params':['a']}))), ['may-dangle-observation'])\ncheck('may-dangle-observation regression 1', solve(dict(base, **({'may_dangle':[N],'observed_params':[N]}))), ['may-dangle-observation'])\ncheck('owning-phantom-drop regression 0', solve(dict(base, **({'owned_phantom':['a','b'],'obligations':['a']}))), ['owning-phantom-drop'])\ncheck('owning-phantom-drop regression 1', solve(dict(base, **({'owned_phantom':[N,N+1],'obligations':[N]}))), ['owning-phantom-drop'])\ncheck('array-element-drop regression 0', solve(dict(base, **({'array_length':1,'element_obligations':[N]}))), ['array-element-drop'])\ncheck('array-element-drop regression 1', solve(dict(base, **({'array_length':1,'element_obligations':[N+1]}))), ['array-element-drop'])\ncheck('custom-drop-partial-move regression 0', solve(dict(base, **({'custom_drop':True,'partial_moves':['f']}))), ['custom-drop-partial-move'])\ncheck('custom-drop-partial-move regression 1', solve(dict(base, **({'custom_drop':True,'partial_moves':[N]}))), ['custom-drop-partial-move'])\ncheck('substitution-sensitive-visit regression 0', solve(dict(base, **({'substitutions':[('T','a'),('T','b')],'visited':[('T','a')]}))), ['substitution-sensitive-visit'])\ncheck('substitution-sensitive-visit regression 1', solve(dict(base, **({'substitutions':[('T',N),('T',N+1)],'visited':[('T',N)]}))), ['substitution-sensitive-visit'])\ncheck('unwind-initialized-drops regression 0', solve(dict(base, **({'initialized':['a'],'unwind_drops':['a','b']}))), ['unwind-initialized-drops'])\ncheck('unwind-initialized-drops regression 1', solve(dict(base, **({'initialized':[N],'unwind_drops':[N,N+1]}))), ['unwind-initialized-drops'])\ncheck('destructor-receiver regression 0', solve(dict(base, **({'receiver_end':N,'body_end':N+1}))), ['destructor-receiver'])\ncheck('destructor-receiver regression 1', solve(dict(base, **({'receiver_end':N+1,'body_end':N+2}))), ['destructor-receiver'])\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":"3eb8c91360d7c133044378b733fc7ce05bb19aa17051332efc3dc6cebc47a0aa","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    errors=[]\n    if any(p<d['drop_point'] for p in d['observed_valid_until']): errors.append('destructor-read-live')\n    if d['field_order']!=d['decl_order']: errors.append('field-drop-order')\n    if set(d['removed'])!=set(d['manual']): errors.append('manual-drop-specific')\n    if bool(set(d['may_dangle'])&set(d['observed_params'])): errors.append('may-dangle-observation')\n    if not set(d['owned_phantom'])<=set(d['obligations']): errors.append('owning-phantom-drop')\n    if d['array_length']>0 and not set(d['element_obligations'])<=set(d['array_obligations']): errors.append('array-element-drop')\n    if d['custom_drop'] and bool(d['partial_moves']): errors.append('custom-drop-partial-move')\n    if not set(map(tuple,d['substitutions']))<=set(map(tuple,d['visited'])): errors.append('substitution-sensitive-visit')\n    if set(d['initialized'])!=set(d['unwind_drops']): errors.append('unwind-initialized-drops')\n    if d['receiver_end']<d['body_end']: errors.append('destructor-receiver')\n    return errors\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nbase={'observed_valid_until': [], 'drop_point': 0, 'field_order': [], 'decl_order': [], 'manual': [], 'removed': [], 'may_dangle': [], 'observed_params': [], 'owned_phantom': [], 'obligations': [], 'array_length': 0, 'element_obligations': [], 'array_obligations': [], 'custom_drop': False, 'partial_moves': [], 'substitutions': [], 'visited': [], 'initialized': [], 'unwind_drops': [], 'receiver_end': 0, 'body_end': 0}\ncheck('well formed empty obligations',solve(base),[])\ncheck('destructor-read-live regression 0', solve(dict(base, **({'observed_valid_until':[N],'drop_point':N+1}))), ['destructor-read-live'])\ncheck('destructor-read-live regression 1', solve(dict(base, **({'observed_valid_until':[N+1],'drop_point':N+2}))), ['destructor-read-live'])\ncheck('field-drop-order regression 0', solve(dict(base, **({'field_order':['b','a'],'decl_order':['a','b']}))), ['field-drop-order'])\ncheck('field-drop-order regression 1', solve(dict(base, **({'field_order':[N+1,N],'decl_order':[N,N+1]}))), ['field-drop-order'])\ncheck('manual-drop-specific regression 0', solve(dict(base, **({'manual':['a'],'removed':['a','b']}))), ['manual-drop-specific'])\ncheck('manual-drop-specific regression 1', solve(dict(base, **({'manual':[N],'removed':[N,N+1]}))), ['manual-drop-specific'])\ncheck('may-dangle-observation regression 0', solve(dict(base, **({'may_dangle':['a'],'observed_params':['a']}))), ['may-dangle-observation'])\ncheck('may-dangle-observation regression 1', solve(dict(base, **({'may_dangle':[N],'observed_params':[N]}))), ['may-dangle-observation'])\ncheck('owning-phantom-drop regression 0', solve(dict(base, **({'owned_phantom':['a','b'],'obligations':['a']}))), ['owning-phantom-drop'])\ncheck('owning-phantom-drop regression 1', solve(dict(base, **({'owned_phantom':[N,N+1],'obligations':[N]}))), ['owning-phantom-drop'])\ncheck('array-element-drop regression 0', solve(dict(base, **({'array_length':1,'element_obligations':[N]}))), ['array-element-drop'])\ncheck('array-element-drop regression 1', solve(dict(base, **({'array_length':1,'element_obligations':[N+1]}))), ['array-element-drop'])\ncheck('custom-drop-partial-move regression 0', solve(dict(base, **({'custom_drop':True,'partial_moves':['f']}))), ['custom-drop-partial-move'])\ncheck('custom-drop-partial-move regression 1', solve(dict(base, **({'custom_drop':True,'partial_moves':[N]}))), ['custom-drop-partial-move'])\ncheck('substitution-sensitive-visit regression 0', solve(dict(base, **({'substitutions':[('T','a'),('T','b')],'visited':[('T','a')]}))), ['substitution-sensitive-visit'])\ncheck('substitution-sensitive-visit regression 1', solve(dict(base, **({'substitutions':[('T',N),('T',N+1)],'visited':[('T',N)]}))), ['substitution-sensitive-visit'])\ncheck('unwind-initialized-drops regression 0', solve(dict(base, **({'initialized':['a'],'unwind_drops':['a','b']}))), ['unwind-initialized-drops'])\ncheck('unwind-initialized-drops regression 1', solve(dict(base, **({'initialized':[N],'unwind_drops':[N,N+1]}))), ['unwind-initialized-drops'])\ncheck('destructor-receiver regression 0', solve(dict(base, **({'receiver_end':N,'body_end':N+1}))), ['destructor-receiver'])\ncheck('destructor-receiver regression 1', solve(dict(base, **({'receiver_end':N+1,'body_end':N+2}))), ['destructor-receiver'])\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-drop-check-obligations-custom-drop-partial-move","generated_at":"2026-09-29T14:44:04.555657+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['custom_drop'] and bool(d['partial_moves']): errors.append('custom-drop-partial-move').","root_cause":"The static analyzer mishandles custom drop partial move: a single moved field leaves a custom destructor with an invalid whole receiver.","sha256":"95be4266df5a3f724e42c9c34f4f87bd4c647757bc3c39f2c301484ee78e6fb9","title":"A single moved field leaves a custom destructor with an invalid whole receiver · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.238,"exit_code":1,"observations":[{"actual":[],"check":"well formed empty obligations","expected":[],"passed":true},{"actual":["destructor-read-live"],"check":"destructor-read-live regression 0","expected":["destructor-read-live"],"passed":true},{"actual":["destructor-read-live"],"check":"destructor-read-live regression 1","expected":["destructor-read-live"],"passed":true},{"actual":["field-drop-order"],"check":"field-drop-order regression 0","expected":["field-drop-order"],"passed":true},{"actual":["field-drop-order"],"check":"field-drop-order regression 1","expected":["field-drop-order"],"passed":true},{"actual":["manual-drop-specific"],"check":"manual-drop-specific regression 0","expected":["manual-drop-specific"],"passed":true},{"actual":["manual-drop-specific"],"check":"manual-drop-specific regression 1","expected":["manual-drop-specific"],"passed":true},{"actual":["may-dangle-observation"],"check":"may-dangle-observation regression 0","expected":["may-dangle-observation"],"passed":true},{"actual":["may-dangle-observation"],"check":"may-dangle-observation regression 1","expected":["may-dangle-observation"],"passed":true},{"actual":["owning-phantom-drop"],"check":"owning-phantom-drop regression 0","expected":["owning-phantom-drop"],"passed":true},{"actual":["owning-phantom-drop"],"check":"owning-phantom-drop regression 1","expected":["owning-phantom-drop"],"passed":true},{"actual":["array-element-drop"],"check":"array-element-drop regression 0","expected":["array-element-drop"],"passed":true},{"actual":["array-element-drop"],"check":"array-element-drop regression 1","expected":["array-element-drop"],"passed":true},{"actual":[],"check":"custom-drop-partial-move regression 0","expected":["custom-drop-partial-move"],"passed":false},{"actual":[],"check":"custom-drop-partial-move regression 1","expected":["custom-drop-partial-move"],"passed":false},{"actual":["substitution-sensitive-visit"],"check":"substitution-sensitive-visit regression 0","expected":["substitution-sensitive-visit"],"passed":true},{"actual":["substitution-sensitive-visit"],"check":"substitution-sensitive-visit regression 1","expected":["substitution-sensitive-visit"],"passed":true},{"actual":["unwind-initialized-drops"],"check":"unwind-initialized-drops regression 0","expected":["unwind-initialized-drops"],"passed":true},{"actual":["unwind-initialized-drops"],"check":"unwind-initialized-drops regression 1","expected":["unwind-initialized-drops"],"passed":true},{"actual":["destructor-receiver"],"check":"destructor-receiver regression 0","expected":["destructor-receiver"],"passed":true},{"actual":["destructor-receiver"],"check":"destructor-receiver regression 1","expected":["destructor-receiver"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"well formed empty obligations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"destructor-read-live regression 0\", \"actual\": [\"destructor-read-live\"], \"expected\": [\"destructor-read-live\"], \"passed\": true}, {\"check\": \"destructor-read-live regression 1\", \"actual\": [\"destructor-read-live\"], \"expected\": [\"destructor-read-live\"], \"passed\": true}, {\"check\": \"field-drop-order regression 0\", \"actual\": [\"field-drop-order\"], \"expected\": [\"field-drop-order\"], \"passed\": true}, {\"check\": \"field-drop-order regression 1\", \"actual\": [\"field-drop-order\"], \"expected\": [\"field-drop-order\"], \"passed\": true}, {\"check\": \"manual-drop-specific regression 0\", \"actual\": [\"manual-drop-specific\"], \"expected\": [\"manual-drop-specific\"], \"passed\": true}, {\"check\": \"manual-drop-specific regression 1\", \"actual\": [\"manual-drop-specific\"], \"expected\": [\"manual-drop-specific\"], \"passed\": true}, {\"check\": \"may-dangle-observation regression 0\", \"actual\": [\"may-dangle-observation\"], \"expected\": [\"may-dangle-observation\"], \"passed\": true}, {\"check\": \"may-dangle-observation regression 1\", \"actual\": [\"may-dangle-observation\"], \"expected\": [\"may-dangle-observation\"], \"passed\": true}, {\"check\": \"owning-phantom-drop regression 0\", \"actual\": [\"owning-phantom-drop\"], \"expected\": [\"owning-phantom-drop\"], \"passed\": true}, {\"check\": \"owning-phantom-drop regression 1\", \"actual\": [\"owning-phantom-drop\"], \"expected\": [\"owning-phantom-drop\"], \"passed\": true}, {\"check\": \"array-element-drop regression 0\", \"actual\": [\"array-element-drop\"], \"expected\": [\"array-element-drop\"], \"passed\": true}, {\"check\": \"array-element-drop regression 1\", \"actual\": [\"array-element-drop\"], \"expected\": [\"array-element-drop\"], \"passed\": true}, {\"check\": \"custom-drop-partial-move regression 0\", \"actual\": [], \"expected\": [\"custom-drop-partial-move\"], \"passed\": false}, {\"check\": \"custom-drop-partial-move regression 1\", \"actual\": [], \"expected\": [\"custom-drop-partial-move\"], \"passed\": false}, {\"check\": \"substitution-sensitive-visit regression 0\", \"actual\": [\"substitution-sensitive-visit\"], \"expected\": [\"substitution-sensitive-visit\"], \"passed\": true}, {\"check\": \"substitution-sensitive-visit regression 1\", \"actual\": [\"substitution-sensitive-visit\"], \"expected\": [\"substitution-sensitive-visit\"], \"passed\": true}, {\"check\": \"unwind-initialized-drops regression 0\", \"actual\": [\"unwind-initialized-drops\"], \"expected\": [\"unwind-initialized-drops\"], \"passed\": true}, {\"check\": \"unwind-initialized-drops regression 1\", \"actual\": [\"unwind-initialized-drops\"], \"expected\": [\"unwind-initialized-drops\"], \"passed\": true}, {\"check\": \"destructor-receiver regression 0\", \"actual\": [\"destructor-receiver\"], \"expected\": [\"destructor-receiver\"], \"passed\": true}, {\"check\": \"destructor-receiver regression 1\", \"actual\": [\"destructor-receiver\"], \"expected\": [\"destructor-receiver\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":52.995,"exit_code":1,"observations":[{"actual":[],"check":"well formed empty obligations","expected":[],"passed":true},{"actual":["destructor-read-live"],"check":"destructor-read-live regression 0","expected":["destructor-read-live"],"passed":true},{"actual":["destructor-read-live"],"check":"destructor-read-live regression 1","expected":["destructor-read-live"],"passed":true},{"actual":["field-drop-order"],"check":"field-drop-order regression 0","expected":["field-drop-order"],"passed":true},{"actual":["field-drop-order"],"check":"field-drop-order regression 1","expected":["field-drop-order"],"passed":true},{"actual":["manual-drop-specific"],"check":"manual-drop-specific regression 0","expected":["manual-drop-specific"],"passed":true},{"actual":["manual-drop-specific"],"check":"manual-drop-specific regression 1","expected":["manual-drop-specific"],"passed":true},{"actual":["may-dangle-observation"],"check":"may-dangle-observation regression 0","expected":["may-dangle-observation"],"passed":true},{"actual":["may-dangle-observation"],"check":"may-dangle-observation regression 1","expected":["may-dangle-observation"],"passed":true},{"actual":["owning-phantom-drop"],"check":"owning-phantom-drop regression 0","expected":["owning-phantom-drop"],"passed":true},{"actual":["owning-phantom-drop"],"check":"owning-phantom-drop regression 1","expected":["owning-phantom-drop"],"passed":true},{"actual":["array-element-drop"],"check":"array-element-drop regression 0","expected":["array-element-drop"],"passed":true},{"actual":["array-element-drop"],"check":"array-element-drop regression 1","expected":["array-element-drop"],"passed":true},{"actual":[],"check":"custom-drop-partial-move regression 0","expected":["custom-drop-partial-move"],"passed":false},{"actual":[],"check":"custom-drop-partial-move regression 1","expected":["custom-drop-partial-move"],"passed":false},{"actual":["substitution-sensitive-visit"],"check":"substitution-sensitive-visit regression 0","expected":["substitution-sensitive-visit"],"passed":true},{"actual":["substitution-sensitive-visit"],"check":"substitution-sensitive-visit regression 1","expected":["substitution-sensitive-visit"],"passed":true},{"actual":["unwind-initialized-drops"],"check":"unwind-initialized-drops regression 0","expected":["unwind-initialized-drops"],"passed":true},{"actual":["unwind-initialized-drops"],"check":"unwind-initialized-drops regression 1","expected":["unwind-initialized-drops"],"passed":true},{"actual":["destructor-receiver"],"check":"destructor-receiver regression 0","expected":["destructor-receiver"],"passed":true},{"actual":["destructor-receiver"],"check":"destructor-receiver regression 1","expected":["destructor-receiver"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"well formed empty obligations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"destructor-read-live regression 0\", \"actual\": [\"destructor-read-live\"], \"expected\": [\"destructor-read-live\"], \"passed\": true}, {\"check\": \"destructor-read-live regression 1\", \"actual\": [\"destructor-read-live\"], \"expected\": [\"destructor-read-live\"], \"passed\": true}, {\"check\": \"field-drop-order regression 0\", \"actual\": [\"field-drop-order\"], \"expected\": [\"field-drop-order\"], \"passed\": true}, {\"check\": \"field-drop-order regression 1\", \"actual\": [\"field-drop-order\"], \"expected\": [\"field-drop-order\"], \"passed\": true}, {\"check\": \"manual-drop-specific regression 0\", \"actual\": [\"manual-drop-specific\"], \"expected\": [\"manual-drop-specific\"], \"passed\": true}, {\"check\": \"manual-drop-specific regression 1\", \"actual\": [\"manual-drop-specific\"], \"expected\": [\"manual-drop-specific\"], \"passed\": true}, {\"check\": \"may-dangle-observation regression 0\", \"actual\": [\"may-dangle-observation\"], \"expected\": [\"may-dangle-observation\"], \"passed\": true}, {\"check\": \"may-dangle-observation regression 1\", \"actual\": [\"may-dangle-observation\"], \"expected\": [\"may-dangle-observation\"], \"passed\": true}, {\"check\": \"owning-phantom-drop regression 0\", \"actual\": [\"owning-phantom-drop\"], \"expected\": [\"owning-phantom-drop\"], \"passed\": true}, {\"check\": \"owning-phantom-drop regression 1\", \"actual\": [\"owning-phantom-drop\"], \"expected\": [\"owning-phantom-drop\"], \"passed\": true}, {\"check\": \"array-element-drop regression 0\", \"actual\": [\"array-element-drop\"], \"expected\": [\"array-element-drop\"], \"passed\": true}, {\"check\": \"array-element-drop regression 1\", \"actual\": [\"array-element-drop\"], \"expected\": [\"array-element-drop\"], \"passed\": true}, {\"check\": \"custom-drop-partial-move regression 0\", \"actual\": [], \"expected\": [\"custom-drop-partial-move\"], \"passed\": false}, {\"check\": \"custom-drop-partial-move regression 1\", \"actual\": [], \"expected\": [\"custom-drop-partial-move\"], \"passed\": false}, {\"check\": \"substitution-sensitive-visit regression 0\", \"actual\": [\"substitution-sensitive-visit\"], \"expected\": [\"substitution-sensitive-visit\"], \"passed\": true}, {\"check\": \"substitution-sensitive-visit regression 1\", \"actual\": [\"substitution-sensitive-visit\"], \"expected\": [\"substitution-sensitive-visit\"], \"passed\": true}, {\"check\": \"unwind-initialized-drops regression 0\", \"actual\": [\"unwind-initialized-drops\"], \"expected\": [\"unwind-initialized-drops\"], \"passed\": true}, {\"check\": \"unwind-initialized-drops regression 1\", \"actual\": [\"unwind-initialized-drops\"], \"expected\": [\"unwind-initialized-drops\"], \"passed\": true}, {\"check\": \"destructor-receiver regression 0\", \"actual\": [\"destructor-receiver\"], \"expected\": [\"destructor-receiver\"], \"passed\": true}, {\"check\": \"destructor-receiver regression 1\", \"actual\": [\"destructor-receiver\"], \"expected\": [\"destructor-receiver\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.625,"exit_code":0,"observations":[{"actual":[],"check":"well formed empty obligations","expected":[],"passed":true},{"actual":["destructor-read-live"],"check":"destructor-read-live regression 0","expected":["destructor-read-live"],"passed":true},{"actual":["destructor-read-live"],"check":"destructor-read-live regression 1","expected":["destructor-read-live"],"passed":true},{"actual":["field-drop-order"],"check":"field-drop-order regression 0","expected":["field-drop-order"],"passed":true},{"actual":["field-drop-order"],"check":"field-drop-order regression 1","expected":["field-drop-order"],"passed":true},{"actual":["manual-drop-specific"],"check":"manual-drop-specific regression 0","expected":["manual-drop-specific"],"passed":true},{"actual":["manual-drop-specific"],"check":"manual-drop-specific regression 1","expected":["manual-drop-specific"],"passed":true},{"actual":["may-dangle-observation"],"check":"may-dangle-observation regression 0","expected":["may-dangle-observation"],"passed":true},{"actual":["may-dangle-observation"],"check":"may-dangle-observation regression 1","expected":["may-dangle-observation"],"passed":true},{"actual":["owning-phantom-drop"],"check":"owning-phantom-drop regression 0","expected":["owning-phantom-drop"],"passed":true},{"actual":["owning-phantom-drop"],"check":"owning-phantom-drop regression 1","expected":["owning-phantom-drop"],"passed":true},{"actual":["array-element-drop"],"check":"array-element-drop regression 0","expected":["array-element-drop"],"passed":true},{"actual":["array-element-drop"],"check":"array-element-drop regression 1","expected":["array-element-drop"],"passed":true},{"actual":["custom-drop-partial-move"],"check":"custom-drop-partial-move regression 0","expected":["custom-drop-partial-move"],"passed":true},{"actual":["custom-drop-partial-move"],"check":"custom-drop-partial-move regression 1","expected":["custom-drop-partial-move"],"passed":true},{"actual":["substitution-sensitive-visit"],"check":"substitution-sensitive-visit regression 0","expected":["substitution-sensitive-visit"],"passed":true},{"actual":["substitution-sensitive-visit"],"check":"substitution-sensitive-visit regression 1","expected":["substitution-sensitive-visit"],"passed":true},{"actual":["unwind-initialized-drops"],"check":"unwind-initialized-drops regression 0","expected":["unwind-initialized-drops"],"passed":true},{"actual":["unwind-initialized-drops"],"check":"unwind-initialized-drops regression 1","expected":["unwind-initialized-drops"],"passed":true},{"actual":["destructor-receiver"],"check":"destructor-receiver regression 0","expected":["destructor-receiver"],"passed":true},{"actual":["destructor-receiver"],"check":"destructor-receiver regression 1","expected":["destructor-receiver"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"well formed empty obligations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"destructor-read-live regression 0\", \"actual\": [\"destructor-read-live\"], \"expected\": [\"destructor-read-live\"], \"passed\": true}, {\"check\": \"destructor-read-live regression 1\", \"actual\": [\"destructor-read-live\"], \"expected\": [\"destructor-read-live\"], \"passed\": true}, {\"check\": \"field-drop-order regression 0\", \"actual\": [\"field-drop-order\"], \"expected\": [\"field-drop-order\"], \"passed\": true}, {\"check\": \"field-drop-order regression 1\", \"actual\": [\"field-drop-order\"], \"expected\": [\"field-drop-order\"], \"passed\": true}, {\"check\": \"manual-drop-specific regression 0\", \"actual\": [\"manual-drop-specific\"], \"expected\": [\"manual-drop-specific\"], \"passed\": true}, {\"check\": \"manual-drop-specific regression 1\", \"actual\": [\"manual-drop-specific\"], \"expected\": [\"manual-drop-specific\"], \"passed\": true}, {\"check\": \"may-dangle-observation regression 0\", \"actual\": [\"may-dangle-observation\"], \"expected\": [\"may-dangle-observation\"], \"passed\": true}, {\"check\": \"may-dangle-observation regression 1\", \"actual\": [\"may-dangle-observation\"], \"expected\": [\"may-dangle-observation\"], \"passed\": true}, {\"check\": \"owning-phantom-drop regression 0\", \"actual\": [\"owning-phantom-drop\"], \"expected\": [\"owning-phantom-drop\"], \"passed\": true}, {\"check\": \"owning-phantom-drop regression 1\", \"actual\": [\"owning-phantom-drop\"], \"expected\": [\"owning-phantom-drop\"], \"passed\": true}, {\"check\": \"array-element-drop regression 0\", \"actual\": [\"array-element-drop\"], \"expected\": [\"array-element-drop\"], \"passed\": true}, {\"check\": \"array-element-drop regression 1\", \"actual\": [\"array-element-drop\"], \"expected\": [\"array-element-drop\"], \"passed\": true}, {\"check\": \"custom-drop-partial-move regression 0\", \"actual\": [\"custom-drop-partial-move\"], \"expected\": [\"custom-drop-partial-move\"], \"passed\": true}, {\"check\": \"custom-drop-partial-move regression 1\", \"actual\": [\"custom-drop-partial-move\"], \"expected\": [\"custom-drop-partial-move\"], \"passed\": true}, {\"check\": \"substitution-sensitive-visit regression 0\", \"actual\": [\"substitution-sensitive-visit\"], \"expected\": [\"substitution-sensitive-visit\"], \"passed\": true}, {\"check\": \"substitution-sensitive-visit regression 1\", \"actual\": [\"substitution-sensitive-visit\"], \"expected\": [\"substitution-sensitive-visit\"], \"passed\": true}, {\"check\": \"unwind-initialized-drops regression 0\", \"actual\": [\"unwind-initialized-drops\"], \"expected\": [\"unwind-initialized-drops\"], \"passed\": true}, {\"check\": \"unwind-initialized-drops regression 1\", \"actual\": [\"unwind-initialized-drops\"], \"expected\": [\"unwind-initialized-drops\"], \"passed\": true}, {\"check\": \"destructor-receiver regression 0\", \"actual\": [\"destructor-receiver\"], \"expected\": [\"destructor-receiver\"], \"passed\": true}, {\"check\": \"destructor-receiver regression 1\", \"actual\": [\"destructor-receiver\"], \"expected\": [\"destructor-receiver\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}