about summary refs log tree commit diff
path: root/src/test/debug-info/trait-pointers.rs
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@gmail>2013-09-11 11:08:44 +0200
committerMichael Woerister <michaelwoerister@gmail>2013-09-15 12:28:25 +0200
commitbf37de9fc675a90d12c37fd0e8acdfe4107545f9 (patch)
tree86d3da6715392e8cfdb41c11f5eedf1f7dda899a /src/test/debug-info/trait-pointers.rs
parent4ecb0a372d4b246f694bf780d50809dc0fb32018 (diff)
downloadrust-bf37de9fc675a90d12c37fd0e8acdfe4107545f9.tar.gz
rust-bf37de9fc675a90d12c37fd0e8acdfe4107545f9.zip
debuginfo: Basic support for trait objects.
Diffstat (limited to 'src/test/debug-info/trait-pointers.rs')
-rw-r--r--src/test/debug-info/trait-pointers.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/debug-info/trait-pointers.rs b/src/test/debug-info/trait-pointers.rs
new file mode 100644
index 00000000000..beb1096b0f4
--- /dev/null
+++ b/src/test/debug-info/trait-pointers.rs
@@ -0,0 +1,34 @@
+// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// compile-flags:-Z extra-debug-info
+// debugger:run
+
+#[allow(unused_variable)];
+
+trait Trait {
+    fn method(&self) -> int { 0 }
+}
+
+struct Struct {
+    a: int,
+    b: float
+}
+
+impl Trait for Struct {}
+
+fn main() {
+    let stack_struct = Struct { a:0, b: 1.0 };
+    let reference: &Trait = &stack_struct as &Trait;
+    let managed: @Trait = @Struct { a:2, b: 3.0 } as @Trait;
+    let unique: ~Trait = ~Struct { a:2, b: 3.0 } as ~Trait;
+}
+
+fn zzz() {()}