On Wednesday, 23 November 2016 at 18:34:28 UTC, Steven Schveighoffer wrote:


Please file here: https://issues.dlang.org/enter_bug.cgi

I think this has been there forever. Happens in 2.040 too (the earliest dmd I have on my system).

-Steve

Here it is:

https://issues.dlang.org/show_bug.cgi?id=16739

(I think I marked it as "P1" (default option), maybe it's "P2", didn't know what to choose)

It has something to do with the smart quote, e.g.:

import std.array;
import std.conv;
import std.stdio;

void main()
{
auto tokens = to!(dchar[][])(["D"d, "’"d, "Addario"d, "'"d, "."d]);
  // Or use this below:
  //~ dstring[] tokens = ["D"d, "’"d, "Addario"d, "'"d];
  while (!tokens.empty)
  {
    switch (tokens[0])
    {
      case "\u2019"d:
        writeln("Apostrophe smart " ~ tokens[0]);
        break;
      case "\u0027"d:
        writeln("Apostrophe straight " ~ tokens[0]);
        break;
      case "D"d:
        writeln("Letter 'D'");
        break;
      case "."d:
        writeln("fullstop " ~ tokens[0]);
        break;
      default:
        writeln("Other " ~ tokens[0]);
        break;
    }
    tokens = tokens[1..$];
  }
}

prints:

Letter 'D'
Other ’  // <== not expected
Other Addario
Apostrophe straight '
fullstop .

Both LDC and DMD produce the same error. I discovered this while writing a tokenizer. It is a bit upsetting, because it is really an essential thing. The workaround for now would be

if (token[0] == "\u2019"d)
 goto Wherever;

which works, by the way.
  • Switch ignores case (?) Chris via Digitalmars-d-learn
    • Re: Switch ignores case ... Steven Schveighoffer via Digitalmars-d-learn
      • Re: Switch ignores c... Chris via Digitalmars-d-learn
        • Re: Switch ignor... Steven Schveighoffer via Digitalmars-d-learn
          • Re: Switch i... Chris via Digitalmars-d-learn
            • Re: Swi... Jonathan M Davis via Digitalmars-d-learn
            • Re: Swi... ketmar via Digitalmars-d-learn
              • Re:... Chris via Digitalmars-d-learn
                • ... ketmar via Digitalmars-d-learn
                • ... ketmar via Digitalmars-d-learn
              • Re:... Steven Schveighoffer via Digitalmars-d-learn
                • ... Steven Schveighoffer via Digitalmars-d-learn
                • ... ketmar via Digitalmars-d-learn
                • ... Steven Schveighoffer via Digitalmars-d-learn
                • ... ketmar via Digitalmars-d-learn

Reply via email to