www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 8709] New: toLower on alias this

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8709

           Summary: toLower on alias this
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: nobody puremagic.com
        ReportedBy: luka8088 owave.net



// it used to work in DMD2 0.57

module program;

import std.stdio;
import std.string;

struct myStruct {
  alias value this;
  string value;
}

void main () {

  myStruct s1;
  s1.value = "Test";

  writeln(s1); // outputs "Test"
  writeln(s1.toLower()); // phobos/std/string.d(871): Error: e2ir: cannot cast
result of type char[] to type myStruct

}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 23 2012
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8709


Jonathan M Davis <jmdavisProg gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jmdavisProg gmx.com
          Component|Phobos                      |DMD



PDT ---
Reduced test case:

struct S
{
    alias value this;
    string value;
}

void main ()
{
  auto s = S("hello");
  char[] arr = "world".dup;
  s = cast(S)"other";
  s = cast(S)arr;
}

The cast from string to S works, but the cast from char[] to S does not, in
spite of the fact that their only difference is constness.

However, the fact that this came up with std.string.toLower just highlights how
error-prone it is to use alias this with templated functions. It's insanely
easy to have template constraints which pass just fine due to the presense of
alias this but then fail to actually compile or which behave bizarrely due to
when conversions do and don't happen. I don't know what the solution to that is
though.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 23 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8709




Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/d028ef99edd51684f99749d9a2172f95b992c955
fix issue 8709, from documentation

https://github.com/D-Programming-Language/phobos/commit/bbdbfc7bc0aad1d744b709188e71add3aa27f94a


fix issue 8709, from documentation

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 04 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8709


monarchdodra gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |monarchdodra gmail.com




 Commits pushed to master at https://github.com/D-Programming-Language/phobos
 
 https://github.com/D-Programming-Language/phobos/commit/d028ef99edd51684f99749d9a2172f95b992c955
 fix issue 8709, from documentation
 
 https://github.com/D-Programming-Language/phobos/commit/bbdbfc7bc0aad1d744b709188e71add3aa27f94a

 
 fix issue 8709, from documentation
Typo in fix number, The above has NOTHING to do with this. Sorry. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 04 2012
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8709




Commit pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/08722ad38a6f38eeade54a55102153b9765f13c1
Revert "fix issue 8709, from documentation"

This reverts commit d028ef99edd51684f99749d9a2172f95b992c955.

This is causing the build to fail and needs to be fixed before being
merged in again.

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