]> git.lizzy.rs Git - rust.git/blob - src/test/debuginfo/generic-struct.rs
Rollup merge of #77368 - est31:apfloat_fix, r=varkor
[rust.git] / src / test / debuginfo / generic-struct.rs
1 // ignore-tidy-linelength
2
3 // Some versions of the non-rust-enabled LLDB print the wrong generic
4 // parameter type names in this test.
5 // rust-lldb
6
7 // compile-flags:-g
8
9 // === GDB TESTS ===================================================================================
10
11 // gdb-command:run
12
13 // gdb-command:print int_int
14 // gdbg-check:$1 = {key = 0, value = 1}
15 // gdbr-check:$1 = generic_struct::AGenericStruct<i32, i32> {key: 0, value: 1}
16 // gdb-command:print int_float
17 // gdbg-check:$2 = {key = 2, value = 3.5}
18 // gdbr-check:$2 = generic_struct::AGenericStruct<i32, f64> {key: 2, value: 3.5}
19 // gdb-command:print float_int
20 // gdbg-check:$3 = {key = 4.5, value = 5}
21 // gdbr-check:$3 = generic_struct::AGenericStruct<f64, i32> {key: 4.5, value: 5}
22 // gdb-command:print float_int_float
23 // gdbg-check:$4 = {key = 6.5, value = {key = 7, value = 8.5}}
24 // gdbr-check:$4 = generic_struct::AGenericStruct<f64, generic_struct::AGenericStruct<i32, f64>> {key: 6.5, value: generic_struct::AGenericStruct<i32, f64> {key: 7, value: 8.5}}
25
26 // === LLDB TESTS ==================================================================================
27
28 // lldb-command:run
29
30 // lldb-command:print int_int
31 // lldbg-check:[...]$0 = AGenericStruct<i32, i32> { key: 0, value: 1 }
32 // lldbr-check:(generic_struct::AGenericStruct<i32, i32>) int_int = AGenericStruct<i32, i32> { key: 0, value: 1 }
33 // lldb-command:print int_float
34 // lldbg-check:[...]$1 = AGenericStruct<i32, f64> { key: 2, value: 3.5 }
35 // lldbr-check:(generic_struct::AGenericStruct<i32, f64>) int_float = AGenericStruct<i32, f64> { key: 2, value: 3.5 }
36 // lldb-command:print float_int
37 // lldbg-check:[...]$2 = AGenericStruct<f64, i32> { key: 4.5, value: 5 }
38 // lldbr-check:(generic_struct::AGenericStruct<f64, i32>) float_int = AGenericStruct<f64, i32> { key: 4.5, value: 5 }
39
40 // lldb-command:print float_int_float
41 // lldbg-check:[...]$3 = AGenericStruct<f64, generic_struct::AGenericStruct<i32, f64>> { key: 6.5, value: AGenericStruct<i32, f64> { key: 7, value: 8.5 } }
42 // lldbr-check:(generic_struct::AGenericStruct<f64, generic_struct::AGenericStruct<i32, f64>>) float_int_float = AGenericStruct<f64, generic_struct::AGenericStruct<i32, f64>> { key: 6.5, value: AGenericStruct<i32, f64> { key: 7, value: 8.5 } }
43
44
45 #![feature(omit_gdb_pretty_printer_section)]
46 #![omit_gdb_pretty_printer_section]
47
48 struct AGenericStruct<TKey, TValue> {
49     key: TKey,
50     value: TValue
51 }
52
53 fn main() {
54
55     let int_int = AGenericStruct { key: 0, value: 1 };
56     let int_float = AGenericStruct { key: 2, value: 3.5f64 };
57     let float_int = AGenericStruct { key: 4.5f64, value: 5 };
58     let float_int_float = AGenericStruct {
59         key: 6.5f64,
60         value: AGenericStruct { key: 7, value: 8.5f64 },
61     };
62
63     zzz(); // #break
64 }
65
66 fn zzz() { () }