[Issue 5839] Spellchecker matches private symbols outside of the module, leading to extra, broken error messages

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5839


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 CC||thelastmamm...@gmail.com


--- Comment #9 from yebblies yebbl...@gmail.com 2013-08-04 22:07:35 EST ---
*** Issue 10140 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10140] confusing error message: X is private; undefined identifier Y, did you mean X

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10140


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||yebbl...@gmail.com
 Resolution||DUPLICATE


--- Comment #2 from yebblies yebbl...@gmail.com 2013-08-04 22:07:34 EST ---
And also issue 9644

*** This issue has been marked as a duplicate of issue 5839 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 9918] Strange error: void initializers for pointers not allowed in safe functions

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9918


Lars T. Kyllingstad bugzi...@kyllingen.net changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@kyllingen.net
 Resolution||DUPLICATE


--- Comment #1 from Lars T. Kyllingstad bugzi...@kyllingen.net 2013-08-04 
05:45:07 PDT ---
*** This issue has been marked as a duplicate of issue 6405 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6626] std.complex.expi()

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6626


Lars T. Kyllingstad bugzi...@kyllingen.net changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@kyllingen.net
 Resolution||FIXED


--- Comment #1 from Lars T. Kyllingstad bugzi...@kyllingen.net 2013-08-04 
05:49:13 PDT ---
std.complex.expi() was added in May 2012.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6405] @safe doesn't work with multidimensional typesafe variadic parameters

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6405


Lars T. Kyllingstad bugzi...@kyllingen.net changed:

   What|Removed |Added

 CC||andrej.mitrov...@gmail.com


--- Comment #1 from Lars T. Kyllingstad bugzi...@kyllingen.net 2013-08-04 
05:45:08 PDT ---
*** Issue 9918 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6154] std.math.abs on std.complex numbers too

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6154


Lars T. Kyllingstad bugzi...@kyllingen.net changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@kyllingen.net
 Resolution||FIXED


--- Comment #6 from Lars T. Kyllingstad bugzi...@kyllingen.net 2013-08-04 
05:51:12 PDT ---
std.complex.abs() was added in May 2012.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10755] New: 'has no effect in expression' error for return too with comma operator

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10755

   Summary: 'has no effect in expression' error for return too
with comma operator
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: accepts-invalid
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2013-08-04 10:34:27 PDT ---
With dmd 2.064alpha this code gives:

void main() {
1;
}


test.d(2): Error: long has no effect in expression (1)

- - - - - - - - - - - -

This gives an error, commas are disallowed here:


void main() {
int[10] a;
auto x = a[1, 2];
}


test.d(3): Error: only one index allowed to index int[10u]

- - - - - - - - - - - -

This too gives errors:


void main() {
int[10, 20] a;
}


test.d(2): Error: found ',' when expecting ']'
test.d(2): Error: no identifier for declarator int[10]
test.d(2): Error: semicolon expected, not '20'
test.d(2): Error: found ']' when expecting ';' following statement

- - - - - - - - - - - -

This is disallowed:

void main() {
int x = 1, 2;
}


test.d(2): Error: no identifier for declarator int
test.d(2): Error: semicolon expected, not '2'

- - - - - - - - - - - -

This gives an error:

void main() {
int x;
x = 1, 2;
}

test.d(3): Error: long has no effect in expression (2)

- - - - - - - - - - - -

While this code compiles with no errors nor warnings:


int foo() {
return 1, 2; // line 2
}
int bar() {
return foo(), 3; // line 5
}
void main() {
assert(bar() == 3);
}


Inside bar() there is a call to foo(). foo() is not pure, but inside foo() 1
is a pure expression (a literal), so for this program I suggest to generate an
error at line 2, and disallow comma syntax at return points, but probably no
warning at line 5:

test.d(2): Error: int has no effect in expression (1)

- - - - - - - - - - - -

This generates an error:

