rust/src/test/run-pass/regions-iface.rs
Niko Matsakis 825fd1808e lots of work to make iface/impls parameterized by regions
- paths can now take region parameters, replacing the dirty hack
  I was doing before of abusing vstores.  vstores are now a bit
  of a hack though.

- fix various small bugs:
  - we never checked that iface types were compatible when casting
    to an iface with `as`
  - we allowed nonsense like int<int>
  - and more! (actually that may be it)
2012-04-25 19:26:56 -07:00

24 lines
371 B
Rust

type ctxt = { v: uint };
iface get_ctxt/& {
fn get_ctxt() -> &self.ctxt;
}
type has_ctxt/& = { c: &ctxt };
impl/& of get_ctxt for has_ctxt {
fn get_ctxt() -> &self.ctxt {
self.c
}
}
fn get_v(gc: get_ctxt) -> uint {
gc.get_ctxt().v
}
fn main() {
let ctxt = { v: 22u };
let hc = { c: &ctxt };
assert get_v(hc as get_ctxt) == 22u;
}