Thread overview
enum sstring problem
Jun 12, 2011
Lloyd Dupont
Jun 13, 2011
Timon Gehr
Jun 13, 2011
Lloyd Dupont
Jun 13, 2011
Andrej Mitrovic
Jun 15, 2011
Jos van Uden
Jun 16, 2011
Johann MacDonagh
Jun 16, 2011
Johann MacDonagh
Jun 16, 2011
Lloyd Dupont
June 12, 2011
I'm using 2.053
this compile fine:
====
enum : string
{
   A = "hello",
   B = "betty",
}
====

this doesn't!
====
enum AA : string
{
   A = "hello",
   B = "betty",
}
====

Am I missing something? Named enum can't be typed? known bug?
June 13, 2011
Lloyd Dupont wrote:
> I'm using 2.053
> this compile fine:
> ====
> enum : string
> {
>     A = "hello",
>     B = "betty",
> }
> ====
>
> this doesn't!
> ====
> enum AA : string
> {
>     A = "hello",
>     B = "betty",
> }
> ====
>
> Am I missing something? Named enum can't be typed? known bug?

It works just fine for me.

How I test:

import std.stdio;
enum AA : string
{
    A = "hello",
    B = "betty",
}
void main(){
    writeln(AA.A);
    writeln(AA.B);
}

Compiles and runs.

Timon
June 13, 2011
do you have DMD 2.053 on Windows?
Your code fail for me with:
====
main.d(10): Error: Integer constant expression expected instead of "hello"
main.d(11): Error: Integer constant expression expected instead of "betty"
main.d(10): Error: Integer constant expression expected instead of "hello"
main.d(11): Error: Integer constant expression expected instead of "betty"
=====

"Timon Gehr"  wrote in message news:it3k0u$15s6$1@digitalmars.com... 

Lloyd Dupont wrote:
> I'm using 2.053
> this compile fine:
> ====
> enum : string
> {
>     A = "hello",
>     B = "betty",
> }
> ====
>
> this doesn't!
> ====
> enum AA : string
> {
>     A = "hello",
>     B = "betty",
> }
> ====
>
> Am I missing something? Named enum can't be typed? known bug?

It works just fine for me.

How I test:

import std.stdio;
enum AA : string
{
   A = "hello",
   B = "betty",
}
void main(){
   writeln(AA.A);
   writeln(AA.B);
}

Compiles and runs.

Timon
June 13, 2011
I've got 2.053 and it works for me.
June 15, 2011
Using 2.053 on win32 (XP), compiles and runs.
June 16, 2011
On 6/15/2011 5:32 PM, Jos van Uden wrote:
> Using 2.053 on win32 (XP), compiles and runs.

Ah! I found the problem. If you're using VisualD it compiles with the -g flag (add symbolic debug info), which fails:

main.d(4): Error: Integer constant expression expected instead of "hello"
main.d(5): Error: Integer constant expression expected instead of "betty"
main.d(4): Error: Integer constant expression expected instead of "hello"
main.d(5): Error: Integer constant expression expected instead of "betty"

If you compile with just "dmd main.d" in the command line it works. It's a bug. Anyone know if it's submitted yet?
June 16, 2011
On 6/15/2011 10:11 PM, Johann MacDonagh wrote:
> On 6/15/2011 5:32 PM, Jos van Uden wrote:
>> Using 2.053 on win32 (XP), compiles and runs.
>
> Ah! I found the problem. If you're using VisualD it compiles with the -g
> flag (add symbolic debug info), which fails:
>
> main.d(4): Error: Integer constant expression expected instead of "hello"
> main.d(5): Error: Integer constant expression expected instead of "betty"
> main.d(4): Error: Integer constant expression expected instead of "hello"
> main.d(5): Error: Integer constant expression expected instead of "betty"
>
> If you compile with just "dmd main.d" in the command line it works. It's
> a bug. Anyone know if it's submitted yet?

Looks like it is.

http://d.puremagic.com/issues/show_bug.cgi?id=5985

There's a patch that hasn't been pulled into dmd proper, but it looks more like a workaround.
June 16, 2011
Yes indeed, I'm using Visual D
Ho... good to know, thanks! :)

mm.. well hopefully it'll be fixed in the next release...
and I should pay a close look at the build script!



"Johann MacDonagh"  wrote in message news:itbp22$28l2$1@digitalmars.com... 

On 6/15/2011 5:32 PM, Jos van Uden wrote:
> Using 2.053 on win32 (XP), compiles and runs.

Ah! I found the problem. If you're using VisualD it compiles with the -g flag (add symbolic debug info), which fails:

main.d(4): Error: Integer constant expression expected instead of "hello"
main.d(5): Error: Integer constant expression expected instead of "betty"
main.d(4): Error: Integer constant expression expected instead of "hello"
main.d(5): Error: Integer constant expression expected instead of "betty"

If you compile with just "dmd main.d" in the command line it works. It's a bug. Anyone know if it's submitted yet?