int foo() {
return 1;
}
void main() {
int x;
x = foo(), 2;
}


test.d(6): Error: long has no effect in expression (2)


So maybe it's right to generate an error at line 5 too.

- - - - - - - - - - - -

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10756] New: has no effect in expression error message with correct type name

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10756

   Summary: has no effect in expression error message with
correct type name
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2013-08-04 10:38:23 PDT ---
A low priority enhancement request (in Bugzilla I'd like to be able to give an
importance high, or low, to enhancement requests too):


void main() {
'a';
1;
2U;
3UL;
4.0f;
}


dmd 2.064alpha gives:

test.d(2): Error: long has no effect in expression ('a')
test.d(3): Error: long has no effect in expression (1)
test.d(4): Error: long has no effect in expression (2u)
test.d(5): Error: long has no effect in expression (3LU)
test.d(6): Error: double has no effect in expression (4.0)


I think those error messages should be improved a little, printing the correct
type name.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10757] New: int incremented with double NaN doesn't give a cannot implicitly convert expression error

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10757

   Summary: int incremented with double NaN doesn't give a cannot
implicitly convert expression error
   Product: D
   Version: D2
  Platform: x86
OS/Version: Windows
Status: NEW
  Keywords: accepts-invalid
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2013-08-04 11:00:25 PDT ---
With dmd 2.064alpha this terrible program compiles with no errors nor warnings,
and it runs with no asserts:


void main() {
double x;
int y;
y += x;
assert(y == int.min);
y += 3.5;
assert(y == -2147483644);
}


What I'd like: that code to become a compile time error (a cannot implicitly
convert expression error), because I think it's against the idea of strong
typing. I prefer a language that doesn't silently drops floating point parts
(like 0.5 here) and that catches me if I increment an integer variable by
mistake by a floating point value.

(Probably I will not close down this bug report, so if someone (like Walter) is
against it then he should close it down. Such person should also show one or
more practical situations where allowing that code gives an advantage over
generating a compile-time error. I leave the burden of showing the usefulness
on the shoulders of the person willing to close this issue down.)


In a dynamically typed language as Python2.6 int+float or int+=float return a
float, so this behavour is acceptable:

 x = float(nan)
 y = 0
 y += x
 y
nan


I am aware that in D the increment at line 4 is accepted, but this is just a
matter of disabling the value range tests that are so good in D, this is a
different situation from adding a double to an int:

void main() {
int x;
byte y;
y += x; // line 4, OK
byte z = x; // Error: cannot implicitly convert
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10758] New: Unsound type checking for inout.

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10758

   Summary: Unsound type checking for inout.
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: timon.g...@gmx.ch


--- Comment #0 from timon.g...@gmx.ch 2013-08-04 16:01:37 PDT ---
With DMD, inout can be used to coerce away immutability as follows:

int* foo(inout(int)* x)@safe{
inout(int)* screwUp(inout(int)*){ return x; }
return screwUp((int*).init);
}

void main(){
immutable x = 123;
static assert(is(typeof(*x)==immutable));
assert(*x==123);
immutable(int)* y = x;
*foo(y)=456;
assert(*x==456);
assert(x!=*x); // (!)
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10759] New: DMD crashes when using nested interfaces and inheritance from them.

2013-08-04 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10759

   Summary: DMD crashes when using nested interfaces and
inheritance from them.
   Product: D
   Version: D2
  Platform: x86_64
OS/Version: Windows
Status: NEW
  Severity: critical
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: js.m...@gmail.com


--- Comment #0 from js.m...@gmail.com 2013-08-04 20:25:58 PDT ---
http://dpaste.dzfl.pl/

interface A : A.B
{
interface B { }
}

This pattern is is short hand for

interface A { interface B { } }

interface AA : A.B { }

but crashes dmd 2.063 x32.

I would like to avoid having to write dummy interfaces just to use nested
interfaces that are inherited by their parent.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---