fn func() -> i32 {
let a;
a = "HELLO";
let mut b;
b = 1;
b += 1; b &= 1; b |= 1; b ^= 1; b /= 1; b *= 1; b %= 1; b <<= 1; b >>= 1; b -= 1;
let c = "WORLD";
let mut d = 0.14;
d = d + 3.0;
d += 3.0;
let e = if true {
println!("A `StatementType::Other`");
1
} else {
2
};
const PI_CONST: f64 = 3.14;
static PI_STATIC: f64 = 3.14;
struct Object {
name: String,
}
let mut obj = Object { name: "NAME".into() };
obj.name = "NEW".into();
struct Color(usize, usize, usize);
let mut magic_color = Color(2023, 8, 31);
magic_color.0 = 2023;
magic_color.1 = 9;
magic_color.2 = 1;
#[derive(Default)]
struct NestedA(usize, usize, usize, usize, NestedB);
#[derive(Default)]
struct NestedB(usize, usize, usize, NestedC);
#[derive(Default)]
struct NestedC(usize, usize, NestedD);
#[derive(Default)]
struct NestedD(usize, NestedE);
#[derive(Default)]
struct NestedE(usize);
#[derive(Default)]
struct NestedOf2(NestedE);
#[derive(Default)]
struct NestedOf3(NestedD);
#[derive(Default)]
struct NestedOf4(NestedC);
#[derive(Default)]
struct NestedOf5(NestedB);
#[derive(Default)]
struct NestedOf6(NestedA);
let mut nested_of_2 = NestedOf2::default();
nested_of_2.0.0 = 2;
let mut nested_of_3 = NestedOf3::default();
nested_of_3.0.1.0 = 3;
let mut nested_of_4 = NestedOf4::default();
nested_of_4.0.2.1.0 = 4;
let mut nested_of_5 = NestedOf5::default();
nested_of_5.0.3.2.1.0 = 5;
let mut nested_of_6 = NestedOf6::default();
nested_of_6.0.4.3.2.1.0 = 6;
impl Object {
const OBJ_E_CONST: f64 = 2.71;
fn object_func(&self) -> f64 {
let obj_e = if true {
Self::OBJ_E_CONST
} else {
2.71
};
Self::OBJ_E_CONST
}
}
trait CalculateE {
const E_CONST: f64 = 2.71;
fn cal_e() -> f64 {
let cal_e = if true {
Self::E_CONST
} else {
Object::OBJ_E_CONST
};
Self::E_CONST
}
}
impl CalculateE for Object {
fn cal_e() -> f64 {
let obj_e = if true {
Object::OBJ_E_CONST
} else {
<Object as CalculateE>::E_CONST
};
Object::OBJ_E_CONST
}
}
let a = Some(1);
let Some(_) = a else {
unreachable!()
};
println!();
123;
pub fn assign_to_stmt() -> Vec<NestedE> {
let mut vec = vec![NestedE::default()];
vec.last_mut().unwrap().0 = 2;
vec
}
1
}
use firedbg_protocol::source::*;
use firedbg_rust_parser::*;
pub fn get_breakpoints() -> Vec<FunctionDef> {
vec![
FunctionDef {
ty: FunctionType::FreeFn {
fn_name: "func".into(),
is_async: false,
return_type: true,
},
loc: BreakableSpan {
start: LineColumn {
line: 1,
column: Some(19),
},
end: LineColumn {
line: 2,
column: Some(5),
},
},
},
FunctionDef {
ty: FunctionType::NestedFn {
fn_name: "object_func".into(),
parent_func: "func".into(),
is_async: false,
return_type: true,
},
loc: BreakableSpan {
start: LineColumn {
line: 89,
column: Some(39),
},
end: LineColumn {
line: 90,
column: Some(13),
},
},
},
FunctionDef {
ty: FunctionType::NestedFn {
fn_name: "cal_e".into(),
parent_func: "func".into(),
is_async: false,
return_type: true,
},
loc: BreakableSpan {
start: LineColumn {
line: 102,
column: Some(28),
},
end: LineColumn {
line: 103,
column: Some(13),
},
},
},
FunctionDef {
ty: FunctionType::NestedFn {
fn_name: "cal_e".into(),
parent_func: "func".into(),
is_async: false,
return_type: true,
},
loc: BreakableSpan {
start: LineColumn {
line: 113,
column: Some(28),
},
end: LineColumn {
line: 114,
column: Some(13),
},
},
},
FunctionDef {
ty: FunctionType::NestedFn {
fn_name: "assign_to_stmt".into(),
parent_func: "func".into(),
is_async: false,
return_type: true,
},
loc: BreakableSpan {
start: LineColumn {
line: 133,
column: Some(46),
},
end: LineColumn {
line: 134,
column: Some(9),
},
},
},
]
}