Skip to content

Commit

Permalink
Commit output with new ruleset names
Browse files Browse the repository at this point in the history
  • Loading branch information
Nadrieril committed Jan 27, 2025
1 parent 5d5bafd commit cb7efa4
Show file tree
Hide file tree
Showing 14 changed files with 1,126 additions and 0 deletions.
143 changes: 143 additions & 0 deletions tests/snapshots/bundle_rules@rfc3627_2021_always_eat_both-Let.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
---
source: src/analyses/compute_rules.rs
info:
bundle_name: rfc3627_2021_always_eat_both
options:
match_constructor_through_ref: true
eat_inherited_ref_alone: true
inherited_ref_on_ref: EatBoth
fallback_to_outer: EatBoth
allow_ref_pat_on_ref_mut: true
simplify_deref_mut: true
downgrade_mut_inside_shared: true
eat_mut_inside_shared: true
ref_binding_on_inherited: ResetBindingMode
mut_binding_on_inherited: ResetBindingMode
---
let p0: T0 = e.0, let p1: T1 = e.1
----------------------------------- "Constructor"
let [p0, p1]: [T0, T1] = e

let p0: &T0 = &(*e).0, let p1: &T1 = &(*e).1
--------------------------------------------- "ConstructorRef"
let [p0, p1]: &[T0, T1] = e

let p0: &mut T0 = &mut (*e).0, let p1: &mut T1 = &mut (*e).1
------------------------------------------------------------- "ConstructorRef"
let [p0, p1]: &mut [T0, T1] = e, e mutable

let p0: &T0 = &(*e).0, let p1: &T1 = &(*e).1
--------------------------------------------- "ConstructorRef(ForceReadOnly)"
let [p0, p1]: &mut [T0, T1] = e, e read-only

let [p0, p1]: &T = &**e
----------------------- "ConstructorMultiRef"
let [p0, p1]: &&T = e

let [p0, p1]: &T = &**e
------------------------- "ConstructorMultiRef"
let [p0, p1]: &&mut T = e

let [p0, p1]: &T = &**e
------------------------- "ConstructorMultiRef"
let [p0, p1]: &mut &T = e

let [p0, p1]: &mut T = &mut **e
---------------------------------------- "ConstructorMultiRef"
let [p0, p1]: &mut &mut T = e, e mutable

let [p0, p1]: &T = &**e
------------------------------------------ "ConstructorMultiRef(ForceReadOnly)"
let [p0, p1]: &mut &mut T = e, e read-only

let p: T = *e
------------------------------------ "Deref(EatOuter)"
let &p: &T = e, e is not a reference

let p: T = *&e
------------------------------------- "Deref(EatOuter)"
let &p: &T = &e, T is not a reference

let p: T = *e
-------------------------------------------- "Deref(EatOuter)"
let &mut p: &mut T = e, e is not a reference

let p: T = *&mut e
------------------------------------------------- "Deref(EatOuter)"
let &mut p: &mut T = &mut e, T is not a reference

let p: T = *e
---------------- "Deref(EatBoth)"
let &p: &&T = &e

let p: T = *e
------------------------ "Deref(EatBoth)"
let &p: &mut &T = &mut e

let p: T = *e
------------------------ "Deref(EatBoth)"
let &mut p: &&mut T = &e

let p: T = *e
-------------------------------- "Deref(EatBoth)"
let &mut p: &mut &mut T = &mut e

let p: T = **&mut e
---------------------------- "Deref(EatBoth, FallbackToOuter(EatBoth))"
let &mut p: &mut &T = &mut e

let p: T = *&*e
---------------------------------------- "DerefMutWithShared(EatOuter)"
let &p: &mut T = e, e is not a reference

let p: T = *&*&mut e
--------------------------------------------- "DerefMutWithShared(EatOuter)"
let &p: &mut T = &mut e, T is not a reference

let p: T = *&*e
-------------------- "DerefMutWithShared(EatBoth)"
let &p: &&mut T = &e

let p: T = *&*e
---------------------------- "DerefMutWithShared(EatBoth)"
let &p: &mut &mut T = &mut e

let ref x: T = e
------------------ "RefBindingResetBindingMode"
let ref x: &T = &e

let ref x: T = e
-------------------------- "RefBindingResetBindingMode"
let ref x: &mut T = &mut e

let ref mut x: T = e
---------------------- "RefBindingResetBindingMode"
let ref mut x: &T = &e

let ref mut x: T = e
------------------------------ "RefBindingResetBindingMode"
let ref mut x: &mut T = &mut e

let mut x: T = e
------------------ "MutBindingResetBindingMode"
let mut x: &T = &e

let mut x: T = e
-------------------------- "MutBindingResetBindingMode"
let mut x: &mut T = &mut e

let x: &T = &e
-------------------------------------- "BindingBorrow"
let ref x: T = e, e is not a reference

let x: &mut T = &mut e
------------------------------------------ "BindingBorrow"
let ref mut x: T = e, e is not a reference


------------ "Binding"
let x: T = e


