This program yields an LLVM error: ``` trait Foo { fn foo(&self) -> uint; } impl uint: Foo { fn foo(&self) -> uint { *self } } fn bar(x: @Foo, v: uint) { assert x.foo() == v; } fn main() { let x: @uint = @3; bar(x as @Foo, *x); } ```