[Issue 16436] Implement pragma(switches, "")

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16436

--- Comment #4 from Ketmar Dark  ---
so instead of windows users writing bugreports to their OS vendor, we should
add completely useless code to the compiler. i somehow doesn't feel that this
solution is actually solves anything.

--


[Issue 16436] Implement pragma(switches, "")

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16436

--- Comment #3 from b2.t...@gmx.com ---
(In reply to Ketmar Dark from comment #2)
> what is wrong with:
> 
> #!rdmd -O -inline
> import std.stdio;
> void main () { writeln("hi!"); }
> 
> ???

hint: it starts with a "Win" and ends with a "dows".

--


[Issue 16436] Implement pragma(switches, "")

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16436

Ketmar Dark  changed:

   What|Removed |Added

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

--- Comment #2 from Ketmar Dark  ---
what is wrong with:

#!rdmd -O -inline
import std.stdio;
void main () { writeln("hi!"); }

???

--


[Issue 13826] Move volatileLoad/Store to core.volatile when the volatile keyword is removed

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13826

--- Comment #1 from Mike  ---
volatile keyword was removed in March 2016: 
https://github.com/dlang/dmd/pull/5556

--


[Issue 16363] Cannot construct a random access range using frontTransversal

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16363

gruen_tob...@web.de changed:

   What|Removed |Added

   Assignee|nob...@puremagic.com|gruen_tob...@web.de

--


[Issue 16363] Cannot construct a random access range using frontTransversal

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16363

gruen_tob...@web.de changed:

   What|Removed |Added

   Assignee|gruen_tob...@web.de |nob...@puremagic.com

--


[Issue 16363] Cannot construct a random access range using frontTransversal

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16363

gruen_tob...@web.de changed:

   What|Removed |Added

 CC||gruen_tob...@web.de
   Assignee|nob...@puremagic.com|gruen_tob...@web.de

--


[Issue 10276] Nested structs get a context pointer even if they don't need one

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10276

Andrej Mitrovic  changed:

   What|Removed |Added

   Keywords||performance

--- Comment #2 from Andrej Mitrovic  ---
I'm marking this as a performance issue. It should in theory be simple to
implement this in the compiler:

1. Check if the struct definition compiles
2. Check if a `static` version of it compiles
3. If 2 fails make the struct nested

--


[Issue 1223] .tupleof tries to access protected members

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=1223

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 CC||andrej.mitrov...@gmail.com
 Resolution|--- |WONTFIX

--- Comment #3 from Andrej Mitrovic  ---
(In reply to Andrei Alexandrescu from comment #1)
> I think tupleof should actually access all nonstatic members, or that at
> least there should be a way to access all members. It's essentially a way to
> unencapsulate objects for e.g. serialization and introspection purposes.

This is an ancient issue by now (D1), but I don't think we should change
.tupleof in any case. Typically low-level code uses .tupleof, for example it
might use it to send a data structure over the network and you wouldn't want to
lose private members in the process. :)

I think this is fair to close as wontfix.

--


[Issue 10257] .tupleof loses protection information upon iteration

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10257

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Andrej Mitrovic  ---
Not really a bug per say, it's calling getProtection on a value in a tuple,
it's bound to be public. The issue of whether it should have access to private
symbols or not is part of https://issues.dlang.org/show_bug.cgi?id=1223.

--


[Issue 9930] enum members should be hidden in an enum instance

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9930

Andrej Mitrovic  changed:

   What|Removed |Added

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

--- Comment #15 from Andrej Mitrovic  ---
Yeah I'm afraid I've seen so much code in the wild which depends on this
feature, that it would make it very hard to change this without breaking
everyone's code. The benefits of the breakage would be too small in this case.
I'm closing this.

--


[Issue 9867] Map opIndex is not usable with immutable types

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9867

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from Andrej Mitrovic  ---
Haha what?? I thought I could make a range immutable and consume it?!

--


[Issue 9864] Allow instantiating eponymous inner template with a single parameter list

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9864

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Andrej Mitrovic  ---
Needs to be a DIP, but also this would be a big change in language semantics. I
don't really need it as much as I thought I did.

--


[Issue 9854] Cannot directly subtype a type tuple

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9854

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Andrej Mitrovic  ---
What was I thinking when I filed this. Multi-type subtyping doesn't work (yet),
perhaps that was my end-goal. But that would require instances in any case.

--


[Issue 9849] Introduce BaseElementType and BaseRangeType

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9849

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from Andrej Mitrovic  ---
The enhancement request lists no actual use-cases. If anything it would just be
another extra function in Phobos with very little actual use or benefits.

--


[Issue 9838] Allow calling aliased method on an object

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9838

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Andrej Mitrovic  ---
This is asking for too much magic. At best it should be a DIP, but I don't
think we should go there.

--


[Issue 9833] version(unittest) should be included in documented unittests

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9833

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #1 from Andrej Mitrovic  ---
Seems to work now.

--


[Issue 9828] Inconsistent lowering of 1-element tuple to its element

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9828

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #3 from Andrej Mitrovic  ---
Indeed I came to the same conclusions. The tuple is only lowered on request,
like for alias parameters. In the last code example `Foo[0]` should be used;

--


[Issue 9827] Duplicate file on command-line issues a bad diagnostic

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9827

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #2 from Andrej Mitrovic  ---
New diagnostic:

Error: module test from file test.d is specified twice on the command line

--


[Issue 9408] invariant should be non-const by default and settable to const

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9408

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #5 from Andrej Mitrovic  ---
I'm closing this as invalid unless someone comes up with a DIP with all the
pro's and con's. When looking at it from a safety point of view I'd rather not
have someone accidentally modify a variable in an invariant of all places.

Imagine a debug build where a variable was assigned to and made an app work
fine, and then a -release build was deployed without the assignment and causing
hard to track bugs.

--


[Issue 9381] package access can be abused and worked around

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9381

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #4 from Andrej Mitrovic  ---
Nah, we can't really do this as it might be possible that some projects use
multiple package roots and multiple import paths. It's really a non-issue.

--


[Issue 9324] Can't assign a type with a Tuple subtype to a Tuple

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9324

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #1 from Andrej Mitrovic  ---
Works with latest DMD.

--


[Issue 9380] deprecated statement string expression is too limited

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9380

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #1 from Andrej Mitrovic  ---
Fixed in git-head recently.

--


[Issue 8815] alias modification silently fails on nested fields

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=8815

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #3 from Andrej Mitrovic  ---
Can't pass instance fields as alias parameters, this is a known limitation and
part of other enhancement requests.

--


[Issue 8231] conv.to fails to convert string with trailing "u"

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=8231

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #5 from Andrej Mitrovic  ---
Yeah the suggestion was bad, if anything it might subtly allow buggy input.

--


[Issue 8228] Mixin template can't add constructor to class

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=8228

--- Comment #3 from Andrej Mitrovic  ---
Indeed this is not technically a bug at all, for example:

http://dlang.org/spec/template-mixin.html#mixin_scope

*However*, we could make it a compiler error to define constructors in mixin
templates as they can't really be used in any way.

--


[Issue 8017] Shadowing declaration not detected in opApply

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=8017

Andrej Mitrovic  changed:

   What|Removed |Added

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

--- Comment #2 from Andrej Mitrovic  ---
Hm well this is sort of by design, for example there are no errors here:

-
int[int] table;

void main()
{
int foo;

void test ( )
{
string foo = "";
}
}
-

A foreach is really an implicitly generated function just like 'test'.

--


[Issue 7483] Can't recursively call function with auto return

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7483

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #5 from Andrej Mitrovic  ---
The diagnostic is better these days and mentions the inferred return type.

--


[Issue 7244] Access Violation with optimized build when using memory-mapped file

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7244

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #3 from Andrej Mitrovic  ---
Works with latest DMD.

--


[Issue 7191] ctor/opAssign doesn't play nice with field initialization

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7191

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #4 from Andrej Mitrovic  ---
Yeah I fear this might have unexpected complications if the enhancement was
implemented, and there wouldn't be that much benefit here. I'm closing this
down.

--


[Issue 7145] Implement initializedArray in std.array

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7145

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #3 from Andrej Mitrovic  ---
Hmm.. I'm not sure about the use-case of this. It combines some stuff with an
optional allocator but that should ideally be part of the new allocator stuff
in the works by Andrei.

The provided example implementation isn't very noteworthy though. Closing this.

--


[Issue 6573] Add isOneOf to std.traits

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=6573

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #6 from Andrej Mitrovic  ---
We have anySatisfy for this now:

-
import std.meta;

void main()
{
enum isInt ( T ) = is(T == int);
static assert(anySatisfy!(isInt, float, char, int));
static assert(!anySatisfy!(isInt, float, char));
}
-

--


[Issue 16438] New: std.typelist still exists!

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16438

  Issue ID: 16438
   Summary: std.typelist still exists!
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: major
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: andrej.mitrov...@gmail.com

Deprecation: module std.typelist is deprecated - Please use std.typecons
instead. This module will be removed in March 2015.

Deprecation issue: https://issues.dlang.org/show_bug.cgi?id=7797

This module should have been removed over a year ago.

--


[Issue 6349] HTOD needs -od or -of switch

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=6349

Andrej Mitrovic  changed:

   What|Removed |Added

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

--- Comment #1 from Andrej Mitrovic  ---
dstep (https://github.com/jacob-carlborg/dstep) should be used instead, marking
as wontfix.

--


[Issue 6239] HTOD: Add support for converting opaque C types to D

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=6239

Andrej Mitrovic  changed:

   What|Removed |Added

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

--- Comment #5 from Andrej Mitrovic  ---
dstep supports this feature (https://github.com/jacob-carlborg/dstep), marking
as wontfix.

--


[Issue 6125] to!string doesn't throw on invalid UTF sequence

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=6125

Andrej Mitrovic  changed:

   What|Removed |Added

 CC||and...@erdani.com

--- Comment #1 from Andrej Mitrovic  ---
-
import std.conv;
import std.stdio;

void main()
{
auto x = to!string(cast(char)255);
writeln(x);
}
-

Outputs:
[Decode error - output not utf-8]

I think the to!() routines should be UTF safe so the call to to!string above
should throw an exception. Is this right Andrei?

--


[Issue 6101] Documentation for dead modules still distributed with DMD

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=6101

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #7 from Andrej Mitrovic  ---
I think this is largely resolved now, closing.

--


[Issue 6022] auto return type inference could be improved

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=6022

Andrej Mitrovic  changed:

   What|Removed |Added

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

--- Comment #2 from Andrej Mitrovic  ---
Hmm actually it's better if this is explicit. Otherwise the compiler may end up
changing the return type if it finds a better type which all the return
expressions implicitly convert to.

For example:

-
auto foo()
{
   if (0)
   {
   return [long.max];
   }
   else
   {
   return [int.max + 1];
   }
}
-

Currently it's an error. In theory the compiler could decide to make the return
type `long[]`, that would make the second array contain a positive long
integer. 

*But*, if you remove the first expression the compiler will infer the return
type as `int[]` and the second array will contain a negative number (due to
signed int wraparound).

I feel it would be a little dangerous to have such implicit type deduction
matching in place. I'm marking my enhancement request as wontfix.

--


[Issue 5862] case statement allows runtime values

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=5862

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |INVALID

--- Comment #7 from Andrej Mitrovic  ---
As mentioned in the pull request the proposal to disallow this was rejected.

I would like to remind about this:

-
import std.stdio;

void main()
{
int first = 1;
int second = 1;

switch (1)
{
case first:
{
writeln("first");
break;
}

case second:
{
writeln("second");
break;
}

default:
}
}
-

The lexically first matching case will match. That's ok, but it should probably
be documented if it's not (this style of code should be rare in the wild in any
case).

--


[Issue 5806] std.concurrency : Need the count of a thread's message queue

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=5806

Andrej Mitrovic  changed:

   What|Removed |Added

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

--- Comment #2 from Andrej Mitrovic  ---
This might make it a leaking API this way. `get` already returns false if the
message queue is empty which IIRC resolves my initial problem.

--


[Issue 4734] immutable return type specifier without parantheses confuses the compiler

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=4734

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #8 from Andrej Mitrovic  ---
(In reply to Andrej Mitrovic from comment #7)
> (In reply to comment #6)
> > (In reply to comment #5)
> > > In any case, at minimum, the error message needs to be improved.
> > 
> > How about we implement these error messages like this:
> > 
> > Error: function test.Test.foo () const is not callable using (this)
> > Error: function test.Test.foo () is not callable using const(this)
> > 
> > It's a little bit more informative than just a lone set of parens.
> 
> P.S. this is now:
> Error: immutable method test.Test.foo is not callable using a mutable object
> 
> I'm thinking of closing this, since the diagnostic is informative enough to
> know what went wrong.

Marking as resolved for this reason.

--


[Issue 4595] [tdpl] Accessing non-static member of a null reference compiles

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=4595

Andrej Mitrovic  changed:

   What|Removed |Added

 OS|Windows |All

--- Comment #17 from Andrej Mitrovic  ---
Well, six years after filing this I'm having second thoughts.

Is anyone aware of competing language compilers which do this type of analysis
at compile-time?

I'm aware of static analysis tools (like pvs-studio), which make me think we
should have something like that for D. A tool, rather than something built-in
to the compiler. I can imagine having this in the compiler would be complicated
to implement and have a lot of missed cases, or worse, false-positives.

--


[Issue 10553] Access specifiers on anon enums have no effect

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10553

Andrej Mitrovic  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #2 from Andrej Mitrovic  ---
Issue was fixed at some point.

--


[Issue 10552] Cannot apply access specifiers to individual anonymous enum members

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10552

Andrej Mitrovic  changed:

   What|Removed |Added

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

--- Comment #7 from Andrej Mitrovic  ---
(In reply to Walter Bright from comment #6)
> I don't see much value in this enhancement.

That makes two of us. :)

Closing.

--


[Issue 15306] Delegates with shared context can have unshared aliasing

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15306

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

   What|Removed |Added

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

--


[Issue 15306] Delegates with shared context can have unshared aliasing

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15306

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

https://github.com/dlang/dmd/commit/96136d6e4b1330650ca1fbf5afa57c2758ee18d3
fix Issue 15306 - Delegates with shared context can have unshared aliasing

https://github.com/dlang/dmd/commit/fa9cea7a43fe8ccdd483fac11c3c1a194aab1336
Merge pull request #6093 from WalterBright/fix15306

fix Issue 15306 - Delegates with shared context can have unshared ali…

--


[Issue 15371] __traits(getMember) should bypass the protection

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15371

--- Comment #7 from b2.t...@gmx.com ---
related https://issues.dlang.org/show_bug.cgi?id=10267

--


[Issue 16437] New: Enum type inference

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16437

  Issue ID: 16437
   Summary: Enum type inference
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: b2.t...@gmx.com

inference of the enum type in function calls, allowing to type only the member


Enum A{a0}

void foo(A a);
a0.foo; // OK

void bar(T)(T t);
a0.bar; // ERROR

void baz(A[] a);
[a0].baz; //OK

void cli(A a)();
cli!a0; // OK

This could be accepted as long as the parameter type is not inferred since the
parameter type will have to be used to find a match in the enum.

--


[Issue 16436] Implement pragma(switches, "")

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16436

--- Comment #1 from b2.t...@gmx.com ---
pragma(switches, "-inline -O");

--


[Issue 16436] New: Implement pragma(switches, "")

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16436

  Issue ID: 16436
   Summary: Implement pragma(switches, "")
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: b2.t...@gmx.com

Allowing to set the globals during compilations, useful for single file modules
and short scripts example:

pragma(switches, -inline -O)

This would require to isolate argument parsing from mars.d in a templatized
function so that it can be reused when the pragma is processed in attributes.d.
Also some switches should not be accepted when passed through the pragma.

--


[Issue 16338] sort variantArray bug

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16338

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

   What|Removed |Added

   Severity|enhancement |normal

--


[Issue 16413] multiSort doesn't work with @system comparison function

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16413

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

   What|Removed |Added

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

--


[Issue 16413] multiSort doesn't work with @system comparison function

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16413

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

https://github.com/dlang/phobos/commit/7c7af21d48be942402008e879976f85093a33d37
add test for Issue 16413

https://github.com/dlang/phobos/commit/45eb00fb4d0d29f40aabd98d661120061746efb5
Merge pull request #4737 from John-Colvin/patch-17

Fix Issue 16413 - multiSort doesn't work with @system comparison function

--


[Issue 7410] Wrong error message for selective import

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7410

--- Comment #2 from John Colvin  ---
just seen that this was a d1 bug, Should I bump it to d2 seeing as there's
still a problem, or open a new one?

--


[Issue 7410] Wrong error message for selective import

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7410

John Colvin  changed:

   What|Removed |Added

   Keywords||accepts-invalid
 CC||john.loughran.colvin@gmail.
   ||com
   Severity|normal  |major

--- Comment #1 from John Colvin  ---
This now compiles without an error, which definitely shouldn't happen!

--


[Issue 16435] New: Wrong error message for bad selective import

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16435

  Issue ID: 16435
   Summary: Wrong error message for bad selective import
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: major
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: john.loughran.col...@gmail.com

% tree
.
└── a
└── b
├── c.d
└── f.d

2 directories, 2 files
% cat a/b/c.d 
module a.b.c;
import a.b.f : A;
% cat a/b/f.d 
import a.b.c;

% dmd a/b/c.d
a/b/c.d(2): Deprecation: a.b.c.A is not visible from module c
a/b/c.d(2): Deprecation: a.b.c.A is not visible from module c
a/b/c.d(2): Error: alias a.b.c.A recursive alias declaration

which really makes no sense...

--


[Issue 16434] New: dmd assertion failure in declaration.d

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16434

  Issue ID: 16434
   Summary: dmd assertion failure in declaration.d
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: john.loughran.col...@gmail.com

% tree 
:(
.
└── D
└── E
├── F.d
└── I.d

2 directories, 2 files
% cat D/E/F.d
module H;
import D.E.I;

struct K
{
L* M;
}

struct N
{
K O;
P Q;
}

% cat D/E/I.d
module D.E.I;
alias P = long;

% dmd D/E/I.d D/E/F.d 
D/E/F.d(6): Error: undefined identifier 'L'
core.exception.AssertError@declaration.d(2061): Assertion failure

4   dmd 0x0001097b7854 _d_assert + 104
5   dmd 0x00010958c86a void
ddmd.declaration.__assert(int) + 38
6   dmd 0x0001095c36e1
_ZN14VarDeclaration16isOverlappedWithEPS_ + 81
7   dmd 0x000109590c0c
_ZN20AggregateDeclaration21checkOverlappedFieldsEv + 316
8   dmd 0x0001095ec1ca
_ZN17StructDeclaration12finalizeSizeEv + 330
9   dmd 0x000109590a0d
_ZN20AggregateDeclaration13determineSizeE3Loc + 221
10  dmd 0x0001095903e9
_ZN20AggregateDeclaration9semantic2EP5Scope + 89
11  dmd 0x0001095e1ab1
_ZN6Module9semantic2EP5Scope + 113
12  dmd 0x000109665d2c int
ddmd.mars.tryMain(ulong, const(char)**) + 13348
13  dmd 0x00010958d8d2 _Dmain + 38
14  dmd 0x0001097c838b
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv + 39
15  dmd 0x0001097c82bf void
rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).tryExec(scope void delegate()) + 35
16  dmd 0x0001097c8330 void
rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll()
+ 44
17  dmd 0x0001097c82bf void
rt.dmain2._d_run_main(int, char**, extern (C) int
function(char[][])*).tryExec(scope void delegate()) + 35
18  dmd 0x0001097c8225 _d_run_main + 497
19  dmd 0x00010958d96b main + 15
20  dmd 0x00010958bf13 start + 51
21  ??? 0x0002 0x0 + 2

--


[Issue 16095] a delegate can mutate immutable data and break shared / non-shared enforcements

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16095

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

https://github.com/dlang/dmd/commit/3c53a0fd9ed1b40f8dbeb75b4dfa11f6df5b3062
fix Issue 16095 - a delegate can mutate immutable data and break shared /
non-shared enforcements

https://github.com/dlang/dmd/commit/d4f45f99eb250e17dc4bb189ae5440f134731c61
Merge pull request #6091 from WalterBright/fix16095

fix Issue 16095 - a delegate can mutate immutable data and break shar…

--


[Issue 16095] a delegate can mutate immutable data and break shared / non-shared enforcements

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16095

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

   What|Removed |Added

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

--


[Issue 15306] Delegates with shared context can have unshared aliasing

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15306

Walter Bright  changed:

   What|Removed |Added

   Keywords||pull
 CC||bugzi...@digitalmars.com

--- Comment #3 from Walter Bright  ---
https://github.com/dlang/dmd/pull/6093

--


[Issue 14251] synchronized (mtx) doesn't check attributes (pure, const)

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14251

--- Comment #12 from ZombineDev  ---
(In reply to Walter Bright from comment #8)
> (In reply to ZombineDev from comment #7)
> > The OP issue doesn't mention class monitors. The bug also affects raw sync
> > primitives like core.sync.mutex and in general everything using
> > Object.IMonitor.
> 
> 'Klass' is a class, and so has a class monitor.

No, by OP, I meant Martin's comment.

E.g.
https://github.com/dlang/druntime/blob/v2.071.2-b2/src/core/sync/mutex.d#L260 .

--


[Issue 14251] synchronized (mtx) doesn't check attributes (pure, const)

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14251

--- Comment #11 from ZombineDev  ---
A const reference to an object may actually refer to a immutable object. If
such object sits in ROM than failure of the compiler to prevent such error
(modification of the monitor) may have bad consequences (depending on the
implementation). Also most of the time, an object is being synchronized to
ensure exclusive write access to it. However there's no point in that if the
object is not mutable.

As for pure, personally I don't think that pure functions should be allowed to
cause a deadlock (I consider it to be a global side effect). Furthermore, 99%
of the time synchronized is used on shared objects, which pure functions have
no business looking at.

--


[Issue 14251] synchronized (mtx) doesn't check attributes (pure, const)

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14251

--- Comment #10 from Walter Bright  ---
I have serious misgivings about this being even a bug. The monitor is outside
of the type system, and should work regardless of the type of the class object.
Also, I don't see a good reason why it shouldn't work for pure functions, too.
So I may withdraw the PR to 'fix' it.

--


[Issue 14251] synchronized (mtx) doesn't check attributes (pure, const)

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14251

Walter Bright  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #9 from Walter Bright  ---
https://github.com/dlang/dmd/pull/6092

--


[Issue 15267] The installer should download Microsoft Build Tools 2015, instead of full VS

2016-08-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15267

Dave Akers  changed:

   What|Removed |Added

 CC||d...@dazoe.net

--- Comment #2 from Dave Akers  ---
Just to clearify... Your talking about
http://landinghub.visualstudio.com/visual-cpp-build-tools (Visual C++ Build
Tools) and not https://www.microsoft.com/en-us/download/details.aspx?id=48159
(Microsoft Build Tools 2015) which is only msbuild.

--