[Issue 7187] Regression(head 12d62ca5): [CTFE] ICE on slicing

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7187


Denis verylonglogin@gmail.com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


--- Comment #2 from Denis verylonglogin@gmail.com 2012-01-01 10:59:25 MSK 
---
If an argument is added to `f` with head commit (227769c4):
Assertion failure: '((ArrayLiteralExp *)se-e1)-ownedByCtfe' on line 6307 in
file 'interpret.c'
---
int[] f(int) { return [0]; }

int g(int[] r)
{
auto t = r[0..0];
return 0;
}

static assert(g(f(0)) == 0);
---

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3448] __traits(compiles) returns true for a non-compilable template instantiation

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3448


Denis verylonglogin@gmail.com changed:

   What|Removed |Added

 CC||verylonglogin@gmail.com


--- Comment #2 from Denis verylonglogin@gmail.com 2012-01-01 13:20:05 MSK 
---
Just a bit smaller testcase:
---
void t()() { error; }

static assert(!__traits(compiles, t!()())); // assertion fails
static if(__traits(compiles, t!()())) { }   // Error: undefined identifier
---

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3448] __traits(compiles) not in a function returns true for a non-compilable template instantiation

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3448


Denis verylonglogin@gmail.com changed:

   What|Removed |Added

Summary|__traits(compiles) returns  |__traits(compiles) not in a
   |true for a non-compilable   |function returns true for a
   |template instantiation  |non-compilable template
   ||instantiation


--- Comment #3 from Denis verylonglogin@gmail.com 2012-01-01 13:35:40 MSK 
---
This bug is only for `static assert/if` not in a function:
---
void t()() { error; }

void f() {
static assert(!__traits(compiles, t!()())); // passes
static if(__traits(compiles, t!()())) { }   // no errors
}
---

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3616] __traits(compiles) returns true for uncompilable code due to static assert

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3616


Denis verylonglogin@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||verylonglogin@gmail.com
 Resolution||INVALID


--- Comment #1 from Denis verylonglogin@gmail.com 2012-01-01 13:37:37 MSK 
---
Assertion in `foo` should fail because `foo` is a regular function and compiles
independently of assertion in `main`. This code compiles:
---
void foo()() { static assert(false); }
void main()  { static assert(!__traits(compiles, foo!()())); }
---

Note, that due to bug 3448 __traits(compiles) works correctly only if it is in
a function.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7193] New: Regression(2.058head): ICE: delete lambda expression crashes dmd

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7193

   Summary: Regression(2.058head): ICE: delete lambda expression
crashes dmd
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: ice-on-invalid-code
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: k.hara...@gmail.com


--- Comment #0 from Kenji Hara k.hara...@gmail.com 2012-01-01 02:44:35 PST ---
Following code crashes dmd.

void main()
{
delete a = a;
}

Output:
test.d(5): Error: __lambda2 is not an lvalue
((crash))

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 965] `is(uncompilable template)` is true and doesn't gap errors if not in a function

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=965


Denis verylonglogin@gmail.com changed:

   What|Removed |Added

 CC||verylonglogin@gmail.com
   Platform|x86 |All
Version|1.005   |D1  D2
Summary|incorrect result for|`is(uncompilable
   |is(BadTemplate!())|template)` is true and
   ||doesn't gap errors if not
   ||in a function
 OS/Version|Linux   |All


--- Comment #3 from Denis verylonglogin@gmail.com 2012-01-01 13:59:08 MSK 
---
This code compiles:
---
struct S() { void f() { error; } }

void f() {
static assert(!is(S!())); // passes
static if(is(S!())) { }   // no errors
}
---

This bug is only for `is()` not in a function:
---
struct S() { void f() { error; } }

static assert(!is(S!())); // assertion fails
static if(is(S!())) { }   // Error: undefined identifier
---

(In reply to comment #1)
 This is happening because compiling this()'s body is not necessary to 
 determine
 the type. Not sure if this is a bug or not.
This is a bug because an assertion passes in a function and because of
undefined identifier error with `static if`.

Someone familiar with dmd internals, mark bug 3448 as a duplicate or show the
difference between `is(...)` and `__traits(compiles, ...)` in context of this
issue.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7193] Regression(2.058head): ICE: delete lambda expression crashes dmd

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7193


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||patch


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2012-01-01 03:00:35 PST ---
https://github.com/D-Programming-Language/dmd/pull/593

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7194] New: [CTFE] Incorrect behaviour with pointers as local struct variable fields

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7194

   Summary: [CTFE] Incorrect behaviour with pointers as local
struct variable fields
   Product: D
   Version: D1  D2
  Platform: Other
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: verylonglogin@gmail.com


