[Issue 12532] __traits(compiles, ...) fails to see valid enum symbols

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12532


monarchdo...@gmail.com changed:

   What|Removed |Added

 CC||monarchdo...@gmail.com


--- Comment #1 from monarchdo...@gmail.com 2014-04-06 23:09:32 PDT ---
Reduced:

//
enum a = is(typeof(b));
enum b = is(typeof(a));

pragma(msg, a); //true
pragma(msg, b); //false
//

I'm not sure this is actually resolvable...?

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


[Issue 12528] [CTFE] cannot append elements from one inout array to another inout array

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12528


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

   What|Removed |Added

   Keywords||pull, rejects-valid


--- Comment #2 from Kenji Hara k.hara...@gmail.com 2014-04-06 23:53:52 PDT ---
https://github.com/D-Programming-Language/dmd/pull/3430

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


[Issue 12535] New: The language introduction page is not linked from index

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12535

   Summary: The language introduction page is not linked from
index
   Product: D
   Version: D2
  Platform: All
   URL: http://dlang.org/intro.html
OS/Version: All
Status: NEW
  Keywords: spec
  Severity: normal
  Priority: P2
 Component: websites
AssignedTo: nob...@puremagic.com
ReportedBy: j...@red.email.ne.jp


--- Comment #0 from j...@red.email.ne.jp 2014-04-07 00:07:14 PDT ---
While the D1 documents have the introduction page in the first of the language
reference,
the D2 miss that page in the index. It exists almost orphan.

If that page is to be removed, the description about the script line(shebang)
and preprocessing should be salvaged.

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


[Issue 12390] [REG2.066a] has no effect in expression diagnostic regression

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12390


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

   What|Removed |Added

   Keywords||pull
Summary|Regression (2.065): has no |[REG2.066a] has no effect
   |effect in expression   |in expression diagnostic
   |diagnostic regression   |regression


--- Comment #4 from Kenji Hara k.hara...@gmail.com 2014-04-07 00:50:09 PDT ---
OK, I confirmed the issue. It's a bug in the value discarding check.

And, this is 2.066 git-head only regression.

https://github.com/D-Programming-Language/dmd/pull/3432

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


[Issue 12536] New: Implove the documentation about preprocessing the files has Ddoc file header

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12536

   Summary: Implove the documentation about preprocessing the
files has Ddoc file header
   Product: D
   Version: D2
  Platform: All
   URL: http://dlang.org/ddoc.html
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: websites
AssignedTo: nob...@puremagic.com
ReportedBy: j...@red.email.ne.jp
Depends on: 12535


--- Comment #0 from j...@red.email.ne.jp 2014-04-07 00:55:12 PDT ---
When I was scanning many d module files, some are in strange format -- of the
whole ddoc.
Though I have never known that, a Ddoc file header makes the compiler
preprocess and the generated file is not an object but an HTML document.

I wonder if it is in use and is well known...

Anyways, the descriptions about such preprocesses should be _gathered_ in one
place.
I have filed Issue 12535 for the same purpose.

It might get better Editor/IDE supports, too. ;)

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


[Issue 12528] [CTFE] cannot append elements from one inout array to another inout array

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12528



--- Comment #3 from github-bugzi...@puremagic.com 2014-04-07 02:58:40 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/b3d3eeb2223fa521b8653ed0a4ef3f749b2b11b7
fix Issue 12528 - [CTFE] cannot append elements from one inout array to another
inout array

https://github.com/D-Programming-Language/dmd/commit/b3d2ca068a976a6f69447502edb3779d97897642
Merge pull request #3430 from 9rnsr/fix12528

Issue 12528 - [CTFE] cannot append elements from one inout array to another
inout array

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


[Issue 12528] [CTFE] cannot append elements from one inout array to another inout array

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12528


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 11778] format for null does not verify fmt flags.

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11778


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 12536] Improve the documentation about preprocessing the files has Ddoc file header

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12536



--- Comment #1 from j...@red.email.ne.jp 2014-04-07 03:59:28 PDT ---
Sorry, I should have mentioned that the above _is_ descrived in the document
page about DDOC(see the URL of this issue), nearly at the bottom of the page.

I am afraid that we could scarsly remind it even if it matters.

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


[Issue 12537] New: Templatizing opEquals results in infinite recursion in the compiler

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12537

   Summary: Templatizing opEquals results in infinite recursion in
the compiler
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: jmdavisp...@gmx.com


