1 // min-lldb-version: 310
5 // === GDB TESTS ===================================================================================
10 // gdb-command:print *self
11 // gdbg-check:$1 = {x = 100}
12 // gdbr-check:$1 = method_on_trait::Struct {x: 100}
13 // gdb-command:print arg1
15 // gdb-command:print arg2
17 // gdb-command:continue
20 // gdb-command:print self
21 // gdbg-check:$4 = {x = 100}
22 // gdbr-check:$4 = method_on_trait::Struct {x: 100}
23 // gdb-command:print arg1
25 // gdb-command:print arg2
27 // gdb-command:continue
30 // gdb-command:print *self
31 // gdbg-check:$7 = {x = 200}
32 // gdbr-check:$7 = method_on_trait::Struct {x: 200}
33 // gdb-command:print arg1
35 // gdb-command:print arg2
37 // gdb-command:continue
40 // gdb-command:print self
41 // gdbg-check:$10 = {x = 200}
42 // gdbr-check:$10 = method_on_trait::Struct {x: 200}
43 // gdb-command:print arg1
45 // gdb-command:print arg2
47 // gdb-command:continue
50 // gdb-command:print *self
51 // gdbg-check:$13 = {x = 200}
52 // gdbr-check:$13 = method_on_trait::Struct {x: 200}
53 // gdb-command:print arg1
55 // gdb-command:print arg2
56 // gdb-check:$15 = -10
57 // gdb-command:continue
60 // === LLDB TESTS ==================================================================================
65 // lldb-command:print *self
66 // lldbg-check:[...]$0 = { x = 100 }
67 // lldbr-check:(method_on_trait::Struct) *self = { x = 100 }
68 // lldb-command:print arg1
69 // lldbg-check:[...]$1 = -1
70 // lldbr-check:(isize) arg1 = -1
71 // lldb-command:print arg2
72 // lldbg-check:[...]$2 = -2
73 // lldbr-check:(isize) arg2 = -2
74 // lldb-command:continue
77 // lldb-command:print self
78 // lldbg-check:[...]$3 = { x = 100 }
79 // lldbr-check:(method_on_trait::Struct) self = { x = 100 }
80 // lldb-command:print arg1
81 // lldbg-check:[...]$4 = -3
82 // lldbr-check:(isize) arg1 = -3
83 // lldb-command:print arg2
84 // lldbg-check:[...]$5 = -4
85 // lldbr-check:(isize) arg2 = -4
86 // lldb-command:continue
89 // lldb-command:print *self
90 // lldbg-check:[...]$6 = { x = 200 }
91 // lldbr-check:(method_on_trait::Struct) *self = { x = 200 }
92 // lldb-command:print arg1
93 // lldbg-check:[...]$7 = -5
94 // lldbr-check:(isize) arg1 = -5
95 // lldb-command:print arg2
96 // lldbg-check:[...]$8 = -6
97 // lldbr-check:(isize) arg2 = -6
98 // lldb-command:continue
101 // lldb-command:print self
102 // lldbg-check:[...]$9 = { x = 200 }
103 // lldbr-check:(method_on_trait::Struct) self = { x = 200 }
104 // lldb-command:print arg1
105 // lldbg-check:[...]$10 = -7
106 // lldbr-check:(isize) arg1 = -7
107 // lldb-command:print arg2
108 // lldbg-check:[...]$11 = -8
109 // lldbr-check:(isize) arg2 = -8
110 // lldb-command:continue
113 // lldb-command:print *self
114 // lldbg-check:[...]$12 = { x = 200 }
115 // lldbr-check:(method_on_trait::Struct) *self = { x = 200 }
116 // lldb-command:print arg1
117 // lldbg-check:[...]$13 = -9
118 // lldbr-check:(isize) arg1 = -9
119 // lldb-command:print arg2
120 // lldbg-check:[...]$14 = -10
121 // lldbr-check:(isize) arg2 = -10
122 // lldb-command:continue
125 #![feature(box_syntax)]
126 #![feature(omit_gdb_pretty_printer_section)]
127 #![omit_gdb_pretty_printer_section]
129 #[derive(Copy, Clone)]
135 fn self_by_ref(&self, arg1: isize, arg2: isize) -> isize;
136 fn self_by_val(self, arg1: isize, arg2: isize) -> isize;
137 fn self_owned(self: Box<Self>, arg1: isize, arg2: isize) -> isize;
140 impl Trait for Struct {
142 fn self_by_ref(&self, arg1: isize, arg2: isize) -> isize {
147 fn self_by_val(self, arg1: isize, arg2: isize) -> isize {
152 fn self_owned(self: Box<Struct>, arg1: isize, arg2: isize) -> isize {
159 let stack = Struct { x: 100 };
160 let _ = stack.self_by_ref(-1, -2);
161 let _ = stack.self_by_val(-3, -4);
163 let owned: Box<_> = box Struct { x: 200 };
164 let _ = owned.self_by_ref(-5, -6);
165 let _ = owned.self_by_val(-7, -8);
166 let _ = owned.self_owned(-9, -10);