[Issue 8749] Wrong mangling of in parameters

2013-11-24 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8749


yebblies  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||yebbl...@gmail.com
 Resolution||DUPLICATE


--- Comment #3 from yebblies  2013-11-25 01:02:12 EST ---
*** This issue has been marked as a duplicate of issue 8695 ***

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8749] Wrong mangling of in parameters

2012-10-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8749


Jonathan M Davis  changed:

   What|Removed |Added

 CC||jmdavisp...@gmx.com


--- Comment #2 from Jonathan M Davis  2012-10-04 11:23:32 
PDT ---
scope is _supposed_ to affect all reference types. The fact that it doesn't is
a bug in dmd.

Regardless, I would have expected that in would literally be replaced with
const scope during the compilation process rather than using it directly in any
way. And given that in is supposed to be an alias for const scope, the fact
that in is being handled directly rather than being converted to const scope
before being processed probably should be changed.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8749] Wrong mangling of in parameters

2012-10-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8749



--- Comment #1 from Kenji Hara  2012-10-04 07:36:17 PDT ---
This is difficult issue. Because, with current dmd, scope parameter does
affects only for delegate types. For other types, it has no meaning.

Furthermore, the equality 'in' == 'const scope' is almost a lie.
In semantic phase, 'in' storage class is directly translated to 'const' storage
class, then affects to the parameter type. There is no appearance of 'scope'.

  void foo(const scope void delegate() dg){}
  void bar( in void delegate() dg){}
  pragma(msg, typeof(foo));  // void(scope const(void delegate()) dg)
  pragma(msg, typeof(bar));  // void(const(void delegate()) dg)

Therefore, it seems to me that the mangling difference is just for backward
compatibility. It is almost redundant, but does not existing code...

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---