www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Variant[string] associative array ... fail?

reply Eljay <eljay adobe.com> writes:
Hi everyone,

This code works...
----------------------
import std.variant;
import std.stdio;
void main()
{
  Variant v;
  v = "hello";
  writeln(v);
}
----------------------

But this code does not...
----------------------
import std.variant;
import std.stdio;
void main()
{
  Variant[string] v;
  v["there"] = "hello";
  writeln(v["there"]);
}
----------------------
...resulting in this runtime failure:
core.exception.RangeError Var(6): Range violation

What did I do wrong?

Using Digital Mars D Compiler v2.027, on OS X 10.5.6.

Thanks,
--Eljay
Apr 04 2009
next sibling parent Walter Bright <newshound1 digitalmars.com> writes:
Is it this one?

http://d.puremagic.com/issues/show_bug.cgi?id=2451
Apr 04 2009
prev sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
Eljay wrote:
 Hi everyone,
 
 This code works...
 ----------------------
 import std.variant;
 import std.stdio;
 void main()
 {
   Variant v;
   v = "hello";
   writeln(v);
 }
 ----------------------
 
 But this code does not...
 ----------------------
 import std.variant;
 import std.stdio;
 void main()
 {
   Variant[string] v;
   v["there"] = "hello";
   writeln(v["there"]);
 }
 ----------------------
 ...resulting in this runtime failure:
 core.exception.RangeError Var(6): Range violation
 
 What did I do wrong?
 
 Using Digital Mars D Compiler v2.027, on OS X 10.5.6.
 
 Thanks,
 --Eljay

Hey Eljay, thanks for being around :o). It's good you raise scrutiny about the dynamic style of coding in D. The code is correct but subject to a compiler bug: http://d.puremagic.com/issues/show_bug.cgi?id=2451 I just voted that up (it's supposed to raise its informal importance), you may want to as well. Andrei
Apr 04 2009
parent Eljay <eljay adobe.com> writes:
 Hey Eljay, thanks for being around :o). It's good you raise scrutiny 
 about the dynamic style of coding in D. The code is correct but subject 
 to a compiler bug:
 
 http://d.puremagic.com/issues/show_bug.cgi?id=2451
 
 I just voted that up (it's supposed to raise its informal importance), 
 you may want to as well.

Thanks Andrei! I'll put in in my vote. :-) I'm relieved that my program is correct (as per my understanding of the documentation). And that the compiler bug will be fixed in due course -- I'm very patient. Sincerely, --Eljay
Apr 04 2009