blob: 5e8dced536e82f91dccbfbf9e341cc605bb51812 [file] [edit]
universe u
def a : Array ((Nat × Nat) × Bool) := #[]
def b : Array Nat := #[]
structure Foo where
(x : Array ((Nat × Nat) × Bool) := #[])
(y : Nat := 0)
/-- info: b.modifyOp 1 fun _s => 2 : Array Nat -/
#guard_msgs in #check (b).modifyOp (idx := 1) (fun _s => 2)
/--
info: let __src := b;
__src.modifyOp 1 fun s => 2 : Array Nat
-/
#guard_msgs in #check { b with [1] := 2 }
/--
info: let __src := a;
__src.modifyOp 1 fun s =>
(let __src := s.fst;
(__src.fst, 1),
s.snd) : Array ((Nat × Nat) × Bool)
-/
#guard_msgs in #check { a with [1].fst.2 := 1 }
def foo : Foo := {}
/-- info: foo.x[1]!.fst.snd : Nat -/
#guard_msgs in #check foo.x[1]!.1.2
/--
info: let __src := foo;
{
x :=
let __src := __src.x;
__src.modifyOp 1 fun s => (s.fst, true),
y := __src.y } : Foo
-/
#guard_msgs in #check { foo with x[1].2 := true }
/--
info: let __src := foo;
{
x :=
let __src := __src.x;
__src.modifyOp 1 fun s =>
(let __src := s.fst;
(__src.fst, 1),
s.snd),
y := __src.y } : Foo
-/
#guard_msgs in #check { foo with x[1].fst.snd := 1 }
/--
info: let __src := foo;
{
x :=
let __src := __src.x;
__src.modifyOp 1 fun s =>
(let __src := s.fst;
(1, __src.snd),
s.snd),
y := __src.y } : Foo
-/
#guard_msgs in #check { foo with x[1].1.fst := 1 }
/--
info: let __src := foo;
{
x :=
let __src := __src.x;
__src.modifyOp 1 fun s =>
(let __src := s.fst;
(5, __src.snd),
s.snd),
y := __src.y } : Foo
-/
#guard_msgs in #check { foo with x[1].1.1 := 5 }
/--
info: let __src := foo;
{
x :=
let __src := __src.x;
__src.modifyOp 1 fun s =>
(let __src := s.fst;
(__src.fst, 5),
s.snd),
y := __src.y } : Foo
-/
#guard_msgs in #check { foo with x[1].1.2 := 5 }