--- Comment #0 from Denis verylonglogin@gmail.com 2012-01-01 14:15:04 MSK 
---
---
struct S { int* p, p2; }

int f() {
assert(S().p == null);   // passes
assert(!S().p);  // passes
assert(S().p == S().p2); // passes

auto s = S();
assert(!s.p); // passes, note: `s.p` also passes
assert(s.p == null); // fails
assert(s.p == s.p2); // fails
return 0;
}

int g() {
auto s = S();
assert(s.p);  // passes but should fail
return 0;
}

void t()() { enum e = g(); } // const for D1

static assert(f() == 0);
// static assert is in a function because of @@@BUG3448@@@ aka @@@BUG965@@@
void f3448() { static assert(!__traits(compiles, t!()())); } // is(typeof())
for D1
---

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5103] Container Documentation missing syntax

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5103


Nick Treleaven ntrel-pub...@yahoo.co.uk changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #6 from Nick Treleaven ntrel-pub...@yahoo.co.uk 2012-01-01 
05:28:39 PST ---
This bug got fixed when the main site changed to d-p-l.org.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7135] [tdpl] Multiple delegate-related issues (literal syntax, @system deduction)

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7135



--- Comment #8 from Kenji Hara k.hara...@gmail.com 2012-01-01 05:56:47 PST ---
(In reply to comment #7)
 One more thing - the example in the book reads:
 
   obj.addMethod(sayHello,
   Variant(Dynamic, Variant[]...) {
 writeln(Hello, world!);
 return Variant();
  });
 
 That doesn't work. The compilable version reads:
 
 obj.addMethod(sayHello,
   delegate Variant(Dynamic, Variant[]...) {
 writeln(Hello, world!);
 return Variant();
  });
 
 Can we arrange things such that the delegate or function keywords aren't
 require in the literal definition?

From past, omission of delegate keyword +  specification of return type has
been wrong syntax. So Variant(Dynamic, Varinat[]...) { ... } couldn't compile.

And recent commit

https://github.com/D-Programming-Language/dmd/commit/c50eb5f5726a65efa1224ff0f0fd60acbb6e3027

has been disallowed optional parameter names, because of parameter type
inference.

From these matters, current TDPL code never become valid.



Today, following literal notations has been allowed with current dmd.

delegate Variant(Dynamic self, Variant[] args...) {...}
delegate (Dynamic self, Variant[] args...) {...}
(Dynamic self, Variant[] args...) {...}



Note: Unfortunately, current dmd does not support parameter type inference +
type-safe variadisc like follows.

//delegate (self, args...) {...}
//(self, args...) {...}

Because args could have three kind of infer targets.

T[N] args...// T is the element type of args
T[] args... // T is the element type of args
T args...   // T is class type, and args is translated to new T(args)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7190] Tuple length incorrect

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7190



--- Comment #1 from Kenji Hara k.hara...@gmail.com 2012-01-01 06:37:02 PST ---
This is a forward reference bug.

Workaround in core/Model.d:

 class SqlitePersister(T) {
+static assert(T.sizeof);  // force running semantic of T
+  // to resolve sizeof property
 static assert(T.tupleof.length  0, T.stringof ~ `(` ~ (T.tupleof.length
 + '0') ~ `): ` ~
T.tupleof.stringof);
 }

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7190] Tuple length incorrect

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7190


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||patch
   Platform|Other   |All


--- Comment #2 from Kenji Hara k.hara...@gmail.com 2012-01-01 07:23:02 PST ---
https://github.com/D-Programming-Language/dmd/pull/595

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 2411] Reference Tuple Foreach

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2411


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||patch


--- Comment #4 from Kenji Hara k.hara...@gmail.com 2012-01-01 08:28:16 PST ---
https://github.com/D-Programming-Language/dmd/pull/596

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 2411] Reference Tuple Foreach

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2411



--- Comment #5 from Kenji Hara k.hara...@gmail.com 2012-01-01 08:31:04 PST ---
My patch requires explicit 'ref'.

void main() {
S s;
//  foreach(element; s.tupleof)  // doesn't work
foreach(ref element; s.tupleof)  // OK
element = 2;
assert(s.foo == 2);
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7169] [CTFE] Assertion failure with inner struct

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7169


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
 CC||clugd...@yahoo.com.au


--- Comment #1 from Don clugd...@yahoo.com.au 2012-01-01 11:43:28 PST ---
According to the spec, I don't think this is supposed to work.
expression.html says:

Nested structs cannot be used as fields or as the element type of an array:

void foo() {
  int i = 7;
  struct SS {
int x,y;
int bar() { return x + i + 1; }
  }
  struct DD {
SS s;  // error, cannot be field
  }
}