--- Comment #0 from Jonathan M Davis jmdavisp...@gmx.com 2014-04-07 04:40:32 
PDT ---
I'm currently trying to templatize the free function opEquals in druntime for
issue# 9769, and a compiler bug is blocking me.

This piece of code (taken from dmd's test suite) triggers the problem:


struct T11875x(C)
{
C c;
}
class D11875a { D11875b c; alias c this; }
class D11875b { D11875a c; alias c this; }
static assert( is(T11875x!D11875a == T11875x!D, D)  is(D == D11875a));

void main()
{
}



If all you do is templatize opEquals in object_.d and copy it to object.di
(since currently, object.di holds only the signatures for opEquals), then the
compiler never stops (or if it does, it takes a very long time). i.e.


bool opEquals()(const Object lhs, const Object rhs)
{
// A hack for the moment.
return opEquals(cast()lhs, cast()rhs);
}

bool opEquals()(Object lhs, Object rhs)
{
// If aliased to the same object or both null = equal
if (lhs is rhs) return true;

// If either is null = non-equal
if (lhs is null || rhs is null) return false;

// If same exact type = one call to method opEquals
if (typeid(lhs) is typeid(rhs) || typeid(lhs).opEquals(typeid(rhs)))
return lhs.opEquals(rhs);

// General case = symmetric calls to method opEquals
return lhs.opEquals(rhs)  rhs.opEquals(lhs);
}


So, all that was added was the () after opEquals. Running in gdb, it looks like
the stack trace goes on pretty much forever. However, the first portion looks
like

#0  0x004284dc in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#1  0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#2  0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#3  0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#4  0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#5  0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#6  0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#7  0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#8  0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#9  0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#10 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#11 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#12 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#13 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#14 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#15 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#16 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#17 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#18 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#19 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
#20 0x004284e7 in Expression_optimize(Expression*, int,
bool)::OptimizeVisitor::visit(DotVarExp*) ()
...

But for some reason, the stack doesn't actually get blown (probably due to a
tail recursion optimization, but I don't know).

If I use what is currently my actual solution


/
 * Returns true if lhs and rhs are equal.
 */
