Internal error: e2ir.c 4629

spir denis.spir at gmail.com
Sat Nov 27 13:06:00 PST 2010


On Sat, 27 Nov 2010 18:40:34 +0000
Simon <s.d.hammett at 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 = ["&":"&#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.
> 

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 = ["&":"&#x26", "<":"&#x3C", ">":"&#x3E", "\"":"&#x22", "'":"&#x27"];
        string newText = text;
        foreach (string ch, string code ; XHTML_CODES)
            newText = replace(newText, ch, code);
        return newText;
    }

I had put the enum outside the func, because the compiler does not (yet) accept 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 (tonight is tool late).


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

spir.wikidot.com



More information about the Digitalmars-d-learn mailing list