[Issue 15819] array(x) is ok but not x.array, giving contradicting error

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15819

Timothee Cour  changed:

   What|Removed |Added

Summary|Error: cannot resolve type  |array(x) is ok but not
   |for temp.array(Range)(Range |x.array, giving
   |r) if (isIterable!Range &&  |contradicting error
   |!isNarrowString!Range &&|
   |!isInfinite!Range)  |
   |//static|
   |assert(is(typeof(temp.array |
   |)));|

--


[Issue 15819] Error: cannot resolve type for temp.array(Range)(Range r) if (isIterable!Range && !isNarrowString!Range && !isInfinite!Range) //static assert(is(typeof(temp.array)));

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15819

--- Comment #1 from Timothee Cour  ---
update:

the following passes, ie array(temp) is ok but temp.array is not; why is that?
(again, self contained single file test example here:
https://github.com/timotheecour/dtools/blob/master/dtools/util/emit.d
)

// ...
  import std.array:array;
  static assert(is(typeof(array(temp;
  static assert(!is(typeof(temp.array)));

--


[Issue 15819] New: Error: cannot resolve type for temp.array(Range)(Range r) if (isIterable!Range && !isNarrowString!Range && !isInfinite!Range) //static assert(is(typeof(temp.array)));

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15819

  Issue ID: 15819
   Summary: Error: cannot resolve type for temp.array(Range)(Range
r) if (isIterable!Range && !isNarrowString!Range &&
!isInfinite!Range)   //static
assert(is(typeof(temp.array)));
   Product: D
   Version: D2
  Hardware: x86
OS: Mac OS X
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: timothee.co...@gmail.com

not sure whether it's a dmd or phobos error (or if i missed something) but:

void fun(){
  // ...
  alias Range = typeof(temp);
  static assert(isInputRange!Range);
  static assert(isIterable!Range && !isNarrowString!Range &&
!isInfinite!Range);

  static assert(is(typeof(temp.array))); // CT error
}

error:

Error: cannot resolve type for temp.array(Range)(Range r) if (isIterable!Range
&& !isNarrowString!Range && !isInfinite!Range)
  //static assert(is(typeof(temp.array)));


single file code here:
https://github.com/timotheecour/dtools/blob/master/dtools/util/emit.d

using: DMD64 D Compiler v2.070 (same with git head)

--


[Issue 15819] Error: cannot resolve type for temp.array(Range)(Range r) if (isIterable!Range && !isNarrowString!Range && !isInfinite!Range) //static assert(is(typeof(temp.array)));

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15819

Timothee Cour  changed:

   What|Removed |Added

 CC||timothee.co...@gmail.com
   Severity|enhancement |major

--


[Issue 15573] -O -inline causes wrong code with idiv instruction

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15573

--- Comment #34 from github-bugzi...@puremagic.com ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/30ec03499244697e8c691c29e058c76d1571c4ec
Merge pull request #5559 from yebblies/issue15573

--


[Issue 15815] [REG2.071-devel] deprecation for aliased template instance not shown

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15815

--- Comment #4 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/e9a67955f0d0d63b903423dd9a6f6aaa8f7d2470
fix Issue 15815 - deprecation for aliased template instance not shown

https://github.com/D-Programming-Language/dmd/commit/d2c759f54f48e5159a962050b33481b0e26ea030
Merge pull request #5558 from 9rnsr/fix15815

--


[Issue 15455] [REG v2.065] Compiler segfault for simple nested structure

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15455

--- Comment #5 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/414e10b3e3f5ecfa58b5be24c5e490a43281510f
fix Issue 15455 - [REG v2.065] Compiler segfault for simple nested structure

https://github.com/D-Programming-Language/dmd/commit/c30a55a31e97f7eb8ba80a578ec4a6a6386b5679
Merge pull request #5551 from 9rnsr/fix15455

--


[Issue 15729] [REG(master)] broken debug info for libraries

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15729

--- Comment #6 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/1737bea648d961dbc1a03dc0eb2babe2d66c322f
fix Issue 15729 - broken debug info for libraries

https://github.com/D-Programming-Language/dmd/commit/ed13c690af3c2910e648d86e51808d60542cebc0
Merge pull request #5548 from MartinNowak/fix15729

--


[Issue 15817] [REG2.068] ICE (with no stacktrace) instead of 'cannot index null array counts' with CTFE AA

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15817

--- Comment #5 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/fd191357c47f33a1bbf061fef13de114ab4d0217
fix Issue 15817 - ICE (with no stacktrace) instead of 'cannot index null array
counts' with CTFE AA

https://github.com/D-Programming-Language/dmd/commit/db3acaa7aac600e597da66db283e646f1634afcc
Merge pull request #5561 from 9rnsr/fix15817

--


[Issue 15658] isFile isn't a template

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15658

b2.t...@gmx.com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||b2.t...@gmx.com
   Hardware|x86_64  |All
   Assignee|nob...@puremagic.com|b2.t...@gmx.com
 OS|Linux   |All

--- Comment #1 from b2.t...@gmx.com ---
It's not a UFCS issue:

"dirEntries()" doesn't return a range of string. It returns a range of "struct
DirEntry{}"which is not a template.

Latter in std.file.isFile() this member is called because in

@property bool isFile(R)(auto ref R name)
if (isConvertibleToString!R)
{
return name.isFile!(StringTypeOf!R); 
}
it's DirEntry.isFile that get called !!

--


[Issue 15817] [REG2.068] ICE (with no stacktrace) instead of 'cannot index null array counts' with CTFE AA

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15817

--- Comment #4 from github-bugzi...@puremagic.com ---
Commits pushed to stable at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/fd191357c47f33a1bbf061fef13de114ab4d0217
fix Issue 15817 - ICE (with no stacktrace) instead of 'cannot index null array
counts' with CTFE AA

https://github.com/D-Programming-Language/dmd/commit/db3acaa7aac600e597da66db283e646f1634afcc
Merge pull request #5561 from 9rnsr/fix15817

[REG2.068] Issue 15817 - ICE (with no stacktrace) instead of 'cannot index null
array counts' with CTFE AA

--


[Issue 15818] New: Multiple function declarations without definition cause ambiguity overloading error

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15818

  Issue ID: 15818
   Summary: Multiple function declarations without definition
cause ambiguity overloading error
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: rejects-valid
  Severity: minor
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: verylonglogin@gmail.com

This code should compile:
---
void f(int); // line 1
void f(int);
void f(int);
void f(int);
void f(int); // line 5

void main()
{
f(1); // line 9
}
---
main.d(9): Error: main.f called with argument types (int) matches both:
main.d(1): main.f(int)
and:
main.d(5): main.f(int)
---

If any declaration is converted to definition the code compiles.
Also note the error message only reports about the first and the last
declaration.

--


[Issue 15817] [REG2.068] ICE (with no stacktrace) instead of 'cannot index null array counts' with CTFE AA

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15817

Kenji Hara  changed:

   What|Removed |Added

   Keywords||pull
Summary|ICE (with no stacktrace)|[REG2.068] ICE (with no
   |instead of 'cannot index|stacktrace) instead of
   |null array counts' with |'cannot index null array
   |CTFE AA |counts' with CTFE AA

--- Comment #3 from Kenji Hara  ---
(In reply to Timothee Cour from comment #0)
> not sure whether the code should be valid or not, but regardless there
> shouldn't be ICE, especially wo stacktrace

It was introduced by incomplete fix of issue 9023.
The fix for that issue has done in 2.068, but the ICE case didn't tested.

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

--


[Issue 15817] ICE (with no stacktrace) instead of 'cannot index null array counts' with CTFE AA

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15817

Kenji Hara  changed:

   What|Removed |Added

   Keywords||CTFE, ice
   Hardware|x86 |All
 OS|Mac OS X|All

--- Comment #2 from Kenji Hara  ---
Dustmited test case:

S[] split(S)(S s)
{
size_t istart;
S[] result;

foreach (i, c ; s)
result ~= s[istart .. i];
return result;
}

int fun(string b)
{
auto targets = b.split;
uint[string] counts;
foreach (a; targets)
counts[a]++;
return 0;
}

void fun2()
{
enum a = `a1`;
static b = fun(a);
}

--


[Issue 15802] (SIGSEGV) CppMangleVisitor::source_name

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15802

--- Comment #2 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/62aeb7fdb94bad8f07e9aab6e4858b9f93b00a1e
Fix issue 15802

https://github.com/D-Programming-Language/dmd/commit/dfc005abdff1219a391658fa13f2b1b970518e46
Merge pull request #5537 from Kozzi11/fix15802

Fix issue 15802

--


[Issue 15802] (SIGSEGV) CppMangleVisitor::source_name

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15802

github-bugzi...@puremagic.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--


[Issue 5944] Five ideas for the stacktrace

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=5944

Timothee Cour  changed:

   What|Removed |Added

 CC||timothee.co...@gmail.com

--- Comment #3 from Timothee Cour  ---
debug info is broken with dmd:
eg last frame often skipped; line numbers often off by a few lines [plus or
minus], debug info also gets broken with partial recompilation

with ldc these problems go away

--


[Issue 15817] New: ICE (with no stacktrace) instead of 'cannot index null array counts' with CTFE AA

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15817

  Issue ID: 15817
   Summary: ICE (with no stacktrace) instead of 'cannot index null
array counts' with CTFE AA
   Product: D
   Version: D2
  Hardware: x86
OS: Mac OS X
Status: NEW
  Severity: regression
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: timothee.co...@gmail.com

dmd -c -o- $bugs_D/bug_D20160320T235820.d

$dmd_067_1_X -c -o- $bugs_D/bug_D20160320T235820.d
Error: cannot index null array counts
called from here: fun("a1.a2 b1.b2")

dmd >= 68: (including DMD64 D Compiler v2.070)
ICE segmentation fault with no stacktrace => very bad!

not sure whether the code should be valid or not, but regardless there
shouldn't be ICE, especially wo stacktrace


module bugs.bug_D20160320T235820;
import std.string;
import std.array;

int fun(string b){
  auto targets=b.split.array;
  uint[string]counts;
  foreach(a;targets){
counts[a]++;
  }
  return 0;
}

void fun2(){
  enum a=`a1.a2 b1.b2`;
  static int b=fun(a);
}


--


[Issue 15798] std.algorithm.mutation.copy takes target by value

2016-03-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15798

Ender KaShae  changed:

   What|Removed |Added

 CC||astrotha...@gmail.com

--- Comment #1 from Ender KaShae  ---
Simply changing the Target to a ref wouldn't be backward compatible, because
then it wouldn't be possible to use an rvalue as a target, which is useful for
copying to an array slice, or using a range that wraps another output range,
such as retro. 

Also, std.range.put _does_ take a reference, and can be used to copy a range.
Alternatively, copy returns the state of the output range after copying, so in
the MD5 example you could use `s.copy(d2).finish().toHexString` to get the
correct MD5 sum.

--