bool opEquals(T, U)(T lhs, U rhs)
if (is(T == class)  is(U == class) 
is(typeof(lhs.opEquals(rhs)) == bool) 
is(typeof(rhs.opEquals(lhs)) == bool))
{
static if (is(T : U) || is(U : T))
{
// If aliased to the same object or both null = equal
if (lhs is rhs) return true;
}

// If either is null = non-equal
if (lhs is null || rhs is null) return false;

// If same exact 

[Issue 12414] Assertion failure in 'template.c' on inout+foreach+template tuple parameter

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12414



--- Comment #1 from Kenji Hara k.hara...@gmail.com 2014-04-07 05:03:50 PDT ---
I cannot reproduce ICE with 2.060 - 2.065 and git-head.

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


[Issue 12538] New: ZeroBUGS links are broken

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12538

   Summary: ZeroBUGS links are broken
   Product: D
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: websites
AssignedTo: nob...@puremagic.com
ReportedBy: jbin...@gmail.com


--- Comment #0 from Jeroen Bollen jbin...@gmail.com 2014-04-07 05:35:35 PDT 
---
The zerobugs links in the documentation on the website are broken. They all
link to zerobugs.org.

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


[Issue 12476] Assert error in interpret.c:3204

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12476


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

   What|Removed |Added

   Keywords||pull


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2014-04-07 05:55:10 PDT ---
https://github.com/D-Programming-Language/dmd/pull/3433

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


[Issue 12460] Crash with goto and static if

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12460


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

   What|Removed |Added

   Keywords||pull


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2014-04-07 06:19:05 PDT ---
https://github.com/D-Programming-Language/dmd/pull/3434

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


[Issue 12532] __traits(compiles, ...) fails to see valid enum symbols

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12532



--- Comment #2 from det 2k...@gmx.net 2014-04-07 07:20:53 PDT ---
(In reply to comment #1)
 Reduced:
 
 //
 enum a = is(typeof(b));
 enum b = is(typeof(a));
 
 pragma(msg, a); //true
 pragma(msg, b); //false
 //
 
 I'm not sure this is actually resolvable...?

sorry, i should have reduced it to

enum a = __traits(compiles, b);
pragma(msg, a); // true
enum b = __traits(compiles, a);
pragma(msg, b); // false

guess i was too preoccupied with issue 12533. however, i think b should be
true, __traits(compiles, ...) should not need the value or type of a. in other
words, it should be able to see that a symbol is defined without caring what it
actually is. as a matter of fact, in

enum c;
pragma(msg, typeof(c)); // _error_
pragma(msg, is(typeof(c)) );// false
enum d = __traits(compiles, c);
pragma(msg, d); // true

this is kinda happening.

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


[Issue 9016] swap() doesn't work with std.container.DList.front and back

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=9016


monarchdo...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||monarchdo...@gmail.com
 Resolution||FIXED


--- Comment #1 from monarchdo...@gmail.com 2014-04-07 07:39:28 PDT ---
This didn't work because containers were sealed, and swap operates on
references.

It is now resolved thanks to the unsealing of containers:
https://github.com/D-Programming-Language/phobos/pull/1857

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


[Issue 9015] std.container.DList.opOpAssign missing return

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=9015


monarchdo...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||monarchdo...@gmail.com
 Resolution||FIXED


--- Comment #1 from monarchdo...@gmail.com 2014-04-07 07:37:07 PDT ---
Fixed in https://github.com/D-Programming-Language/phobos/pull/1954

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


[Issue 12434] std.algorithm.sum of immutable array too

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12434


Andrej Mitrovic andrej.mitrov...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||andrej.mitrov...@gmail.com
 Resolution||FIXED


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


[Issue 8772] DList.remove doesn't work with result of std.range.take

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8772


monarchdo...@gmail.com changed:

   What|Removed |Added

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


--- Comment #3 from monarchdo...@gmail.com 2014-04-07 07:49:12 PDT ---
This is invalid, as remove is a O(1) operation, but removing a Take!Range
is linear operation. So that's an invalid argument.

The correct way to remove a Take!Range, is to use the linear removal function:
linearRemove:

//
import std.range, std.algorithm, std.container;

void main()
{
auto list = DList!int([1,2,3,4,5]);
list.linearRemove(list[].find(3).take(1));
}
//

Well, that's how it is right now anyways. If/when DList will have deterministic
ownership of its elements, things could change, since it would have to call
destructor on the removed elements...

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


[Issue 12434] std.algorithm.sum of immutable array too

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12434



--- Comment #3 from github-bugzi...@puremagic.com 2014-04-07 07:43:45 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/6123ca33713ddd0dfcded8a46bcbef5c3e8e8a50
Fix Issue 12434 - std.algorithm.sum of immutable array too

https://d.puremagic.com/issues/show_bug.cgi?id=12434

Simply uses the inference's `Unqual` type as a seed, rather than the straight
up result.

Also add some unittesting while at it.

https://github.com/D-Programming-Language/phobos/commit/a3269b7591c21f0617ab687051a684766304c479
Merge pull request #2071 from monarchdodra/12434

Fix Issue 12434 - std.algorithm.sum of immutable array too

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


[Issue 12476] Assert error in interpret.c:3204

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12476



--- Comment #2 from github-bugzi...@puremagic.com 2014-04-07 10:45:43 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/9a7f2a251ecf74852b30e3980d7192953ff44985
fix Issue 12476 - Assert error in interpret.c:3204

https://github.com/D-Programming-Language/dmd/commit/caf5992b236deaee860e9e5a1e1caa9e5f849db9
Merge pull request #3433 from 9rnsr/fix12476

Issue 12476 - Assert error in interpret.c:3204

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


[Issue 12460] Crash with goto and static if

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12460



--- Comment #2 from github-bugzi...@puremagic.com 2014-04-07 08:32:29 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/15fa38b9238c1bfb56214dc6ac76963843c011c6
fix Issue 12460 - Crash with goto and static if

By implementing issue 10199, LabelStatement::statement may be NULL. So
LabelStatement::syntaxCopy should consider the case.

https://github.com/D-Programming-Language/dmd/commit/aee4e6d51ed3d26b26eb2b7af5ee15d35b7664eb
Merge pull request #3434 from 9rnsr/fix12460

Issue 12460 - Crash with goto and static if

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


[Issue 12390] [REG2.066a] has no effect in expression diagnostic regression

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12390



--- Comment #5 from github-bugzi...@puremagic.com 2014-04-07 10:39:53 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/89ca0a14eb2b0a3e232a2eded5f43693d02510e3
fix Issue 12390 - has no effect in expression diagnostic regression

When value discarding check on statements, the side-effect check should not be
done deeply.

https://github.com/D-Programming-Language/dmd/commit/b80a6da17ac42c8976f5e552faff1b969593bdc0
Merge pull request #3432 from 9rnsr/fix12390

[REG2.066a] Issue 12390 - has no effect in expression diagnostic regression

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


[Issue 12312] Regression (2.064): Diagnostic for void static arrays has gone bad

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12312



--- Comment #3 from github-bugzi...@puremagic.com 2014-04-07 11:21:47 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/2986f41ad1a3e6955b81a74b2403dadb2e56f8d7
fix Issue 12312 - Diagnostic for void static arrays has gone bad

https://github.com/D-Programming-Language/dmd/commit/21a1c035b3a0f466c4b0fa4fc26781d1c8c697f5
Merge pull request #3428 from 9rnsr/fix12312

[REG2.064] Issue 12312 - Diagnostic for void static arrays has gone bad

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


[Issue 12539] New: Compiler crash when looking up a nonexistent tuple element in an associative array

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12539

   Summary: Compiler crash when looking up a nonexistent tuple
element in an associative array
   Product: D
   Version: unspecified
  Platform: x86_64
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: gamecu...@hotmail.com


--- Comment #0 from gamecu...@hotmail.com 2014-04-07 11:29:30 PDT ---
Happens on Windows 7 x86_64 with DMD 2.065

Does not happen on DPaste

```
template Tuple (E...)
{
alias Tuple = E;
}

void main ()
{
// Would be a string tuple.
alias Foo = Tuple!();
int[string] map = [];

auto a = map[Foo[0]];
}
```

I would expect a build failure (as happens on DPaste), but not a compiler
crash.

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


[Issue 12534] ICE on using expression tuple as type tuple

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12534



--- Comment #2 from github-bugzi...@puremagic.com 2014-04-07 12:50:29 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/478b03d5d6fd7c3f88447bccb91beeaad4523d4f
fix Issue 12534 - ICE on using expression tuple as type tuple

TypeSlice::next should be handled as same as TypeSArray and TypeDArray -
if the next part is reduced to error type, it should not be returned to
the original field.

https://github.com/D-Programming-Language/dmd/commit/8fd2207dfc52586035c9b855577fde815b69a33c
Merge pull request #3429 from 9rnsr/fix12534

Issue 12534 - ICE on using expression tuple as type tuple

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


[Issue 12540] New: Algebraic recursive alias declaration when a class contains an Algebraic member that can accept itself

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12540

   Summary: Algebraic recursive alias declaration when a class
contains an Algebraic member that can accept itself
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: tcdknut...@gmail.com


--- Comment #0 from Dylan Knutson tcdknut...@gmail.com 2014-04-07 12:03:58 
PDT ---
It's not possible to create an Algebraic alias which can take a class, where
that class has the same algebraic type as a member. 

Example code:
```
import std.variant;

alias SomeAlg = Algebraic!SomeClass;

class SomeClass {
  SomeAlg entity;
}

void main() {}
```

Yielding the error:
```
/d519/f212.d(3): Error: alias f212.SomeAlg recursive alias declaration
/opt/compilers/dmd2/include/std/variant.d(1227): Error: template instance
std.variant.maxSize!(SomeClass) error instantiating
/d519/f212.d(3):instantiated from here: Algebraic!(SomeClass)
/d519/f212.d(3): Error: template instance std.variant.Algebraic!(SomeClass)
error instantiating
```


What's perhaps stranger is that this code does work:
```
import std.variant;

//alias SomeAlg = Algebraic!SomeClass;

class SomeClass {
  Algebraic!SomeClass entity;
}

void main() {}
```

But it's doing, as far as I can tell, the exact same thing.

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


[Issue 12499] tuple/TypeTuple 1-Arg initialization fails during CTFE.

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12499



--- Comment #2 from github-bugzi...@puremagic.com 2014-04-07 13:39:25 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/c53eb66756f2911f50e103068d4b8575bfbc5542
fix Issue 12499 - tuple/TypeTuple 1-Arg initialization fails during CTFE

https://github.com/D-Programming-Language/dmd/commit/d9864ef218a423e3c6946e5b6d745fb9e6729ef6
Merge pull request #3420 from 9rnsr/fix12499

Issue 12499 - tuple/TypeTuple 1-Arg initialization fails during CTFE

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


[Issue 12499] tuple/TypeTuple 1-Arg initialization fails during CTFE.

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12499


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 12476] Assert error in interpret.c:3204

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12476


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 12534] ICE on using expression tuple as type tuple

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12534


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 12312] Regression (2.064): Diagnostic for void static arrays has gone bad

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12312


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 12460] Crash with goto and static if

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12460


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 12390] [REG2.066a] has no effect in expression diagnostic regression

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12390


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

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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


