[Issue 17341] Partial initialization of static array should not be allowed

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17341

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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #2 from b2.t...@gmx.com ---
feature that can be an issue. feel free to change "wontfix" to "invalid".

--


[Issue 17373] New: traits getOverloads + multiple interface inheritance only see one of the interfaces' overloads

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17373

  Issue ID: 17373
   Summary: traits getOverloads + multiple interface inheritance
only see one of the interfaces' overloads
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: mathias.l...@sociomantic.com

Tested with 2.074 / master as of today:

```
interface Foo { void visit (int); }
interface Bar { void visit (double); }
interface FooBar : Foo, Bar {}

pragma(msg, __traits(getOverloads, FooBar, "visit").length);
```

Outputs `1LU`, which is incorrect as both will be part of the overload set.
This breaks reflection code which tries to auto-instantiate interfaces (like
Blackhole / whitehole).

--


[Issue 17372] function 'std.algorithm.searching.skipOver!(Result, dstring).skipOver' is not nothrow

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17372

Jack Stouffer  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||j...@jackstouffer.com
 Resolution|--- |FIXED

--


[Issue 17372] function 'std.algorithm.searching.skipOver!(Result, dstring).skipOver' is not nothrow

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17372

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

https://github.com/dlang/phobos/commit/27330e76b72393ebb611176ea5600c94e447f067
issue# 17372: icmp chokes on a lambda that can throw.

This removes some inappropriate attributes from a fullCasedCmp. It's
templated, and their applicability depends on the template argument, so
they should be inferred. And the unit tests for icmp which test the
attributes (including @safe) pass without the attributes on
fullCasedCmp, so I have no idea why any of them (particularly @trusted)
were ever there.

https://github.com/dlang/phobos/commit/0b1f13fd517cf8b7bb26042e07cd920480215e74
Merge pull request #5361 from jmdavis/issue_17372

issue# 17372: icmp chokes on a lambda that can throw.
merged-on-behalf-of: Jack Stouffer 

--


[Issue 17372] function 'std.algorithm.searching.skipOver!(Result, dstring).skipOver' is not nothrow

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17372

--- Comment #1 from Jonathan M Davis  ---
https://github.com/dlang/phobos/pull/5361

--


[Issue 17372] New: function 'std.algorithm.searching.skipOver!(Result, dstring).skipOver' is not nothrow

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17372

  Issue ID: 17372
   Summary: function 'std.algorithm.searching.skipOver!(Result,
dstring).skipOver' is not nothrow
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: issues.dl...@jmdavisprog.com

This code fails to compile

import std.algorithm;
import std.range;
import std.uni;

void main()
{
auto a = [["foo bar"], ["baz"]].map!(line => line.joiner("
")).array.sort!((a, b) => icmp(a, b) < 0);
}


and gives this error:

/usr/include/dmd/std/uni.d(7082): Error: function
'std.algorithm.searching.skipOver!(Result, dstring).skipOver' is not nothrow
/usr/include/dmd/std/uni.d(7055): Error: nothrow function
'std.uni.fullCasedCmp!(Result).fullCasedCmp' may throw
/usr/include/dmd/std/uni.d(7136): Error: template instance
std.uni.fullCasedCmp!(Result) error instantiating
qd.d(7):instantiated from here: icmp!(Result, Result)
/usr/include/dmd/std/algorithm/sorting.d(1851):instantiated from here:
__lambda2!(Result, Result)
qd.d(7):instantiated from here: sort!((a, b) => icmp(a, b) < 0,
cast(SwapStrategy)0, Result[])
/usr/include/dmd/std/algorithm/sorting.d(1863): Error: static assert  "Invalid
predicate passed to sort: __lambda2"
qd.d(7):instantiated from here: sort!((a, b) => icmp(a, b) < 0,
cast(SwapStrategy)0, Result[])

--


[Issue 15724] CTFE internal error: determining classinfo

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15724

ag0ae...@gmail.com changed:

   What|Removed |Added

   Keywords||ice
 CC||ag0ae...@gmail.com

--- Comment #1 from ag0ae...@gmail.com ---
Reduced test case:


enum e = typeid(null) == typeid(long);


Error message:


/home/d/dmd2/linux/bin64/../../src/druntime/import/object.d(147): Error: CTFE
internal error: determining classinfo
test.d(1):called from here: opEquals(typeid(typeof(null)),
typeid(long))


--


[Issue 17371] New: [REG 2.074.0] di generation broken for anonymous classes

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17371

  Issue ID: 17371
   Summary: [REG 2.074.0] di generation broken for anonymous
classes
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: d...@me.com

Generating a .di file with 2.074.0 from the following code generates a broken
file:

interface Foo {}

class Bar
{
this()
{
auto foo = new class () Foo {};
}
}

The generated result is:

interface Foo 
{
}
class Bar
{
this()
{
auto foo = new class class __anonclass1 : Foo
{
}
;
}
}

The generated code for the anonymous class is clearly broken. With 2.073.1 the
following code is generated:

interface Foo
{
}
class Bar
{
this();
}

I suspect that generating the code for an anonymous class has always been
broken, as the following example shows, generated with 2.073.1:

Original code:

interface Foo
{
}

const foo = new class () Foo {};

Generated code:

interface Foo
{
}
const foo = new class class __anonclass1 : Foo
{
}
;

Not sure if this is technically a regression but it broke my code switching to
2.074.0.

--


[Issue 17370] New: [DIP1000] Escaping scope pointers possible via struct GC allocation

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17370

  Issue ID: 17370
   Summary: [DIP1000] Escaping scope pointers possible via struct
GC allocation
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: safe
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: mathias.l...@sociomantic.com

The following compiles and runs with 2.074.0 and v2.075.0-devel-5cfc8d982
(latest master):

```
void main () @safe
{
int* ptr = fwd();
assert(ptr !is null);
}

int* fwd () @safe
{
int i;
return new Struct().oops; // Leaving out `new` correctly detects escaping
}

struct Struct
{
int* oops;
}
```

--


[Issue 15724] CTFE internal error: determining classinfo

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15724

calex  changed:

   What|Removed |Added

 CC||calex+bugzilla-mail@aristow
   ||eb.net

--


[Issue 15723] GC memory leakage depending on source code size

2017-05-05 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15723

calex  changed:

   What|Removed |Added

 CC||calex+bugzilla-mail@aristow
   ||eb.net

--