[Issue 17050] Inconsistent overload resolution depending on member values of Rvalue struct objects

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17050

--- Comment #1 from Ali Cehreli  ---
Related forum thread:

  http://forum.dlang.org/post/o4447c$21lf$1...@digitalmars.com

Ali

--


[Issue 17050] New: Inconsistent overload resolution depending on member values of Rvalue struct objects

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17050

  Issue ID: 17050
   Summary: Inconsistent overload resolution depending on member
values of Rvalue struct objects
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: acehr...@yahoo.com

Because no member nor struct type is different below, all calls are expected to
be resolved to the same foo overload. However, that's not the case:

struct S {
const(int)[] c;
}

int foo(S s) {
return 1;
}

int foo(immutable(S) s) {
return 2;
}

void main() {

// This call is resolved to foo(S):
const(int)[] arr;
assert(foo(const(S)(arr)) == 1);

// These are unexpectedly resolved to foo(immutable(S)):
assert(foo(const(S)()) == 1);// FAILS
assert(foo(const(S)(null)) == 1);// FAILS
}

Ali

--


[Issue 16980] [REG2.072.0] wrong interface called

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16980

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

https://github.com/dlang/dmd/commit/bbd22804313fa37fe2848b7f3bc45f83f4ea8db8
fix Issue 16980 - wrong interface called

https://github.com/dlang/dmd/commit/6b294ff205772ef2ca0dfc3df90dc0b16c2a2772
Merge pull request #6383 from MartinNowak/fix16980

--


[Issue 8838] Slicing static arrays should be considered unsafe (@system)

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=8838

Piotr Szturmaj  changed:

   What|Removed |Added

 CC|psztur...@tlen.pl   |

--


[Issue 17008] use ldc/gdc intrinsics in std.math

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17008

Iain Buclaw  changed:

   What|Removed |Added

 CC||ibuc...@gdcproject.org

--- Comment #2 from Iain Buclaw  ---
Use core.math to access intrinsics or core.stdc.math to access builtins C
functions.

--


[Issue 17049] [scope] class references are not escape checked like pointers

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17049

Martin Nowak  changed:

   What|Removed |Added

   Keywords||safe

--


[Issue 17029] [Reg 2.072] scope variable may not be returned

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17029

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

https://github.com/dlang/dmd/commit/c8d9e33ea2f7337b40866f15f37fbec058262eed
Merge pull request #6363 from WalterBright/fix17029

--


[Issue 8838] Slicing static arrays should be considered unsafe (@system)

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=8838

Martin Nowak  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||c...@dawg.eu
 Resolution|FIXED   |---

--


[Issue 14238] DIP25: escape checks can be circumvented with delegate

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14238

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

https://github.com/dlang/dmd/commit/7c3e47a20e30672653c6330edbe22f2181a1f9c2
fix Issue 14238 - DIP25: escape checks can be circumvented with delegate

--


[Issue 14238] DIP25: escape checks can be circumvented with delegate

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14238

Martin Nowak  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||c...@dawg.eu
 Resolution|FIXED   |---

--


[Issue 15544] Escaping fields to a heap delegate must be disallowed in @safe code

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15544

Martin Nowak  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||c...@dawg.eu
 Resolution|FIXED   |---

--


[Issue 8838] Slicing static arrays should be considered unsafe (@system)

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=8838

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

https://github.com/dlang/dmd/commit/66187b5c1e1554cd6e417e3c762285d0234bb982
fix Issue 8838 - Slicing static arrays should be considered unsafe (@system)

--


[Issue 15544] Escaping fields to a heap delegate must be disallowed in @safe code

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15544

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

https://github.com/dlang/dmd/commit/e61378a715e01e58365df753985d1178d5ba4bd4
fix Issue 15544 - Escaping fields to a heap delegate must be disallowed in
@safe code

--


[Issue 16747] [Reg 2.072] Cannot have stack allocated classes in @safe code

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16747

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

https://github.com/dlang/dmd/commit/01170277958c8e1ee67ead8fb112305f0ef220c5
Merge pull request #6279 from WalterBright/fix16747

--


[Issue 17049] [scope] class references are not escape checked like pointers

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17049

Martin Nowak  changed:

   What|Removed |Added

   Hardware|x86_64  |All
 OS|Linux   |All
   Severity|enhancement |normal

--


[Issue 17049] New: [scope] class references are not escape checked like pointers

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17049

  Issue ID: 17049
   Summary: [scope] class references are not escape checked like
pointers
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: c...@dawg.eu

cat > bug.d << CODE
version (all) // broken for class refs
class P;
else
alias P = int*; // works for int pointers

struct S
{
@safe P get() return scope;
}

P escape() @safe
{
S s;
P p = s.get();
return p;
}
CODE

dmd -c -o- bug -transition=safe -de

Should fail to compile and report `scope variable p may not be returned`.

Tested with v2.073.0-scope-e46873f (dmd-scope-2016-12-27 preview build).

--


[Issue 16288] splitter() that doesn't eat sentinels

2016-12-31 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16288

--- Comment #7 from greenify  ---
> Doesn't implement desired behaviour.

Fair enough - I tried to make it similar to `splitter` in `std.regex`, but it
seems that even this didn't work out:

"a..b.c".splitter!(Yes.keepSeparators)(regex("[.]")).writeln

> ["a", ".", "", ".", "b", ".", "c"]

"a..b.c".splitter!(Yes.keepSeparators)('.').writeln;

> ["a", ".", ".", "b", ".", "c"]

>From the example you posted, you want it to yield sth. like this, right?

> ["a", ".", ".b", ".c"]

And there's another common use case - though that one is simply
splitter.filter!`a.empty`:

> ["a", "b", "c"]

However, at least the existing behavior for No.keepSeparators is the same:

"a..b.c".splitter!(No.keepSeparators)(regex("[.]")).writeln

> ["a", "", "b", "c"]

"a..b.c".splitter!(No.keepSeparators)('.').writeln;

> ["a", "", "b", "c"]

--