//@ compile-flags:-g
//@ edition:2021
//@ ignore-backends: gcc
//@ min-lldb-version: 2100
// === GDB TESTS ===================================================================================

//@ gdb-command:run
//@ gdb-command:print test
//@ gdb-check:$1 = captured_fields_1::main::{closure_env#0} {_ref__my_ref__my_field1: 0x[...]}
//@ gdb-command:continue
//@ gdb-command:print test
//@ gdb-check:$2 = captured_fields_1::main::{closure_env#1} {_ref__my_ref__my_field2: 0x[...]}
//@ gdb-command:continue
//@ gdb-command:print test
//@ gdb-check:$3 = captured_fields_1::main::{closure_env#2} {_ref__my_ref: 0x[...]}
//@ gdb-command:continue
//@ gdb-command:print test
//@ gdb-check:$4 = captured_fields_1::main::{closure_env#3} {my_ref: 0x[...]}
//@ gdb-command:continue
//@ gdb-command:print test
//@ gdb-check:$5 = captured_fields_1::main::{closure_env#4} {my_var__my_field2: 22}
//@ gdb-command:continue
//@ gdb-command:print test
//@ gdb-check:$6 = captured_fields_1::main::{closure_env#5} {my_var: captured_fields_1::MyStruct {my_field1: 11, my_field2: 22}}
//@ gdb-command:continue

// === LLDB TESTS ==================================================================================

//@ lldb-command:run
//@ lldb-command:v test
//@ lldb-check:(captured_fields_1::main::{closure_env#0}) test = {_ref__my_ref__my_field1:0x[...]}
//@ lldb-command:continue
//@ lldb-command:v test
//@ lldb-check:(captured_fields_1::main::{closure_env#1}) test = {_ref__my_ref__my_field2:0x[...]}
//@ lldb-command:continue
//@ lldb-command:v test
//@ lldb-check:(captured_fields_1::main::{closure_env#2}) test = {_ref__my_ref:0x[...]}
//@ lldb-command:continue
//@ lldb-command:v test
//@ lldb-check:(captured_fields_1::main::{closure_env#3}) test = {my_ref:{my_field1:11, my_field2:22}}
//@ lldb-command:continue
//@ lldb-command:v test
//@ lldb-check:(captured_fields_1::main::{closure_env#4}) test = {my_var__my_field2:22}
//@ lldb-command:continue
//@ lldb-command:v test
//@ lldb-check:(captured_fields_1::main::{closure_env#5}) test = {my_var:{my_field1:11, my_field2:22}}
//@ lldb-command:continue

#![allow(unused)]

struct MyStruct {
    my_field1: u32,
    my_field2: u32,
}

fn main() {
    let mut my_var = MyStruct { my_field1: 11, my_field2: 22 };
    let my_ref = &mut my_var;

    let test = || {
        let a = &mut my_ref.my_field1;
    };

    _zzz(); // #break

    let test = || {
        let a = &my_ref.my_field2;
    };

    _zzz(); // #break

    let test = || {
        let a = &my_ref;
    };

    _zzz(); // #break

    let test = || {
        let a = my_ref;
    };

    _zzz(); // #break

    let test = move || {
        let a = my_var.my_field2;
    };

    _zzz(); // #break

    let test = || {
        let a = my_var;
    };

    _zzz(); // #break
}

fn _zzz() {}
