Fix type-parameterized object methods.
See (XFAILed) run-pass/generic-obj.rs for sample testcase. A method that takes an argument whose type is a type-parameter of its enclosing object, e.g.
obj fooer[T]() { fn foo(T t) {} }
causes rustboot to get-element-pointer on something dynamically-sized during translation. Methods returning T to work fine, on the other hand.
Issue #92 was fixed with 25a38ee4f7b12e17b86919dd35164dfe6f81381d, which means that the above test now compiles. But now it segfaults at runtime instead. This appears to happen when the
fooer.foo()'s arguments are dropped (can be made to happen earlier if a copy on a T occurs inside offooer.foo()). This might be a bug in calling drop/copy glue, drop/copy glue itself, in the size calculations that take place right before either one of those), or in none of the above. Needs further investigation.Roy Frostig at 2010-07-16 00:49:46
Adjust testcase to cover issue #91, which was actually fixed back in commit f02f9cbf29c2fdc28baeaa5a25671d9be29d6eab. Closed by 1a61fb8eb705ce0ff1bca964f89d68d93c6a07b0.
Roy Frostig at 2010-07-26 22:53:18