Roy Frostig | d5ff6e1 | 2010-06-29 04:45:48 | [diff] [blame] | 1 | |
Graydon Hoare | ce72993 | 2011-06-15 18:19:50 | [diff] [blame] | 2 | |
Marijn Haverbeke | df7f21d | 2011-07-27 12:19:39 | [diff] [blame^] | 3 | obj buf[T](data: {_0: T, _1: T, _2: T}) { |
4 | fn get(i: int) -> T { | ||||
5 | if i == 0 { | ||||
Graydon Hoare | ce72993 | 2011-06-15 18:19:50 | [diff] [blame] | 6 | ret data._0; |
Marijn Haverbeke | df7f21d | 2011-07-27 12:19:39 | [diff] [blame^] | 7 | } else { if i == 1 { ret data._1; } else { ret data._2; } } |
Graydon Hoare | ce72993 | 2011-06-15 18:19:50 | [diff] [blame] | 8 | } |
Marijn Haverbeke | df7f21d | 2011-07-27 12:19:39 | [diff] [blame^] | 9 | fn take(t: &T) { } |
10 | fn take2(t: &T) { } | ||||
Graydon Hoare | d6b7c96 | 2010-06-24 04:03:09 | [diff] [blame] | 11 | } |
12 | |||||
13 | fn main() { | ||||
Marijn Haverbeke | df7f21d | 2011-07-27 12:19:39 | [diff] [blame^] | 14 | let b: buf[int] = buf[int]({_0: 1, _1: 2, _2: 3}); |
Graydon Hoare | ce72993 | 2011-06-15 18:19:50 | [diff] [blame] | 15 | log "constructed object"; |
16 | log b.get(0); | ||||
17 | log b.get(1); | ||||
18 | log b.get(2); | ||||
19 | assert (b.get(0) == 1); | ||||
20 | assert (b.get(1) == 2); | ||||
21 | assert (b.get(2) == 3); | ||||
22 | b.take2(0); | ||||
23 | } |