[Issue 12539] Compiler crash when looking up a nonexistent tuple element in an associative array

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12539


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

   What|Removed |Added

   Keywords||ice, pull
   Platform|x86_64  |All
Version|unspecified |D2
 OS/Version|Windows |All


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2014-04-07 18:23:21 PDT ---
https://github.com/D-Programming-Language/dmd/pull/3435

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


[Issue 12541] New: templated __traits(compiles, ...) on value symbols causes a compilation error - under certain conditions

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12541

   Summary: templated __traits(compiles, ...) on value symbols
causes a compilation error - under certain conditions
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: major
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: 2k...@gmx.net


--- Comment #0 from det 2k...@gmx.net 2014-04-07 22:46:42 PDT ---
now this is quite intricate, please bear with me.

under certain conditions (see below), compilation fails with an unsubstantiated
error message when trying to assign the outcome of a __traits(compiles, ...)
reflection via template.

in the two following code examples (compile separately) 'test' is the test
symbol that shall be validated, i.e., tested via __traits(compiles, ...). this
shall happen indirectly through the template 'valid'.

the two examples demonstrate two slightly different conditions under which
compilation fails with error message variable [...] had semantic errors when
compiling.

this buggy behavior occurs only if the test symbol in question is a value
(enum, const, inmutable). test symbols that are functions, structs, classes or
empty enums don't cause any problems.

