www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Internal error: e2ir.c 4629

reply spir <denis.spir gmail.com> writes:
Hello,

I get the above error when compiling. No idea what it means.
It happens when I add the following func:

    enum XHTML_CODES =3D ["&":"&#x26", "<":"&#x3C", ">":"&#x3E", "\"":"&#x2=
2", "'":"&#x27"];

    string xhtmlEscape (in string text) {
        string newText =3D text;
            foreach (string ch, string code ; XHTML_CODES)
            newText =3D replace(newText, ch, code);
        return newText;
    }

(Note: writing codes as raw strings does not help.)

Denis
-- -- -- -- -- -- --
vit esse estrany =E2=98=A3

spir.wikidot.com
Nov 27 2010
next sibling parent reply Trass3r <un known.com> writes:
If this isn't in bugzilla, please file a bug report.
http://d.puremagic.com/issues/query.cgi
Nov 27 2010
parent Don <nospam nospam.com> writes:
Trass3r wrote:
 If this isn't in bugzilla, please file a bug report.
 http://d.puremagic.com/issues/query.cgi

It probably has the same root cause as bug 4066.
Nov 27 2010
prev sibling next sibling parent Simon <s.d.hammett gmail.com> writes:
On 27/11/2010 16:16, spir wrote:
 Hello,

 I get the above error when compiling. No idea what it means.
 It happens when I add the following func:

      enum XHTML_CODES = ["&":"&#x26", "<":"&#x3C", ">":"&#x3E", "\"":"&#x22",
"'":"&#x27"];

      string xhtmlEscape (in string text) {
          string newText = text;
              foreach (string ch, string code ; XHTML_CODES)
              newText = replace(newText, ch, code);
          return newText;
      }

 (Note: writing codes as raw strings does not help.)

 Denis
 -- -- -- -- -- -- --
 vit esse estrany ☣

 spir.wikidot.com

The compiler expects AA literals to be mutable and you've made it immutable by sticking it in an enum. -- My enormous talent is exceeded only by my outrageous laziness. http://www.ssTk.co.uk
Nov 27 2010
prev sibling parent spir <denis.spir gmail.com> writes:
On Sat, 27 Nov 2010 18:40:34 +0000
Simon <s.d.hammett gmail.com> wrote:

 On 27/11/2010 16:16, spir wrote:
 Hello,

 I get the above error when compiling. No idea what it means.
 It happens when I add the following func:

      enum XHTML_CODES =3D ["&":"&#x26", "<":"&#x3C", ">":"&#x3E", "\"":=


      string xhtmlEscape (in string text) {
          string newText =3D text;
              foreach (string ch, string code ; XHTML_CODES)
              newText =3D replace(newText, ch, code);
          return newText;
      }

 (Note: writing codes as raw strings does not help.)

 Denis
 -- -- -- -- -- -- --
 vit esse estrany =E2=98=A3

 spir.wikidot.com

The compiler expects AA literals to be mutable and you've made it=20 immutable by sticking it in an enum. =20

The bug has something to do with that, but it'd not exactly that. The enum = itself is OK. It's when adding the func that "Internal error: e2ir.c 4629" = is emiited at compile-time. But you are right anyway, as the following compiles finely: string xhtmlEscape (in string text) { auto XHTML_CODES =3D ["&":"&#x26", "<":"&#x3C", ">":"&#x3E", "\"":"= &#x22", "'":"&#x27"]; string newText =3D text; foreach (string ch, string code ; XHTML_CODES) newText =3D replace(newText, ch, code); return newText; } I had put the enum outside the func, because the compiler does not (yet) ac= cept static AAs. But obviously, that does not solve the issue... I'll file = a bug tomorrow if the issue mentionned in another reply seems different (to= night is tool late). Denis -- -- -- -- -- -- -- vit esse estrany =E2=98=A3 spir.wikidot.com
Nov 27 2010