[Issue 4648] In contracts in interfaces missbehaving
http://d.puremagic.com/issues/show_bug.cgi?id=4648 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added Status|NEW |RESOLVED CC||bugzi...@digitalmars.com Resolution||DUPLICATE --- Comment #3 from Walter Bright bugzi...@digitalmars.com 2012-01-25 12:41:12 PST --- *** This issue has been marked as a duplicate of issue 7335 *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4648] In contracts in interfaces missbehaving
http://d.puremagic.com/issues/show_bug.cgi?id=4648 Denis Karabaza truesmi...@gmail.com changed: What|Removed |Added CC||truesmi...@gmail.com --- Comment #2 from Denis Karabaza truesmi...@gmail.com 2011-06-05 09:02:54 PDT --- Same problem, when overriding contracted function (D 2.053, windows and ubutnu). So, it seems to be about all the contract inheritance. class A { void f(int a) in { writeln(a); } out { writeln(a); } body {} } class B: A { override void f(int a) { writeln(a); } } void main() { A a = new B; a.f(42); // prints garbage, 42, garbage } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4648] In contracts in interfaces missbehaving
http://d.puremagic.com/issues/show_bug.cgi?id=4648 Mike Shulman viritrilbi...@gmail.com changed: What|Removed |Added CC||viritrilbi...@gmail.com --- Comment #1 from Mike Shulman viritrilbi...@gmail.com 2011-06-04 20:37:50 PDT --- 'Out' contracts in interfaces seem to have the same problem: the arguments passed to the function get replaced by garbage. On my system (DMD v2.053 on Ubuntu) the precise value of the garbage appears to depend on what data members exist in the class which implements the interface. E.g. Andrej's code writeln outputs 0 for me, but if I add int x; to the definition of Base, it outputs instead 135115244. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---