Shin Fujishiro <[email protected]> wrote:
> Walter Bright <[email protected]> wrote:
> > ..\dmd -c -o- -O -release -nofloat -w -d -Df..\doc\phobos\std_file.html 
> > std.ddoc std\file.d
> > std\algorithm.d(3200): Error: cast(string)_param_1 is not an lvalue
> 
> Do these fail?
> 
> 1)  dmd -o- -c -unittest std/path.d
> 2)  dmd -o- -c -unittest std/string.d

In case path.d fails, please try the attached patch.  Does this fix it?
diff --git phobos/std/path.d phobos/std/path.d
index a8abd2b..c81866c 100644
--- phobos/std/path.d
+++ phobos/std/path.d
@@ -41,35 +41,35 @@ version(Windows)
 
     /** String used to separate directory names in a path. Under
      *  Windows this is a backslash, under Linux a slash. */
-    immutable char[1] sep = "\\";
+    enum sep = "\\";
     /** Alternate version of sep[] used in Windows (a slash). Under
      *  Linux this is empty. */
-    immutable char[1] altsep = "/";
+    enum altsep = "/";
     /** Path separator string. A semi colon under Windows, a colon
      *  under Linux. */
-    immutable char[1] pathsep = ";";
+    enum pathsep = ";";
     /** String used to separate lines, \r\n under Windows and \n
      * under Linux. */
-    immutable char[2] linesep = "\r\n"; /// String used to separate lines.
-    immutable char[1] curdir = ".";      /// String representing the current directory.
-    immutable char[2] pardir = ".."; /// String representing the parent directory.
+    enum linesep = "\r\n";  /// String used to separate lines.
+    enum curdir = ".";      /// String representing the current directory.
+    enum pardir = "..";     /// String representing the parent directory.
 }
 version(Posix)
 {
     /** String used to separate directory names in a path. Under
      *  Windows this is a backslash, under Linux a slash. */
-    immutable char[1] sep = "/";
+    enum sep = "/";
     /** Alternate version of sep[] used in Windows (a slash). Under
      *  Linux this is empty. */
-    immutable char[0] altsep;
+    enum altsep = "";
     /** Path separator string. A semi colon under Windows, a colon
      *  under Linux. */
-    immutable char[1] pathsep = ":";
+    enum pathsep = ":";
     /** String used to separate lines, \r\n under Windows and \n
      * under Linux. */
-    immutable char[1] linesep = "\n";
-    immutable char[1] curdir = ".";      /// String representing the current directory.
-    immutable char[2] pardir = ".."; /// String representing the parent directory.
+    enum linesep = "\n";
+    enum curdir = ".";      /// String representing the current directory.
+    enum pardir = "..";     /// String representing the parent directory.
 }
 
 /*****************************
@@ -395,12 +395,14 @@ unittest
 String dirname(String)(String fullname)
     if (isSomeString!(String))
 {
+    alias Unqual!(immutable String) ImmString;
     Unqual!String s = fullname;
 
     version (Posix)
     {
-        enum immutable(String) sep    = .sep,
-                               curdir = .curdir;
+        enum ImmString    sep = .sep;
+        enum ImmString curdir = .curdir;
+
         for (; !s.empty; s.popBack)
         {
             if (s.endsWith(sep))
@@ -416,10 +418,11 @@ String dirname(String)(String fullname)
     }
     else version (Windows)
     {
-        enum immutable(String) sep    = .sep,
-                               altsep = .altsep,
-                               curdir = .curdir,
-                               drvsep = ":";
+        enum ImmString    sep = .sep;
+        enum ImmString altsep = .altsep;
+        enum ImmString curdir = .curdir;
+        enum ImmString drvsep = ":";
+
         bool foundSep;
         for (; !s.empty; s.popBack)
         {
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to