-------------------------------------- "Binding"
let mut x: T = e, e is not a reference
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
---
source: src/analyses/compute_rules.rs
info:
bundle_name: rfc3627_2021_always_eat_both
options:
match_constructor_through_ref: true
eat_inherited_ref_alone: true
inherited_ref_on_ref: EatBoth
fallback_to_outer: EatBoth
allow_ref_pat_on_ref_mut: true
simplify_deref_mut: true
downgrade_mut_inside_shared: true
eat_mut_inside_shared: true
ref_binding_on_inherited: ResetBindingMode
mut_binding_on_inherited: ResetBindingMode
---
move, mp0: T0, move, mp1: T1
----------------------------------- "Constructor"
move, m ⊢ [p0, p1]: [T0, T1]

ref, rop0: T0, ref, rop1: T1
----------------------------------- "ConstructorRef"
move, m ⊢ [p0, p1]: &[T0, T1]

ref, rop0: T0, ref, rop1: T1
----------------------------------- "ConstructorRef"
ref, m ⊢ [p0, p1]: [T0, T1]

ref mut, rwp0: T0, ref mut, rwp1: T1
------------------------------------------- "ConstructorRef"
move, rw ⊢ [p0, p1]: &mut [T0, T1]

ref mut, rwp0: T0, ref mut, rwp1: T1
------------------------------------------- "ConstructorRef"
ref mut, rw ⊢ [p0, p1]: [T0, T1]

ref, rop0: T0, ref, rop1: T1
----------------------------------- "ConstructorRef(ForceReadOnly)"
move, ro ⊢ [p0, p1]: &mut [T0, T1]

ref, rop0: T0, ref, rop1: T1
----------------------------------- "ConstructorRef(ForceReadOnly)"
ref mut, ro ⊢ [p0, p1]: [T0, T1]

ref, ro ⊢ [p0, p1]: T
----------------------- "ConstructorMultiRef"
move, m ⊢ [p0, p1]: &&T

ref, ro ⊢ [p0, p1]: T
--------------------------- "ConstructorMultiRef"
move, m ⊢ [p0, p1]: &&mut T

ref, ro ⊢ [p0, p1]: T
--------------------- "ConstructorMultiRef"
ref, m ⊢ [p0, p1]: &T

ref, ro ⊢ [p0, p1]: T
------------------------- "ConstructorMultiRef"
ref, m ⊢ [p0, p1]: &mut T

ref, ro ⊢ [p0, p1]: T
--------------------------- "ConstructorMultiRef"
move, m ⊢ [p0, p1]: &mut &T

ref mut, rw ⊢ [p0, p1]: T
-------------------------------- "ConstructorMultiRef"
move, rw ⊢ [p0, p1]: &mut &mut T

ref, ro ⊢ [p0, p1]: T
------------------------- "ConstructorMultiRef"
ref mut, m ⊢ [p0, p1]: &T

ref mut, rw ⊢ [p0, p1]: T
------------------------------ "ConstructorMultiRef"
ref mut, rw ⊢ [p0, p1]: &mut T

ref, ro ⊢ [p0, p1]: T
-------------------------------- "ConstructorMultiRef(ForceReadOnly)"
move, ro ⊢ [p0, p1]: &mut &mut T

ref, ro ⊢ [p0, p1]: T
------------------------------ "ConstructorMultiRef(ForceReadOnly)"
ref mut, ro ⊢ [p0, p1]: &mut T

move, rop: T
---------------- "Deref(EatOuter)"
move, m&p: &T

move, rop: T
------------------------------------ "Deref(EatOuter)"
ref, m&p: T, T is not a reference

move, mp: T
------------------------ "Deref(EatOuter)"
move, m&mut p: &mut T

move, mp: T
-------------------------------------------- "Deref(EatOuter)"
ref mut, m&mut p: T, T is not a reference

move, rop: T
--------------- "Deref(EatBoth)"
ref, m&p: &T

move, rop: T
------------------- "Deref(EatBoth)"
ref mut, m&p: &T

move, mp: T
----------------------- "Deref(EatBoth)"
ref, m&mut p: &mut T

move, mp: T
--------------------------- "Deref(EatBoth)"
ref mut, m&mut p: &mut T

move, rop: T
----------------------- "Deref(EatBoth, FallbackToOuter(EatBoth))"
ref mut, m&mut p: &T

move, rop: T
-------------------- "DerefMutWithShared(EatOuter)"
move, m&p: &mut T

move, rop: T
---------------------------------------- "DerefMutWithShared(EatOuter)"
ref mut, m&p: T, T is not a reference

move, rop: T
------------------- "DerefMutWithShared(EatBoth)"
ref, m&p: &mut T

move, rop: T
----------------------- "DerefMutWithShared(EatBoth)"
ref mut, m&p: &mut T

bm, mref x: T
----------------- "RefBindingResetBindingMode"
ref, mref x: T

bm, mref x: T
--------------------- "RefBindingResetBindingMode"
ref mut, mref x: T

bm, mref mut x: T
--------------------- "RefBindingResetBindingMode"
ref, mref mut x: T

bm, mref mut x: T
------------------------- "RefBindingResetBindingMode"
ref mut, mref mut x: T

bm, mmut x: T
----------------- "MutBindingResetBindingMode"
ref, mmut x: T

bm, mmut x: T
--------------------- "MutBindingResetBindingMode"
ref mut, mmut x: T

ref, mx: T
------------------ "BindingBorrow"
move, mref x: T

ref mut, mx: T
---------------------- "BindingBorrow"
move, mref mut x: T


------------ "Binding"
bm, mx: T


------------------ "Binding"
move, mmut x: T
Loading

0 comments on commit cb7efa4

Please sign in to comment.