diff --git a/src/librustc/middle/trans/debuginfo.rs b/src/librustc/middle/trans/debuginfo.rs index 0783d5b418f21..a77e8f764f38d 100644 --- a/src/librustc/middle/trans/debuginfo.rs +++ b/src/librustc/middle/trans/debuginfo.rs @@ -129,11 +129,13 @@ use driver::session; use lib::llvm::llvm; use lib::llvm::{ModuleRef, ContextRef, ValueRef}; use lib::llvm::debuginfo::*; +use middle::trans::adt; +use middle::trans::base; +use middle::trans::build; use middle::trans::common::*; use middle::trans::machine; use middle::trans::type_of; use middle::trans::type_::Type; -use middle::trans::adt; use middle::trans; use middle::ty; use middle::pat_util; @@ -453,12 +455,29 @@ pub fn create_self_argument_metadata(bcx: @mut Block, let address_operations = &[unsafe { llvm::LLVMDIBuilderCreateOpDeref(Type::i64().to_ref()) }]; + // The self argument comes in one of two forms: + // (1) For `&self`, `~self`, and `@self` it is an alloca containing a pointer to the data. That + // is the `{&~@}self` pointer is contained by value in the alloca, and `type_of_self` will + // be `{&~@}Self` + // (2) For by-value `self`, `llptr` will not be an alloca, but a pointer to the self-value. That + // is by-value `self` is always implicitly passed by reference (sic!). So we have a couple + // of problems here: + // (a) There is no alloca to give to `llvm.dbg.declare` and + // (b) `type_of_self` is `Self`, but `llptr` is of type `*Self` + // In order to solve this problem, the else branch below creates a helper alloca which + // contains a copy of `llptr`. We then describe the `self` parameter by pointing + // `llvm.dbg.declare` to this helper alloca and tell it that the pointer there needs to be + // dereferenced once to get to the actual data (similar to non-immediate by-value args). let variable_access = if unsafe { llvm::LLVMIsAAllocaInst(llptr) } != ptr::null() { DirectVariable { alloca: llptr } } else { - // This is not stable and may break with future LLVM versions. llptr should really always - // be an alloca. Anything else is not supported and just works by chance. - IndirectVariable { alloca: llptr, address_operations: address_operations } + // Create a helper alloca that allows us to track the self-argument properly. The alloca + // contains a pointer to the self-value. + let ptr_type = ty::mk_mut_ptr(bcx.tcx(), type_of_self); + let helper_alloca = base::alloc_ty(bcx, ptr_type, "__self"); + build::Store(bcx, llptr, helper_alloca); + + IndirectVariable { alloca: helper_alloca, address_operations: address_operations } }; declare_local(bcx, diff --git a/src/test/debug-info/by-value-self-argument-in-trait-impl.rs b/src/test/debug-info/by-value-self-argument-in-trait-impl.rs index 4f14837471ab2..d051ab9db93b1 100644 --- a/src/test/debug-info/by-value-self-argument-in-trait-impl.rs +++ b/src/test/debug-info/by-value-self-argument-in-trait-impl.rs @@ -8,7 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// xfail-win32: FIXME (#10474) // xfail-android: FIXME(#10381) #[feature(managed_boxes)]; diff --git a/src/test/debug-info/generic-method-on-generic-struct.rs b/src/test/debug-info/generic-method-on-generic-struct.rs index 80f2031b92ebc..767293c3dc8c8 100644 --- a/src/test/debug-info/generic-method-on-generic-struct.rs +++ b/src/test/debug-info/generic-method-on-generic-struct.rs @@ -26,72 +26,72 @@ // STACK BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = {8888, -8888}} +// debugger:print self +// check:$4 = {x = {8888, -8888}} // debugger:print arg1 -// check:$4 = -3 +// check:$5 = -3 // debugger:print arg2 -// check:$5 = -4 +// check:$6 = -4 // debugger:continue // OWNED BY REF // debugger:finish // debugger:print *self -// check:$6 = {x = 1234.5} +// check:$7 = {x = 1234.5} // debugger:print arg1 -// check:$7 = -5 +// check:$8 = -5 // debugger:print arg2 -// check:$8 = -6 +// check:$9 = -6 // debugger:continue // OWNED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 1234.5} +// debugger:print self +// check:$10 = {x = 1234.5} // debugger:print arg1 -// check:$9 = -7 +// check:$11 = -7 // debugger:print arg2 -// check:$10 = -8 +// check:$12 = -8 // debugger:continue // OWNED MOVED // debugger:finish // debugger:print *self -// check:$11 = {x = 1234.5} +// check:$13 = {x = 1234.5} // debugger:print arg1 -// check:$12 = -9 +// check:$14 = -9 // debugger:print arg2 -// check:$13 = -10.5 +// check:$15 = -10.5 // debugger:continue // MANAGED BY REF // debugger:finish // debugger:print *self -// check:$14 = {x = -1} +// check:$16 = {x = -1} // debugger:print arg1 -// check:$15 = -11 +// check:$17 = -11 // debugger:print arg2 -// check:$16 = -12.5 +// check:$18 = -12.5 // debugger:continue // MANAGED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = -1} +// debugger:print self +// check:$19 = {x = -1} // debugger:print arg1 -// check:$17 = -13 +// check:$20 = -13 // debugger:print *arg2 -// check:$18 = {-14, 14} +// check:$21 = {-14, 14} // debugger:continue // MANAGED SELF // debugger:finish // debugger:print self->val -// check:$19 = {x = -1} +// check:$22 = {x = -1} // debugger:print arg1 -// check:$20 = -15 +// check:$23 = -15 // debugger:print *arg2 -// check:$21 = {-16, 16.5} +// check:$24 = {-16, 16.5} // debugger:continue #[feature(managed_boxes)]; diff --git a/src/test/debug-info/method-on-enum.rs b/src/test/debug-info/method-on-enum.rs index 622786fcb53c2..272da1690fd19 100644 --- a/src/test/debug-info/method-on-enum.rs +++ b/src/test/debug-info/method-on-enum.rs @@ -26,72 +26,72 @@ // STACK BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {{Variant2, [...]}, {Variant2, 117901063}} +// debugger:print self +// check:$4 = {{Variant2, [...]}, {Variant2, 117901063}} // debugger:print arg1 -// check:$4 = -3 +// check:$5 = -3 // debugger:print arg2 -// check:$5 = -4 +// check:$6 = -4 // debugger:continue // OWNED BY REF // debugger:finish // debugger:print *self -// check:$6 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}} +// check:$7 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}} // debugger:print arg1 -// check:$7 = -5 +// check:$8 = -5 // debugger:print arg2 -// check:$8 = -6 +// check:$9 = -6 // debugger:continue // OWNED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}} +// debugger:print self +// check:$10 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}} // debugger:print arg1 -// check:$9 = -7 +// check:$11 = -7 // debugger:print arg2 -// check:$10 = -8 +// check:$12 = -8 // debugger:continue // OWNED MOVED // debugger:finish // debugger:print *self -// check:$11 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}} +// check:$13 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}} // debugger:print arg1 -// check:$12 = -9 +// check:$14 = -9 // debugger:print arg2 -// check:$13 = -10 +// check:$15 = -10 // debugger:continue // MANAGED BY REF // debugger:finish // debugger:print *self -// check:$14 = {{Variant2, [...]}, {Variant2, 117901063}} +// check:$16 = {{Variant2, [...]}, {Variant2, 117901063}} // debugger:print arg1 -// check:$15 = -11 +// check:$17 = -11 // debugger:print arg2 -// check:$16 = -12 +// check:$18 = -12 // debugger:continue // MANAGED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {{Variant2, [...]}, {Variant2, 117901063}} +// debugger:print self +// check:$19 = {{Variant2, [...]}, {Variant2, 117901063}} // debugger:print arg1 -// check:$17 = -13 +// check:$20 = -13 // debugger:print arg2 -// check:$18 = -14 +// check:$21 = -14 // debugger:continue // MANAGED SELF // debugger:finish // debugger:print self->val -// check:$19 = {{Variant2, [...]}, {Variant2, 117901063}} +// check:$22 = {{Variant2, [...]}, {Variant2, 117901063}} // debugger:print arg1 -// check:$20 = -15 +// check:$23 = -15 // debugger:print arg2 -// check:$21 = -16 +// check:$24 = -16 // debugger:continue #[feature(managed_boxes)]; diff --git a/src/test/debug-info/method-on-generic-struct.rs b/src/test/debug-info/method-on-generic-struct.rs index 99ed66cc03b52..ebfdea0437709 100644 --- a/src/test/debug-info/method-on-generic-struct.rs +++ b/src/test/debug-info/method-on-generic-struct.rs @@ -26,72 +26,72 @@ // STACK BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = {8888, -8888}} +// debugger:print self +// check:$4 = {x = {8888, -8888}} // debugger:print arg1 -// check:$4 = -3 +// check:$5 = -3 // debugger:print arg2 -// check:$5 = -4 +// check:$6 = -4 // debugger:continue // OWNED BY REF // debugger:finish // debugger:print *self -// check:$6 = {x = 1234.5} +// check:$7 = {x = 1234.5} // debugger:print arg1 -// check:$7 = -5 +// check:$8 = -5 // debugger:print arg2 -// check:$8 = -6 +// check:$9 = -6 // debugger:continue // OWNED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 1234.5} +// debugger:print self +// check:$10 = {x = 1234.5} // debugger:print arg1 -// check:$9 = -7 +// check:$11 = -7 // debugger:print arg2 -// check:$10 = -8 +// check:$12 = -8 // debugger:continue // OWNED MOVED // debugger:finish // debugger:print *self -// check:$11 = {x = 1234.5} +// check:$13 = {x = 1234.5} // debugger:print arg1 -// check:$12 = -9 +// check:$14 = -9 // debugger:print arg2 -// check:$13 = -10 +// check:$15 = -10 // debugger:continue // MANAGED BY REF // debugger:finish // debugger:print *self -// check:$14 = {x = -1} +// check:$16 = {x = -1} // debugger:print arg1 -// check:$15 = -11 +// check:$17 = -11 // debugger:print arg2 -// check:$16 = -12 +// check:$18 = -12 // debugger:continue // MANAGED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = -1} +// debugger:print self +// check:$19 = {x = -1} // debugger:print arg1 -// check:$17 = -13 +// check:$20 = -13 // debugger:print arg2 -// check:$18 = -14 +// check:$21 = -14 // debugger:continue // MANAGED SELF // debugger:finish // debugger:print self->val -// check:$19 = {x = -1} +// check:$22 = {x = -1} // debugger:print arg1 -// check:$20 = -15 +// check:$23 = -15 // debugger:print arg2 -// check:$21 = -16 +// check:$24 = -16 // debugger:continue #[feature(managed_boxes)]; diff --git a/src/test/debug-info/method-on-struct.rs b/src/test/debug-info/method-on-struct.rs index 9c2afadaef386..e88e5a5ca636c 100644 --- a/src/test/debug-info/method-on-struct.rs +++ b/src/test/debug-info/method-on-struct.rs @@ -26,72 +26,72 @@ // STACK BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 100} +// debugger:print self +// check:$4 = {x = 100} // debugger:print arg1 -// check:$4 = -3 +// check:$5 = -3 // debugger:print arg2 -// check:$5 = -4 +// check:$6 = -4 // debugger:continue // OWNED BY REF // debugger:finish // debugger:print *self -// check:$6 = {x = 200} +// check:$7 = {x = 200} // debugger:print arg1 -// check:$7 = -5 +// check:$8 = -5 // debugger:print arg2 -// check:$8 = -6 +// check:$9 = -6 // debugger:continue // OWNED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 200} +// debugger:print self +// check:$10 = {x = 200} // debugger:print arg1 -// check:$9 = -7 +// check:$11 = -7 // debugger:print arg2 -// check:$10 = -8 +// check:$12 = -8 // debugger:continue // OWNED MOVED // debugger:finish // debugger:print *self -// check:$11 = {x = 200} +// check:$13 = {x = 200} // debugger:print arg1 -// check:$12 = -9 +// check:$14 = -9 // debugger:print arg2 -// check:$13 = -10 +// check:$15 = -10 // debugger:continue // MANAGED BY REF // debugger:finish // debugger:print *self -// check:$14 = {x = 300} +// check:$16 = {x = 300} // debugger:print arg1 -// check:$15 = -11 +// check:$17 = -11 // debugger:print arg2 -// check:$16 = -12 +// check:$18 = -12 // debugger:continue // MANAGED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 300} +// debugger:print self +// check:$19 = {x = 300} // debugger:print arg1 -// check:$17 = -13 +// check:$20 = -13 // debugger:print arg2 -// check:$18 = -14 +// check:$21 = -14 // debugger:continue // MANAGED SELF // debugger:finish // debugger:print self->val -// check:$19 = {x = 300} +// check:$22 = {x = 300} // debugger:print arg1 -// check:$20 = -15 +// check:$23 = -15 // debugger:print arg2 -// check:$21 = -16 +// check:$24 = -16 // debugger:continue #[feature(managed_boxes)]; diff --git a/src/test/debug-info/method-on-trait.rs b/src/test/debug-info/method-on-trait.rs index 6b67dcc18a9aa..fd58cc1a7d3ba 100644 --- a/src/test/debug-info/method-on-trait.rs +++ b/src/test/debug-info/method-on-trait.rs @@ -26,72 +26,72 @@ // STACK BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 100} +// debugger:print self +// check:$4 = {x = 100} // debugger:print arg1 -// check:$4 = -3 +// check:$5 = -3 // debugger:print arg2 -// check:$5 = -4 +// check:$6 = -4 // debugger:continue // OWNED BY REF // debugger:finish // debugger:print *self -// check:$6 = {x = 200} +// check:$7 = {x = 200} // debugger:print arg1 -// check:$7 = -5 +// check:$8 = -5 // debugger:print arg2 -// check:$8 = -6 +// check:$9 = -6 // debugger:continue // OWNED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 200} +// debugger:print self +// check:$10 = {x = 200} // debugger:print arg1 -// check:$9 = -7 +// check:$11 = -7 // debugger:print arg2 -// check:$10 = -8 +// check:$12 = -8 // debugger:continue // OWNED MOVED // debugger:finish // debugger:print *self -// check:$11 = {x = 200} +// check:$13 = {x = 200} // debugger:print arg1 -// check:$12 = -9 +// check:$14 = -9 // debugger:print arg2 -// check:$13 = -10 +// check:$15 = -10 // debugger:continue // MANAGED BY REF // debugger:finish // debugger:print *self -// check:$14 = {x = 300} +// check:$16 = {x = 300} // debugger:print arg1 -// check:$15 = -11 +// check:$17 = -11 // debugger:print arg2 -// check:$16 = -12 +// check:$18 = -12 // debugger:continue // MANAGED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 300} +// debugger:print self +// check:$19 = {x = 300} // debugger:print arg1 -// check:$17 = -13 +// check:$20 = -13 // debugger:print arg2 -// check:$18 = -14 +// check:$21 = -14 // debugger:continue // MANAGED SELF // debugger:finish // debugger:print self->val -// check:$19 = {x = 300} +// check:$22 = {x = 300} // debugger:print arg1 -// check:$20 = -15 +// check:$23 = -15 // debugger:print arg2 -// check:$21 = -16 +// check:$24 = -16 // debugger:continue #[feature(managed_boxes)]; diff --git a/src/test/debug-info/method-on-tuple-struct.rs b/src/test/debug-info/method-on-tuple-struct.rs index 46177664a11eb..98dbff988e74d 100644 --- a/src/test/debug-info/method-on-tuple-struct.rs +++ b/src/test/debug-info/method-on-tuple-struct.rs @@ -26,72 +26,72 @@ // STACK BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {100, -100.5} +// debugger:print self +// check:$4 = {100, -100.5} // debugger:print arg1 -// check:$4 = -3 +// check:$5 = -3 // debugger:print arg2 -// check:$5 = -4 +// check:$6 = -4 // debugger:continue // OWNED BY REF // debugger:finish // debugger:print *self -// check:$6 = {200, -200.5} +// check:$7 = {200, -200.5} // debugger:print arg1 -// check:$7 = -5 +// check:$8 = -5 // debugger:print arg2 -// check:$8 = -6 +// check:$9 = -6 // debugger:continue // OWNED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {200, -200.5} +// debugger:print self +// check:$10 = {200, -200.5} // debugger:print arg1 -// check:$9 = -7 +// check:$11 = -7 // debugger:print arg2 -// check:$10 = -8 +// check:$12 = -8 // debugger:continue // OWNED MOVED // debugger:finish // debugger:print *self -// check:$11 = {200, -200.5} +// check:$13 = {200, -200.5} // debugger:print arg1 -// check:$12 = -9 +// check:$14 = -9 // debugger:print arg2 -// check:$13 = -10 +// check:$15 = -10 // debugger:continue // MANAGED BY REF // debugger:finish // debugger:print *self -// check:$14 = {300, -300.5} +// check:$16 = {300, -300.5} // debugger:print arg1 -// check:$15 = -11 +// check:$17 = -11 // debugger:print arg2 -// check:$16 = -12 +// check:$18 = -12 // debugger:continue // MANAGED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {300, -300.5} +// debugger:print self +// check:$19 = {300, -300.5} // debugger:print arg1 -// check:$17 = -13 +// check:$20 = -13 // debugger:print arg2 -// check:$18 = -14 +// check:$21 = -14 // debugger:continue // MANAGED SELF // debugger:finish // debugger:print self->val -// check:$19 = {300, -300.5} +// check:$22 = {300, -300.5} // debugger:print arg1 -// check:$20 = -15 +// check:$23 = -15 // debugger:print arg2 -// check:$21 = -16 +// check:$24 = -16 // debugger:continue #[feature(managed_boxes)]; diff --git a/src/test/debug-info/self-in-default-method.rs b/src/test/debug-info/self-in-default-method.rs index f9726c5329b1c..d5f735e77f4e1 100644 --- a/src/test/debug-info/self-in-default-method.rs +++ b/src/test/debug-info/self-in-default-method.rs @@ -26,72 +26,72 @@ // STACK BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 100} +// debugger:print self +// check:$4 = {x = 100} // debugger:print arg1 -// check:$4 = -3 +// check:$5 = -3 // debugger:print arg2 -// check:$5 = -4 +// check:$6 = -4 // debugger:continue // OWNED BY REF // debugger:finish // debugger:print *self -// check:$6 = {x = 200} +// check:$7 = {x = 200} // debugger:print arg1 -// check:$7 = -5 +// check:$8 = -5 // debugger:print arg2 -// check:$8 = -6 +// check:$9 = -6 // debugger:continue // OWNED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 200} +// debugger:print self +// check:$10 = {x = 200} // debugger:print arg1 -// check:$9 = -7 +// check:$11 = -7 // debugger:print arg2 -// check:$10 = -8 +// check:$12 = -8 // debugger:continue // OWNED MOVED // debugger:finish // debugger:print *self -// check:$11 = {x = 200} +// check:$13 = {x = 200} // debugger:print arg1 -// check:$12 = -9 +// check:$14 = -9 // debugger:print arg2 -// check:$13 = -10 +// check:$15 = -10 // debugger:continue // MANAGED BY REF // debugger:finish // debugger:print *self -// check:$14 = {x = 300} +// check:$16 = {x = 300} // debugger:print arg1 -// check:$15 = -11 +// check:$17 = -11 // debugger:print arg2 -// check:$16 = -12 +// check:$18 = -12 // debugger:continue // MANAGED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 300} +// debugger:print self +// check:$19 = {x = 300} // debugger:print arg1 -// check:$17 = -13 +// check:$20 = -13 // debugger:print arg2 -// check:$18 = -14 +// check:$21 = -14 // debugger:continue // MANAGED SELF // debugger:finish // debugger:print self->val -// check:$19 = {x = 300} +// check:$22 = {x = 300} // debugger:print arg1 -// check:$20 = -15 +// check:$23 = -15 // debugger:print arg2 -// check:$21 = -16 +// check:$24 = -16 // debugger:continue #[feature(managed_boxes)]; diff --git a/src/test/debug-info/self-in-generic-default-method.rs b/src/test/debug-info/self-in-generic-default-method.rs index 1b1e0ccf65248..e7a6ee776104e 100644 --- a/src/test/debug-info/self-in-generic-default-method.rs +++ b/src/test/debug-info/self-in-generic-default-method.rs @@ -26,72 +26,72 @@ // STACK BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 987} +// debugger:print self +// check:$4 = {x = 987} // debugger:print arg1 -// check:$4 = -3 +// check:$5 = -3 // debugger:print arg2 -// check:$5 = -4 +// check:$6 = -4 // debugger:continue // OWNED BY REF // debugger:finish // debugger:print *self -// check:$6 = {x = 879} +// check:$7 = {x = 879} // debugger:print arg1 -// check:$7 = -5 +// check:$8 = -5 // debugger:print arg2 -// check:$8 = -6 +// check:$9 = -6 // debugger:continue // OWNED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 879} +// debugger:print self +// check:$10 = {x = 879} // debugger:print arg1 -// check:$9 = -7 +// check:$11 = -7 // debugger:print arg2 -// check:$10 = -8 +// check:$12 = -8 // debugger:continue // OWNED MOVED // debugger:finish // debugger:print *self -// check:$11 = {x = 879} +// check:$13 = {x = 879} // debugger:print arg1 -// check:$12 = -9 +// check:$14 = -9 // debugger:print arg2 -// check:$13 = -10.5 +// check:$15 = -10.5 // debugger:continue // MANAGED BY REF // debugger:finish // debugger:print *self -// check:$14 = {x = 897} +// check:$16 = {x = 897} // debugger:print arg1 -// check:$15 = -11 +// check:$17 = -11 // debugger:print arg2 -// check:$16 = -12.5 +// check:$18 = -12.5 // debugger:continue // MANAGED BY VAL // debugger:finish -// d ebugger:print self -- ignored for now because of issue #8512 -// c heck:$X = {x = 897} +// debugger:print self +// check:$19 = {x = 897} // debugger:print arg1 -// check:$17 = -13 +// check:$20 = -13 // debugger:print *arg2 -// check:$18 = {-14, 14} +// check:$21 = {-14, 14} // debugger:continue // MANAGED SELF // debugger:finish // debugger:print self->val -// check:$19 = {x = 897} +// check:$22 = {x = 897} // debugger:print arg1 -// check:$20 = -15 +// check:$23 = -15 // debugger:print *arg2 -// check:$21 = {-16, 16.5} +// check:$24 = {-16, 16.5} // debugger:continue #[feature(managed_boxes)];