{"abstract":"Union field pattern extraction lacks its required unsafe boundary.","category":"Borrow checking","checks":21,"contract":"Check a toy destructuring pattern after type resolution. Binding names unique; alternatives bind identical name sets and modes; mutable reference binding needs mutable access; an explicit dereference pattern cannot move a noncopy referent; rest binding cannot overlap explicitly bound array positions; union fields require an explicit unsafe pattern; bindings introduced in a guard cannot escape guard region; simultaneous move and borrow of overlapping prefix places forbidden; a reference default binding mode cannot be reset implicitly by a plain identifier. 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-pattern-bindings","failed_approach":"The partial repair uses if d['union'] and not d['unsafe'] and not d['positions']: errors.append('union-pattern'), which still violates the stipulated analysis contract.","family":"s3-borrow-checking-pattern-bindings-union-pattern","id":"FA-43271","implementations":{"attempt":{"sha256":"43d6b2b4285fcd28a523792b0eaf1e6d1385500cdccfb677f09db6e312961f24","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    errors=[]\n    if len(d['names'])!=len(set(d['names'])): errors.append('binding-uniqueness')\n    if any(set(x)!=set(d['names']) for x in d['arm_names']): errors.append('alternative-name-agreement')\n    if any(x!=d['arm_modes'][0] for x in d['arm_modes'][1:]): errors.append('alternative-mode-agreement')\n    if not set(d['mut_refs'])<=set(d['mutable']): errors.append('mutable-binding')\n    if not set(d['deref_moves'])<=set(d['copy']): errors.append('deref-move')\n    if bool(set(d['rest'])&set(d['positions'])): errors.append('rest-disjointness')\n    if d['union'] and not d['unsafe'] and not d['positions']: errors.append('union-pattern')\n    if bool(set(d['guard_bindings'])&set(d['escaping'])): errors.append('guard-scope')\n    if any(a==b or a.startswith(b+'.') or b.startswith(a+'.') for a in d['moves'] for b in d['borrows']): errors.append('move-borrow-overlap')\n    if d['default_ref'] and bool(d['implicit_value']): errors.append('default-mode-reset')\n    return errors\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nbase={'names': [], 'arm_names': [], 'arm_modes': [], 'mut_refs': [], 'mutable': [], 'deref_moves': [], 'copy': [], 'rest': [], 'positions': [], 'union': False, 'unsafe': False, 'guard_bindings': [], 'escaping': [], 'moves': [], 'borrows': [], 'default_ref': False, 'implicit_value': []}\ncheck('well formed empty obligations',solve(base),[])\ncheck('binding-uniqueness regression 0', solve(dict(base, **({'names':['x','x']}))), ['binding-uniqueness'])\ncheck('binding-uniqueness regression 1', solve(dict(base, **({'names':[N,N]}))), ['binding-uniqueness'])\ncheck('alternative-name-agreement regression 0', solve(dict(base, **({'names':['x'],'arm_names':[['x'],['y']]}))), ['alternative-name-agreement'])\ncheck('alternative-name-agreement regression 1', solve(dict(base, **({'names':[N],'arm_names':[[N],[N+1]]}))), ['alternative-name-agreement'])\ncheck('alternative-mode-agreement regression 0', solve(dict(base, **({'arm_modes':['ref','move']}))), ['alternative-mode-agreement'])\ncheck('alternative-mode-agreement regression 1', solve(dict(base, **({'arm_modes':['ref','mut']}))), ['alternative-mode-agreement'])\ncheck('mutable-binding regression 0', solve(dict(base, **({'mut_refs':['a','b'],'mutable':['a']}))), ['mutable-binding'])\ncheck('mutable-binding regression 1', solve(dict(base, **({'mut_refs':[N],'mutable':[N+1]}))), ['mutable-binding'])\ncheck('deref-move regression 0', solve(dict(base, **({'deref_moves':['a','b'],'copy':['a']}))), ['deref-move'])\ncheck('deref-move regression 1', solve(dict(base, **({'deref_moves':[N,N+1],'copy':[N]}))), ['deref-move'])\ncheck('rest-disjointness regression 0', solve(dict(base, **({'rest':[N,N+1],'positions':[N+1]}))), ['rest-disjointness'])\ncheck('rest-disjointness regression 1', solve(dict(base, **({'rest':[N,N+1,N+2],'positions':[N]}))), ['rest-disjointness'])\ncheck('union-pattern regression 0', solve(dict(base, **({'union':True}))), ['union-pattern'])\ncheck('union-pattern regression 1', solve(dict(base, **({'union':True,'positions':list(range(N))}))), ['union-pattern'])\ncheck('guard-scope regression 0', solve(dict(base, **({'guard_bindings':['r'],'escaping':['r']}))), ['guard-scope'])\ncheck('guard-scope regression 1', solve(dict(base, **({'guard_bindings':[N],'escaping':[N]}))), ['guard-scope'])\ncheck('move-borrow-overlap regression 0', solve(dict(base, **({'moves':['r'],'borrows':['r.f']}))), ['move-borrow-overlap'])\ncheck('move-borrow-overlap regression 1', solve(dict(base, **({'moves':['r.f.g'],'borrows':['r.f']}))), ['move-borrow-overlap'])\ncheck('default-mode-reset regression 0', solve(dict(base, **({'default_ref':True,'implicit_value':['x']}))), ['default-mode-reset'])\ncheck('default-mode-reset regression 1', solve(dict(base, **({'default_ref':True,'implicit_value':[N]}))), ['default-mode-reset'])\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":"9dc89df83975f8855c65c4fb39619bc7a8b4f2cb39033af247b27db696187143","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    errors=[]\n    if len(d['names'])!=len(set(d['names'])): errors.append('binding-uniqueness')\n    if any(set(x)!=set(d['names']) for x in d['arm_names']): errors.append('alternative-name-agreement')\n    if any(x!=d['arm_modes'][0] for x in d['arm_modes'][1:]): errors.append('alternative-mode-agreement')\n    if not set(d['mut_refs'])<=set(d['mutable']): errors.append('mutable-binding')\n    if not set(d['deref_moves'])<=set(d['copy']): errors.append('deref-move')\n    if bool(set(d['rest'])&set(d['positions'])): errors.append('rest-disjointness')\n    if False: errors.append('union-pattern')\n    if bool(set(d['guard_bindings'])&set(d['escaping'])): errors.append('guard-scope')\n    if any(a==b or a.startswith(b+'.') or b.startswith(a+'.') for a in d['moves'] for b in d['borrows']): errors.append('move-borrow-overlap')\n    if d['default_ref'] and bool(d['implicit_value']): errors.append('default-mode-reset')\n    return errors\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nbase={'names': [], 'arm_names': [], 'arm_modes': [], 'mut_refs': [], 'mutable': [], 'deref_moves': [], 'copy': [], 'rest': [], 'positions': [], 'union': False, 'unsafe': False, 'guard_bindings': [], 'escaping': [], 'moves': [], 'borrows': [], 'default_ref': False, 'implicit_value': []}\ncheck('well formed empty obligations',solve(base),[])\ncheck('binding-uniqueness regression 0', solve(dict(base, **({'names':['x','x']}))), ['binding-uniqueness'])\ncheck('binding-uniqueness regression 1', solve(dict(base, **({'names':[N,N]}))), ['binding-uniqueness'])\ncheck('alternative-name-agreement regression 0', solve(dict(base, **({'names':['x'],'arm_names':[['x'],['y']]}))), ['alternative-name-agreement'])\ncheck('alternative-name-agreement regression 1', solve(dict(base, **({'names':[N],'arm_names':[[N],[N+1]]}))), ['alternative-name-agreement'])\ncheck('alternative-mode-agreement regression 0', solve(dict(base, **({'arm_modes':['ref','move']}))), ['alternative-mode-agreement'])\ncheck('alternative-mode-agreement regression 1', solve(dict(base, **({'arm_modes':['ref','mut']}))), ['alternative-mode-agreement'])\ncheck('mutable-binding regression 0', solve(dict(base, **({'mut_refs':['a','b'],'mutable':['a']}))), ['mutable-binding'])\ncheck('mutable-binding regression 1', solve(dict(base, **({'mut_refs':[N],'mutable':[N+1]}))), ['mutable-binding'])\ncheck('deref-move regression 0', solve(dict(base, **({'deref_moves':['a','b'],'copy':['a']}))), ['deref-move'])\ncheck('deref-move regression 1', solve(dict(base, **({'deref_moves':[N,N+1],'copy':[N]}))), ['deref-move'])\ncheck('rest-disjointness regression 0', solve(dict(base, **({'rest':[N,N+1],'positions':[N+1]}))), ['rest-disjointness'])\ncheck('rest-disjointness regression 1', solve(dict(base, **({'rest':[N,N+1,N+2],'positions':[N]}))), ['rest-disjointness'])\ncheck('union-pattern regression 0', solve(dict(base, **({'union':True}))), ['union-pattern'])\ncheck('union-pattern regression 1', solve(dict(base, **({'union':True,'positions':list(range(N))}))), ['union-pattern'])\ncheck('guard-scope regression 0', solve(dict(base, **({'guard_bindings':['r'],'escaping':['r']}))), ['guard-scope'])\ncheck('guard-scope regression 1', solve(dict(base, **({'guard_bindings':[N],'escaping':[N]}))), ['guard-scope'])\ncheck('move-borrow-overlap regression 0', solve(dict(base, **({'moves':['r'],'borrows':['r.f']}))), ['move-borrow-overlap'])\ncheck('move-borrow-overlap regression 1', solve(dict(base, **({'moves':['r.f.g'],'borrows':['r.f']}))), ['move-borrow-overlap'])\ncheck('default-mode-reset regression 0', solve(dict(base, **({'default_ref':True,'implicit_value':['x']}))), ['default-mode-reset'])\ncheck('default-mode-reset regression 1', solve(dict(base, **({'default_ref':True,'implicit_value':[N]}))), ['default-mode-reset'])\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":"9fdda7961664b0c1241c3cb6742fe8060d2059489d5c7d914d704c58b1754ad4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    errors=[]\n    if len(d['names'])!=len(set(d['names'])): errors.append('binding-uniqueness')\n    if any(set(x)!=set(d['names']) for x in d['arm_names']): errors.append('alternative-name-agreement')\n    if any(x!=d['arm_modes'][0] for x in d['arm_modes'][1:]): errors.append('alternative-mode-agreement')\n    if not set(d['mut_refs'])<=set(d['mutable']): errors.append('mutable-binding')\n    if not set(d['deref_moves'])<=set(d['copy']): errors.append('deref-move')\n    if bool(set(d['rest'])&set(d['positions'])): errors.append('rest-disjointness')\n    if d['union'] and not d['unsafe']: errors.append('union-pattern')\n    if bool(set(d['guard_bindings'])&set(d['escaping'])): errors.append('guard-scope')\n    if any(a==b or a.startswith(b+'.') or b.startswith(a+'.') for a in d['moves'] for b in d['borrows']): errors.append('move-borrow-overlap')\n    if d['default_ref'] and bool(d['implicit_value']): errors.append('default-mode-reset')\n    return errors\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nbase={'names': [], 'arm_names': [], 'arm_modes': [], 'mut_refs': [], 'mutable': [], 'deref_moves': [], 'copy': [], 'rest': [], 'positions': [], 'union': False, 'unsafe': False, 'guard_bindings': [], 'escaping': [], 'moves': [], 'borrows': [], 'default_ref': False, 'implicit_value': []}\ncheck('well formed empty obligations',solve(base),[])\ncheck('binding-uniqueness regression 0', solve(dict(base, **({'names':['x','x']}))), ['binding-uniqueness'])\ncheck('binding-uniqueness regression 1', solve(dict(base, **({'names':[N,N]}))), ['binding-uniqueness'])\ncheck('alternative-name-agreement regression 0', solve(dict(base, **({'names':['x'],'arm_names':[['x'],['y']]}))), ['alternative-name-agreement'])\ncheck('alternative-name-agreement regression 1', solve(dict(base, **({'names':[N],'arm_names':[[N],[N+1]]}))), ['alternative-name-agreement'])\ncheck('alternative-mode-agreement regression 0', solve(dict(base, **({'arm_modes':['ref','move']}))), ['alternative-mode-agreement'])\ncheck('alternative-mode-agreement regression 1', solve(dict(base, **({'arm_modes':['ref','mut']}))), ['alternative-mode-agreement'])\ncheck('mutable-binding regression 0', solve(dict(base, **({'mut_refs':['a','b'],'mutable':['a']}))), ['mutable-binding'])\ncheck('mutable-binding regression 1', solve(dict(base, **({'mut_refs':[N],'mutable':[N+1]}))), ['mutable-binding'])\ncheck('deref-move regression 0', solve(dict(base, **({'deref_moves':['a','b'],'copy':['a']}))), ['deref-move'])\ncheck('deref-move regression 1', solve(dict(base, **({'deref_moves':[N,N+1],'copy':[N]}))), ['deref-move'])\ncheck('rest-disjointness regression 0', solve(dict(base, **({'rest':[N,N+1],'positions':[N+1]}))), ['rest-disjointness'])\ncheck('rest-disjointness regression 1', solve(dict(base, **({'rest':[N,N+1,N+2],'positions':[N]}))), ['rest-disjointness'])\ncheck('union-pattern regression 0', solve(dict(base, **({'union':True}))), ['union-pattern'])\ncheck('union-pattern regression 1', solve(dict(base, **({'union':True,'positions':list(range(N))}))), ['union-pattern'])\ncheck('guard-scope regression 0', solve(dict(base, **({'guard_bindings':['r'],'escaping':['r']}))), ['guard-scope'])\ncheck('guard-scope regression 1', solve(dict(base, **({'guard_bindings':[N],'escaping':[N]}))), ['guard-scope'])\ncheck('move-borrow-overlap regression 0', solve(dict(base, **({'moves':['r'],'borrows':['r.f']}))), ['move-borrow-overlap'])\ncheck('move-borrow-overlap regression 1', solve(dict(base, **({'moves':['r.f.g'],'borrows':['r.f']}))), ['move-borrow-overlap'])\ncheck('default-mode-reset regression 0', solve(dict(base, **({'default_ref':True,'implicit_value':['x']}))), ['default-mode-reset'])\ncheck('default-mode-reset regression 1', solve(dict(base, **({'default_ref':True,'implicit_value':[N]}))), ['default-mode-reset'])\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-pattern-bindings-union-pattern","generated_at":"2026-09-29T14:44:00.092556+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['union'] and not d['unsafe']: errors.append('union-pattern').","root_cause":"The static analyzer mishandles union pattern: union field pattern extraction lacks its required unsafe boundary.","sha256":"5b32ad2ed48531b03179347ad11bfc5ffc9666b70b3a667da8e22ebb8dabea84","title":"Union field pattern extraction lacks its required unsafe boundary · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.584,"exit_code":1,"observations":[{"actual":[],"check":"well formed empty obligations","expected":[],"passed":true},{"actual":["binding-uniqueness"],"check":"binding-uniqueness regression 0","expected":["binding-uniqueness"],"passed":true},{"actual":["binding-uniqueness"],"check":"binding-uniqueness regression 1","expected":["binding-uniqueness"],"passed":true},{"actual":["alternative-name-agreement"],"check":"alternative-name-agreement regression 0","expected":["alternative-name-agreement"],"passed":true},{"actual":["alternative-name-agreement"],"check":"alternative-name-agreement regression 1","expected":["alternative-name-agreement"],"passed":true},{"actual":["alternative-mode-agreement"],"check":"alternative-mode-agreement regression 0","expected":["alternative-mode-agreement"],"passed":true},{"actual":["alternative-mode-agreement"],"check":"alternative-mode-agreement regression 1","expected":["alternative-mode-agreement"],"passed":true},{"actual":["mutable-binding"],"check":"mutable-binding regression 0","expected":["mutable-binding"],"passed":true},{"actual":["mutable-binding"],"check":"mutable-binding regression 1","expected":["mutable-binding"],"passed":true},{"actual":["deref-move"],"check":"deref-move regression 0","expected":["deref-move"],"passed":true},{"actual":["deref-move"],"check":"deref-move regression 1","expected":["deref-move"],"passed":true},{"actual":["rest-disjointness"],"check":"rest-disjointness regression 0","expected":["rest-disjointness"],"passed":true},{"actual":["rest-disjointness"],"check":"rest-disjointness regression 1","expected":["rest-disjointness"],"passed":true},{"actual":["union-pattern"],"check":"union-pattern regression 0","expected":["union-pattern"],"passed":true},{"actual":[],"check":"union-pattern regression 1","expected":["union-pattern"],"passed":false},{"actual":["guard-scope"],"check":"guard-scope regression 0","expected":["guard-scope"],"passed":true},{"actual":["guard-scope"],"check":"guard-scope regression 1","expected":["guard-scope"],"passed":true},{"actual":["move-borrow-overlap"],"check":"move-borrow-overlap regression 0","expected":["move-borrow-overlap"],"passed":true},{"actual":["move-borrow-overlap"],"check":"move-borrow-overlap regression 1","expected":["move-borrow-overlap"],"passed":true},{"actual":["default-mode-reset"],"check":"default-mode-reset regression 0","expected":["default-mode-reset"],"passed":true},{"actual":["default-mode-reset"],"check":"default-mode-reset regression 1","expected":["default-mode-reset"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"well formed empty obligations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"binding-uniqueness regression 0\", \"actual\": [\"binding-uniqueness\"], \"expected\": [\"binding-uniqueness\"], \"passed\": true}, {\"check\": \"binding-uniqueness regression 1\", \"actual\": [\"binding-uniqueness\"], \"expected\": [\"binding-uniqueness\"], \"passed\": true}, {\"check\": \"alternative-name-agreement regression 0\", \"actual\": [\"alternative-name-agreement\"], \"expected\": [\"alternative-name-agreement\"], \"passed\": true}, {\"check\": \"alternative-name-agreement regression 1\", \"actual\": [\"alternative-name-agreement\"], \"expected\": [\"alternative-name-agreement\"], \"passed\": true}, {\"check\": \"alternative-mode-agreement regression 0\", \"actual\": [\"alternative-mode-agreement\"], \"expected\": [\"alternative-mode-agreement\"], \"passed\": true}, {\"check\": \"alternative-mode-agreement regression 1\", \"actual\": [\"alternative-mode-agreement\"], \"expected\": [\"alternative-mode-agreement\"], \"passed\": true}, {\"check\": \"mutable-binding regression 0\", \"actual\": [\"mutable-binding\"], \"expected\": [\"mutable-binding\"], \"passed\": true}, {\"check\": \"mutable-binding regression 1\", \"actual\": [\"mutable-binding\"], \"expected\": [\"mutable-binding\"], \"passed\": true}, {\"check\": \"deref-move regression 0\", \"actual\": [\"deref-move\"], \"expected\": [\"deref-move\"], \"passed\": true}, {\"check\": \"deref-move regression 1\", \"actual\": [\"deref-move\"], \"expected\": [\"deref-move\"], \"passed\": true}, {\"check\": \"rest-disjointness regression 0\", \"actual\": [\"rest-disjointness\"], \"expected\": [\"rest-disjointness\"], \"passed\": true}, {\"check\": \"rest-disjointness regression 1\", \"actual\": [\"rest-disjointness\"], \"expected\": [\"rest-disjointness\"], \"passed\": true}, {\"check\": \"union-pattern regression 0\", \"actual\": [\"union-pattern\"], \"expected\": [\"union-pattern\"], \"passed\": true}, {\"check\": \"union-pattern regression 1\", \"actual\": [], \"expected\": [\"union-pattern\"], \"passed\": false}, {\"check\": \"guard-scope regression 0\", \"actual\": [\"guard-scope\"], \"expected\": [\"guard-scope\"], \"passed\": true}, {\"check\": \"guard-scope regression 1\", \"actual\": [\"guard-scope\"], \"expected\": [\"guard-scope\"], \"passed\": true}, {\"check\": \"move-borrow-overlap regression 0\", \"actual\": [\"move-borrow-overlap\"], \"expected\": [\"move-borrow-overlap\"], \"passed\": true}, {\"check\": \"move-borrow-overlap regression 1\", \"actual\": [\"move-borrow-overlap\"], \"expected\": [\"move-borrow-overlap\"], \"passed\": true}, {\"check\": \"default-mode-reset regression 0\", \"actual\": [\"default-mode-reset\"], \"expected\": [\"default-mode-reset\"], \"passed\": true}, {\"check\": \"default-mode-reset regression 1\", \"actual\": [\"default-mode-reset\"], \"expected\": [\"default-mode-reset\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":52.873,"exit_code":1,"observations":[{"actual":[],"check":"well formed empty obligations","expected":[],"passed":true},{"actual":["binding-uniqueness"],"check":"binding-uniqueness regression 0","expected":["binding-uniqueness"],"passed":true},{"actual":["binding-uniqueness"],"check":"binding-uniqueness regression 1","expected":["binding-uniqueness"],"passed":true},{"actual":["alternative-name-agreement"],"check":"alternative-name-agreement regression 0","expected":["alternative-name-agreement"],"passed":true},{"actual":["alternative-name-agreement"],"check":"alternative-name-agreement regression 1","expected":["alternative-name-agreement"],"passed":true},{"actual":["alternative-mode-agreement"],"check":"alternative-mode-agreement regression 0","expected":["alternative-mode-agreement"],"passed":true},{"actual":["alternative-mode-agreement"],"check":"alternative-mode-agreement regression 1","expected":["alternative-mode-agreement"],"passed":true},{"actual":["mutable-binding"],"check":"mutable-binding regression 0","expected":["mutable-binding"],"passed":true},{"actual":["mutable-binding"],"check":"mutable-binding regression 1","expected":["mutable-binding"],"passed":true},{"actual":["deref-move"],"check":"deref-move regression 0","expected":["deref-move"],"passed":true},{"actual":["deref-move"],"check":"deref-move regression 1","expected":["deref-move"],"passed":true},{"actual":["rest-disjointness"],"check":"rest-disjointness regression 0","expected":["rest-disjointness"],"passed":true},{"actual":["rest-disjointness"],"check":"rest-disjointness regression 1","expected":["rest-disjointness"],"passed":true},{"actual":[],"check":"union-pattern regression 0","expected":["union-pattern"],"passed":false},{"actual":[],"check":"union-pattern regression 1","expected":["union-pattern"],"passed":false},{"actual":["guard-scope"],"check":"guard-scope regression 0","expected":["guard-scope"],"passed":true},{"actual":["guard-scope"],"check":"guard-scope regression 1","expected":["guard-scope"],"passed":true},{"actual":["move-borrow-overlap"],"check":"move-borrow-overlap regression 0","expected":["move-borrow-overlap"],"passed":true},{"actual":["move-borrow-overlap"],"check":"move-borrow-overlap regression 1","expected":["move-borrow-overlap"],"passed":true},{"actual":["default-mode-reset"],"check":"default-mode-reset regression 0","expected":["default-mode-reset"],"passed":true},{"actual":["default-mode-reset"],"check":"default-mode-reset regression 1","expected":["default-mode-reset"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"well formed empty obligations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"binding-uniqueness regression 0\", \"actual\": [\"binding-uniqueness\"], \"expected\": [\"binding-uniqueness\"], \"passed\": true}, {\"check\": \"binding-uniqueness regression 1\", \"actual\": [\"binding-uniqueness\"], \"expected\": [\"binding-uniqueness\"], \"passed\": true}, {\"check\": \"alternative-name-agreement regression 0\", \"actual\": [\"alternative-name-agreement\"], \"expected\": [\"alternative-name-agreement\"], \"passed\": true}, {\"check\": \"alternative-name-agreement regression 1\", \"actual\": [\"alternative-name-agreement\"], \"expected\": [\"alternative-name-agreement\"], \"passed\": true}, {\"check\": \"alternative-mode-agreement regression 0\", \"actual\": [\"alternative-mode-agreement\"], \"expected\": [\"alternative-mode-agreement\"], \"passed\": true}, {\"check\": \"alternative-mode-agreement regression 1\", \"actual\": [\"alternative-mode-agreement\"], \"expected\": [\"alternative-mode-agreement\"], \"passed\": true}, {\"check\": \"mutable-binding regression 0\", \"actual\": [\"mutable-binding\"], \"expected\": [\"mutable-binding\"], \"passed\": true}, {\"check\": \"mutable-binding regression 1\", \"actual\": [\"mutable-binding\"], \"expected\": [\"mutable-binding\"], \"passed\": true}, {\"check\": \"deref-move regression 0\", \"actual\": [\"deref-move\"], \"expected\": [\"deref-move\"], \"passed\": true}, {\"check\": \"deref-move regression 1\", \"actual\": [\"deref-move\"], \"expected\": [\"deref-move\"], \"passed\": true}, {\"check\": \"rest-disjointness regression 0\", \"actual\": [\"rest-disjointness\"], \"expected\": [\"rest-disjointness\"], \"passed\": true}, {\"check\": \"rest-disjointness regression 1\", \"actual\": [\"rest-disjointness\"], \"expected\": [\"rest-disjointness\"], \"passed\": true}, {\"check\": \"union-pattern regression 0\", \"actual\": [], \"expected\": [\"union-pattern\"], \"passed\": false}, {\"check\": \"union-pattern regression 1\", \"actual\": [], \"expected\": [\"union-pattern\"], \"passed\": false}, {\"check\": \"guard-scope regression 0\", \"actual\": [\"guard-scope\"], \"expected\": [\"guard-scope\"], \"passed\": true}, {\"check\": \"guard-scope regression 1\", \"actual\": [\"guard-scope\"], \"expected\": [\"guard-scope\"], \"passed\": true}, {\"check\": \"move-borrow-overlap regression 0\", \"actual\": [\"move-borrow-overlap\"], \"expected\": [\"move-borrow-overlap\"], \"passed\": true}, {\"check\": \"move-borrow-overlap regression 1\", \"actual\": [\"move-borrow-overlap\"], \"expected\": [\"move-borrow-overlap\"], \"passed\": true}, {\"check\": \"default-mode-reset regression 0\", \"actual\": [\"default-mode-reset\"], \"expected\": [\"default-mode-reset\"], \"passed\": true}, {\"check\": \"default-mode-reset regression 1\", \"actual\": [\"default-mode-reset\"], \"expected\": [\"default-mode-reset\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.171,"exit_code":0,"observations":[{"actual":[],"check":"well formed empty obligations","expected":[],"passed":true},{"actual":["binding-uniqueness"],"check":"binding-uniqueness regression 0","expected":["binding-uniqueness"],"passed":true},{"actual":["binding-uniqueness"],"check":"binding-uniqueness regression 1","expected":["binding-uniqueness"],"passed":true},{"actual":["alternative-name-agreement"],"check":"alternative-name-agreement regression 0","expected":["alternative-name-agreement"],"passed":true},{"actual":["alternative-name-agreement"],"check":"alternative-name-agreement regression 1","expected":["alternative-name-agreement"],"passed":true},{"actual":["alternative-mode-agreement"],"check":"alternative-mode-agreement regression 0","expected":["alternative-mode-agreement"],"passed":true},{"actual":["alternative-mode-agreement"],"check":"alternative-mode-agreement regression 1","expected":["alternative-mode-agreement"],"passed":true},{"actual":["mutable-binding"],"check":"mutable-binding regression 0","expected":["mutable-binding"],"passed":true},{"actual":["mutable-binding"],"check":"mutable-binding regression 1","expected":["mutable-binding"],"passed":true},{"actual":["deref-move"],"check":"deref-move regression 0","expected":["deref-move"],"passed":true},{"actual":["deref-move"],"check":"deref-move regression 1","expected":["deref-move"],"passed":true},{"actual":["rest-disjointness"],"check":"rest-disjointness regression 0","expected":["rest-disjointness"],"passed":true},{"actual":["rest-disjointness"],"check":"rest-disjointness regression 1","expected":["rest-disjointness"],"passed":true},{"actual":["union-pattern"],"check":"union-pattern regression 0","expected":["union-pattern"],"passed":true},{"actual":["union-pattern"],"check":"union-pattern regression 1","expected":["union-pattern"],"passed":true},{"actual":["guard-scope"],"check":"guard-scope regression 0","expected":["guard-scope"],"passed":true},{"actual":["guard-scope"],"check":"guard-scope regression 1","expected":["guard-scope"],"passed":true},{"actual":["move-borrow-overlap"],"check":"move-borrow-overlap regression 0","expected":["move-borrow-overlap"],"passed":true},{"actual":["move-borrow-overlap"],"check":"move-borrow-overlap regression 1","expected":["move-borrow-overlap"],"passed":true},{"actual":["default-mode-reset"],"check":"default-mode-reset regression 0","expected":["default-mode-reset"],"passed":true},{"actual":["default-mode-reset"],"check":"default-mode-reset regression 1","expected":["default-mode-reset"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"well formed empty obligations\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"binding-uniqueness regression 0\", \"actual\": [\"binding-uniqueness\"], \"expected\": [\"binding-uniqueness\"], \"passed\": true}, {\"check\": \"binding-uniqueness regression 1\", \"actual\": [\"binding-uniqueness\"], \"expected\": [\"binding-uniqueness\"], \"passed\": true}, {\"check\": \"alternative-name-agreement regression 0\", \"actual\": [\"alternative-name-agreement\"], \"expected\": [\"alternative-name-agreement\"], \"passed\": true}, {\"check\": \"alternative-name-agreement regression 1\", \"actual\": [\"alternative-name-agreement\"], \"expected\": [\"alternative-name-agreement\"], \"passed\": true}, {\"check\": \"alternative-mode-agreement regression 0\", \"actual\": [\"alternative-mode-agreement\"], \"expected\": [\"alternative-mode-agreement\"], \"passed\": true}, {\"check\": \"alternative-mode-agreement regression 1\", \"actual\": [\"alternative-mode-agreement\"], \"expected\": [\"alternative-mode-agreement\"], \"passed\": true}, {\"check\": \"mutable-binding regression 0\", \"actual\": [\"mutable-binding\"], \"expected\": [\"mutable-binding\"], \"passed\": true}, {\"check\": \"mutable-binding regression 1\", \"actual\": [\"mutable-binding\"], \"expected\": [\"mutable-binding\"], \"passed\": true}, {\"check\": \"deref-move regression 0\", \"actual\": [\"deref-move\"], \"expected\": [\"deref-move\"], \"passed\": true}, {\"check\": \"deref-move regression 1\", \"actual\": [\"deref-move\"], \"expected\": [\"deref-move\"], \"passed\": true}, {\"check\": \"rest-disjointness regression 0\", \"actual\": [\"rest-disjointness\"], \"expected\": [\"rest-disjointness\"], \"passed\": true}, {\"check\": \"rest-disjointness regression 1\", \"actual\": [\"rest-disjointness\"], \"expected\": [\"rest-disjointness\"], \"passed\": true}, {\"check\": \"union-pattern regression 0\", \"actual\": [\"union-pattern\"], \"expected\": [\"union-pattern\"], \"passed\": true}, {\"check\": \"union-pattern regression 1\", \"actual\": [\"union-pattern\"], \"expected\": [\"union-pattern\"], \"passed\": true}, {\"check\": \"guard-scope regression 0\", \"actual\": [\"guard-scope\"], \"expected\": [\"guard-scope\"], \"passed\": true}, {\"check\": \"guard-scope regression 1\", \"actual\": [\"guard-scope\"], \"expected\": [\"guard-scope\"], \"passed\": true}, {\"check\": \"move-borrow-overlap regression 0\", \"actual\": [\"move-borrow-overlap\"], \"expected\": [\"move-borrow-overlap\"], \"passed\": true}, {\"check\": \"move-borrow-overlap regression 1\", \"actual\": [\"move-borrow-overlap\"], \"expected\": [\"move-borrow-overlap\"], \"passed\": true}, {\"check\": \"default-mode-reset regression 0\", \"actual\": [\"default-mode-reset\"], \"expected\": [\"default-mode-reset\"], \"passed\": true}, {\"check\": \"default-mode-reset regression 1\", \"actual\": [\"default-mode-reset\"], \"expected\": [\"default-mode-reset\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}