So creating such a struct by passing the nested struct as a template parameter
shouldn't work either. But, the compiler accepts the examples that the spec
says are errors. So I'm not sure if the bug is in the spec or the compiler.


The ICE is a variation of bug 6419, but where the nested struct is part of a
struct literal. Here's a test case with the same ICE, but this time where it's
part of an array.

void func2(T)(T t){
T[2] s;
s[0] = t;
}

static assert({
struct InnerStruct{
void func(){}
}
func2(InnerStruct());
return true;
}());

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5467] library-based typedef

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5467


Stewart Gordon s...@iname.com changed:

   What|Removed |Added

 CC||s...@iname.com


--- Comment #3 from Stewart Gordon s...@iname.com 2012-01-01 13:50:10 PST ---
(In reply to comment #0)
 ParallelTypdef!(double, allow_arithmetic, allow_mixed:*,/,%)
 Miles;

This leaves much to be desired: we want to allow Miles * double but not Miles *
Miles, and Miles + Miles but not Miles + double.  Moreover, Miles / Miles wants
to return double.

Maybe we need a more specialised version of ParallelTypedef that does primitive
units checking.  opMul and opDiv would themselves be templates therein.  Maybe
I'll have a go at implementing something when I have a bit more time

 2. Opaque handle types that can be used with overloading. The base type of
 the typedef is just the storage strategy:

So it's basically a struct wrapper.

 3. Proper subtype. Create a true subtype of a type that allows explicit
 initialization from the type and implicit conversion to the type.

This seems the closest to how typedefs behave at the moment.

 4. Proper supertype. The base type implicitly converts to the introduced type,
 but not vice versa.

Makes sense, but I'm not sure what practical it would have

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 314] [module] Static, renamed, and selective imports are always public

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=314


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #35 from Walter Bright bugzi...@digitalmars.com 2012-01-01 
14:26:53 PST ---
https://github.com/D-Programming-Language/dmd/commit/ff9fa25f3f7f3091787f7459e1950add6cff50b2

https://github.com/D-Programming-Language/dmd/commit/93a643aba6f62db1b7658c2bfb51f9d0b576c337

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7195] New: remove in std.algorithm documentation quick links goes to wrong remove

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7195

   Summary: remove in std.algorithm documentation quick links goes
to wrong remove
   Product: D
   Version: unspecified
  Platform: Other
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: websites
AssignedTo: nob...@puremagic.com
ReportedBy: e...@gnuk.net


--- Comment #0 from Brad Anderson e...@gnuk.net 2012-01-01 15:19:56 PST ---
It gets linked to remove member of the EditOps enum rather than one of the
remove functions.

I don't know DDoc enough (or at all) to resolve this but I did take a look.
It's just using $(MYREF remove) in the quick links which I guess just uses
the first remove it sees (EditOps appears earlier in the file than remove()).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7195] remove in std.algorithm documentation quick links goes to wrong remove

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7195


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 CC||jmdavisp...@gmx.com


--- Comment #1 from Jonathan M Davis jmdavisp...@gmx.com 2012-01-01 15:33:57 
PST ---
It's not really fixable. The only thing that could be done would be to reorder
the declarations. At present, ddoc produces anchors which have no understanding
of hierarchy or overloading. So, all symbols with the same name have the same
anchor, and so it's always the first one which gets linked to. In order to fix
this, ddoc needs to be improved. There has been talk of doing it, but no one
has actually done it yet.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7195] remove in std.algorithm documentation quick links goes to wrong remove

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7195


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


--- Comment #2 from Jonathan M Davis jmdavisp...@gmx.com 2012-01-01 15:36:08 
PST ---
*** This issue has been marked as a duplicate of issue 6017 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6017] std.algorithm.remove has a wrong link

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6017


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 CC||e...@gnuk.net


--- Comment #11 from Jonathan M Davis jmdavisp...@gmx.com 2012-01-01 15:36:08 
PST ---
*** Issue 7195 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 314] [module] Static, renamed, and selective imports are always public

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=314



--- Comment #36 from Leandro Lucarella llu...@gmail.com 2012-01-01 16:04:19 
PST ---
And the most voted bug from all times (41 votes, the next most voted have 28
votes) finally get fixed.

Thanks for the persistence, ckamm!!! :)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6170] Undefined reference for methods without body implemented in derived class

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6170


Leandro Lucarella llu...@gmail.com changed:

   What|Removed |Added

   Attachment #1001|application/octet-stream|text/plain
  mime type||


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6058] Contract inheritance causes compiler error

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6058


Leandro Lucarella llu...@gmail.com changed:

   What|Removed |Added

Attachment #990|application/octet-stream|text/plain
  mime type||


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5467] library-based typedef

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5467


