[Issue 17710] Undefined behaviour and non-working casting of overloaded methods invoking overloaded delegates

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17710

Ketmar Dark  changed:

   What|Removed |Added

 CC||ket...@ketmar.no-ip.org

--


[Issue 17711] std.array.byPair should be usable with const AA

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17711

hst...@quickfur.ath.cx changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from hst...@quickfur.ath.cx ---
https://github.com/dlang/phobos/pull/5668

--


[Issue 17711] New: std.array.byPair should be usable with const AA

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17711

  Issue ID: 17711
   Summary: std.array.byPair should be usable with const AA
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: normal
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: hst...@quickfur.ath.cx

Code:
--
import std.array;
const(int[string]) aa = [ "abc": 123 ];
auto r = aa.byPair;
--

This code ought to compile, but doesn't, because const(int[string]) does not
match the function declaration `auto byPair(K,V)(Value[Key] aa)`.

However, the implementation actually supports iterating over const AA's just
fine. We just need to declare the function differently so that it will match a
const AA type:

--
auto byPair(AA : V[K], V, K)(AA aa)
--

--


[Issue 15759] chunks should work with only an input range

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15759

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

   What|Removed |Added

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

--


[Issue 15759] chunks should work with only an input range

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15759

--- Comment #2 from github-bugzi...@puremagic.com ---
Commit pushed to master at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/6826427ba55b9ae9a0f64f4489c359a851e08087
Fix issue 15759: Extend std.range.chunks to work with non-forward input ranges.

Add input range example.

--


[Issue 9287] DMD should read from stdin when an input file is "-"

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9287

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

https://github.com/dlang/dmd/commit/7d1813309a8c89c8349672ba37a8c15f9d5a42a2
Fix issue 9287 - implement reading source from stdin.

https://github.com/dlang/dmd/commit/28daf534a405e9a07d42afb8f978d8746be7b89a
Merge pull request #6880 from quickfur/stdin

Issue 9287 - Implement -stdin.
merged-on-behalf-of: unknown

--


[Issue 17686] [REG2.075.0] Covariant return types doesn't work with override in some cases

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17686

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

https://github.com/dlang/dmd/commit/1fb7bd7fd889941c818cba6b1eb277e90e61dc9c
Fix issue 17686: [REG2.075.0] Covariant return types doesn't work with override
in some cases

https://github.com/dlang/dmd/commit/413466c796851fae4fb147bb7b3c9bd5da13355b
Merge pull request #7033 from Kozzi11/Issue17686

--


[Issue 17676] [REG 2.075] bad inlining of functions with multiple return statements

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17676

--- Comment #8 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/d48421509341bfb43ac48cd3b971948f4b55f57b
fix issue 17676: do not inline function with multiple return values as
statements

https://github.com/dlang/dmd/commit/95dba7d707437aa68a21f1e048dac6e18bde043a
Merge pull request #7029 from rainers/issue_17676

--


[Issue 16230] core.atomic.atomicLoad removes shared from aggregate types too eagerly

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16230

--- Comment #2 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/7e87d0646a3c2177e41253c7b9c3fca09c6fb08f
prepare for fix of druntime issue 16230

https://github.com/dlang/phobos/commit/b97aa79fb60bdba7a8ab08cf7341b077a5b5efba
Merge pull request #5665 from aG0aep6G/16230

prepare for fix of druntime issue 16230
merged-on-behalf-of: Petar Kirov 

--


[Issue 982] Codeview: symbols of enum type are declared integer

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=982

anonymous4  changed:

   What|Removed |Added

   Keywords||symdeb

--


[Issue 17710] New: Undefined behaviour and non-working casting of overloaded methods invoking overloaded delegates

2017-08-01 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17710

  Issue ID: 17710
   Summary: Undefined behaviour and non-working casting of
overloaded methods invoking overloaded delegates
   Product: D
   Version: D2
  Hardware: x86
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: kamil.sub...@nexwell.eu

Created attachment 1652
  --> https://issues.dlang.org/attachment.cgi?id=1652&action=edit
Sample code presenting the bug.

Sample code to present the case (also in the attachment):

//

alias BoolFirst = void delegate(bool b, string s);
alias StringFirst = void delegate(string s, bool b);

class Caller {
void call(BoolFirst bs) { bs(true, "text"); }
void call(StringFirst sb) { sb("text", true); }
}

class Writer {
import std.stdio;
void write(bool b, string s) { writeln("bool+string:", b, "/", s); }
void write(string s, bool b) { writeln("string+bool:", s, "/", b); }
}

void main() {
new Caller().call(&new Writer().write);
}

//

The call in main() is ambiguous, but nevertheless the code compiles and the
program runs the "string+bool" variant. Swapping write() methods in the source
file causes calling "bool+string" variant. Casting call(cast(StringFirst)
&w.write) compiles, although is not necessary, because not casting works the
same way, but casting call(cast(BoolFirst) &w.write) - which should help in
calling bool+string variant - does not compile, and the compiler says that
"Caller.call called with argument types (void delegate(bool b, string s))
matches both (...)", which is untrue. Moreover, swapping write() methods again
causes the exact opposite behaviour: cast(BoolFirst) compiles, but is useless,
and cast(StringFirst) does not compile at all.

--