blob: ac2991171c65561b586977df9fb52b96b89b7d4c [file] [log] [blame]
Michael Woeristera36e5372013-08-15 10:23:541// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2// file at the top-level directory of this distribution and at
3// http://rust-lang.org/COPYRIGHT.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
Young-il Choica553172013-11-09 07:16:4411// xfail-android: FIXME(#10381)
sh8281.kim4e548282013-11-04 06:53:0112
Alex Crichton071ee962014-02-07 03:57:0913// compile-flags:-g
Michael Woerister93d63282013-09-06 14:00:0814// debugger:rbreak zzz
Michael Woeristera36e5372013-08-15 10:23:5415// debugger:run
16
17// STACK BY REF
18// debugger:finish
19// debugger:print *self
20// check:$1 = {100, -100.5}
21// debugger:print arg1
22// check:$2 = -1
23// debugger:print arg2
24// check:$3 = -2
25// debugger:continue
26
27// STACK BY VAL
28// debugger:finish
Michael Woerister01fae5f2013-12-17 15:54:2229// debugger:print self
30// check:$4 = {100, -100.5}
Michael Woeristera36e5372013-08-15 10:23:5431// debugger:print arg1
Michael Woerister01fae5f2013-12-17 15:54:2232// check:$5 = -3
Michael Woeristera36e5372013-08-15 10:23:5433// debugger:print arg2
Michael Woerister01fae5f2013-12-17 15:54:2234// check:$6 = -4
Michael Woeristera36e5372013-08-15 10:23:5435// debugger:continue
36
37// OWNED BY REF
38// debugger:finish
39// debugger:print *self
Michael Woerister01fae5f2013-12-17 15:54:2240// check:$7 = {200, -200.5}
Michael Woeristera36e5372013-08-15 10:23:5441// debugger:print arg1
Michael Woerister01fae5f2013-12-17 15:54:2242// check:$8 = -5
Michael Woeristera36e5372013-08-15 10:23:5443// debugger:print arg2
Michael Woerister01fae5f2013-12-17 15:54:2244// check:$9 = -6
Michael Woeristera36e5372013-08-15 10:23:5445// debugger:continue
46
47// OWNED BY VAL
48// debugger:finish
Michael Woerister01fae5f2013-12-17 15:54:2249// debugger:print self
50// check:$10 = {200, -200.5}
Michael Woeristera36e5372013-08-15 10:23:5451// debugger:print arg1
Michael Woerister01fae5f2013-12-17 15:54:2252// check:$11 = -7
Michael Woeristera36e5372013-08-15 10:23:5453// debugger:print arg2
Michael Woerister01fae5f2013-12-17 15:54:2254// check:$12 = -8
Michael Woeristera36e5372013-08-15 10:23:5455// debugger:continue
56
57// OWNED MOVED
58// debugger:finish
59// debugger:print *self
Michael Woerister01fae5f2013-12-17 15:54:2260// check:$13 = {200, -200.5}
Michael Woeristera36e5372013-08-15 10:23:5461// debugger:print arg1
Michael Woerister01fae5f2013-12-17 15:54:2262// check:$14 = -9
Michael Woeristera36e5372013-08-15 10:23:5463// debugger:print arg2
Michael Woerister01fae5f2013-12-17 15:54:2264// check:$15 = -10
Michael Woeristera36e5372013-08-15 10:23:5465// debugger:continue
66
Daniel Micayc9d4ad02013-09-26 06:26:0967struct TupleStruct(int, f64);
Michael Woeristera36e5372013-08-15 10:23:5468
69impl TupleStruct {
70
71 fn self_by_ref(&self, arg1: int, arg2: int) -> int {
72 zzz();
73 arg1 + arg2
74 }
75
76 fn self_by_val(self, arg1: int, arg2: int) -> int {
77 zzz();
78 arg1 + arg2
79 }
80
81 fn self_owned(~self, arg1: int, arg2: int) -> int {
82 zzz();
83 arg1 + arg2
84 }
Michael Woeristera36e5372013-08-15 10:23:5485}
86
87fn main() {
88 let stack = TupleStruct(100, -100.5);
89 let _ = stack.self_by_ref(-1, -2);
90 let _ = stack.self_by_val(-3, -4);
91
92 let owned = ~TupleStruct(200, -200.5);
93 let _ = owned.self_by_ref(-5, -6);
94 let _ = owned.self_by_val(-7, -8);
95 let _ = owned.self_owned(-9, -10);
Michael Woeristera36e5372013-08-15 10:23:5496}
97
98fn zzz() {()}