Robert Clipsham rob...@octarineparrot.com changed:

   What|Removed |Added

 CC||rob...@octarineparrot.com


--- Comment #4 from Robert Clipsham rob...@octarineparrot.com 2012-01-02 
00:15:40 GMT ---
(In reply to comment #0)
 1. Something that's just like another type yet parallel with it. This is 
 good
 for abstractions that encode different units of measurement that aren't
 supposed to be mixed.
 
 ParallelTypedef!double Miles;
 
 Such a type should accept explicit initialization from a regular double:
 
 auto dist = Miles(3.2);
 
 However it shouldn't accept initialization from another parallel typedef:
 
 ParallelTypedef!double Kms;
 auto dist1 = Kms(4);
 auto dist2 = Miles(dist1); // no

bikeshed
This needs a better name, parallel is transitive, so Miles(dist1) should work
(if there are 3 things, A, B and C, A is parallel to B and B is parallel to C,
then A is parallel to C).
/bikeshed

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7190] Tuple length incorrect

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7190


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||FIXED


--- Comment #3 from Walter Bright bugzi...@digitalmars.com 2012-01-01 
17:14:27 PST ---
https://github.com/D-Programming-Language/dmd/commit/39124548bdab79769afe5699c50fe6e79421bcda

https://github.com/D-Programming-Language/dmd/commit/3d4b0b6d6f82bd03ce57e581cbe16e8fb4af0d7a

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7196] New: Unfair function address overload resolution

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7196

   Summary: Unfair function address overload resolution
   Product: D
   Version: unspecified
  Platform: Other
OS/Version: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: timon.g...@gmx.ch


--- Comment #0 from timon.g...@gmx.ch 2012-01-01 17:25:50 PST ---
Tested with DMD 2.057

auto foo(int x){return x;}
auto foo(double x){return x;}

void main() {
auto x = (foo)(1);   // ok
auto y = (foo)(1.0); // fail
}

Error: cannot implicitly convert expression (1) of type double to int

The code should either compile, or both lines should fail.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7197] New: enum string doesn't work with CTFE

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7197

   Summary: enum string doesn't work with CTFE
   Product: D
   Version: D2
  Platform: Other
OS/Version: Mac OS X
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: and...@metalanguage.com


--- Comment #0 from Andrei Alexandrescu and...@metalanguage.com 2012-01-01 
17:44:07 PST ---
import std.stdio;

string toConcatenatedForm(string m, string[] args...)
{
string result = q{;
for (;;)
{
if (!m.length)
{
return result ~ '}';
}
if (m[0] != '$')
{
result ~= m[0];
m = m[1 .. $];
continue;
}
if (m[1] = '1'  m[1] = '9')
{
result ~= } ~ ;
result ~= expand!(q{ ~ args[m[1] - '1'] ~ }) ~ q{;
m = m[2 .. $];
continue;
}
}
}

template expand(string m, args...)
{
enum string expand = mixin(toConcatenatedForm(m, args));
}

unittest
{
enum string s = expand!($1, abc);
writeln(s);
writeln(expand!($1, s));
}

void main(){}

The code above causes an ICE:

Assertion failed: (v-ctfeAdrOnStack = 0  v-ctfeAdrOnStack 
stackPointer()), function setValue, file interpret.c, line 100.

Replacing the first line in the unittest with

static immutable string s = expand!($1, abc);

makes the code work.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7197] enum string doesn't work with CTFE

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7197


bearophile_h...@eml.cc changed:

   What|Removed |Added

 CC||bearophile_h...@eml.cc


--- Comment #1 from bearophile_h...@eml.cc 2012-01-01 18:15:19 PST ---
Reduced a bit:


int foo(int[] x...) {
return 0;
}
template bar(y...) {
enum int bar = foo(y);
}
enum int z = 1;
enum int w = bar!(z);
void main() {}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5628] std.math unittest disabled

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5628



--- Comment #2 from Brad Roberts bra...@puremagic.com 2012-01-01 21:24:28 PST 
---
The bug in comment 1 is fixed.  There are 3 asserts left that fail w/in
std.math:

   assert(pow(xd, neg2) == 1 / (x * x));
   assert(pow(xf, neg8) == 1 / ((x * x) * (x * x) * (x * x) * (x * x)));

   assert(feqrel(real.min_normal/8,real.min_normal/17)==3);

They're currently versioned out for x86_64

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 4523] [tdpl] .remove method for Associative Arrays returns void in all cases

2012-01-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4523


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||patch


--- Comment #4 from Kenji Hara k.hara...@gmail.com 2012-01-01 22:57:46 PST ---
https://github.com/D-Programming-Language/dmd/pull/597
https://github.com/D-Programming-Language/druntime/pull/111

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---