this is quite a show-stopper for the meta / code reflection / code generation
stuff i am working on. it probably contains the root cause for many other
issues that are very difficult to reduce. it is actually an example for a
heisenbug: if you add a pragma(msg, ...) at the right place for inspection (see
example/condition 2), the bug will disappear! 

=== CODE EXAMPLE / CONDITION 1 ===

/++
bug condition 1:
if first call to __traits(compiles, ...) is via template, then
compilation fails for test symbols that are enum, const and immutable values
but:
o always works for test symbols that are funcs, structs, classes and empty
enums
++/

enum fails = valid!(test);
//  Error: variable fails had semantic errors when compiling
pragma(msg, fails: ~fails.stringof);  // true

// always works (as expected):
enum ok = __traits(compiles, test);
pragma(msg, ok: ~ok.stringof);// true

enum test = 13; // fails
//  immutable test = 42;// fails
//  const test = 42;// fails
//BUT:
//  enum test;  // works
//  void test(){}   // works
//  struct test{}   // works
//  class test{}// works

// always works (as expected):
enum ok2 = valid!(test);
pragma(msg, ok2: ~ok2.stringof);  // true

template valid(alias sym){
enum valid = __traits(compiles, sym);
} // no difference if this template is declared first

void main(){}

=== CODE EXAMPLE / CONDITION 2 ===

/++
bug condition 2:
if first call to __traits(compiles, ...) happens from module level
and is not inquiring about the test symbol, then
compilation fails for test symbols that are enum, const and immutable values.
but:
o will compile if first call is __traits(compiles, test)
o always works for test symbols that are funcs, structs, classes and empty
enums
++/

enum ok = __traits(compiles, main); // 'enum fails' below will not compile!
//  pragma(msg, __traits(compiles, test) ); // 'enum fails' below will compile
now
//  enum ok = __traits(compiles, test); // 'enum fails' below will compile now
//  pragma(msg, ok: ~ok.stringof);// true

enum fails = valid!(test);
// Error: variable fails had semantic errors when compiling
pragma(msg, fails: ~fails.stringof);  // true

enum test = 13;
//  enum test;  // no compilation errors if test symbol is not a value
// fails only for enum, const and immutable values
// (but always works for functions, structs, classes and empty enums)

// always works (as expected):
enum ok2 = valid!(test);
pragma(msg, ok2: ~ok2.stringof);  // true

template valid(alias sym){
enum valid = __traits(compiles, sym);
} // no difference if this template is declared first


void main(){}

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


[Issue 12533] instantiated template using __traits(compiles, ...) causes semantic errors when reused

2014-04-07 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=12533



--- Comment #1 from det 2k...@gmx.net 2014-04-07 22:50:35 PDT ---
(In reply to comment #0)

might be caused by issue 12541.

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