http://d.puremagic.com/issues/show_bug.cgi?id=2826
Summary: failed assignment gives wrong line number Product: D Version: 2.027 Platform: PC OS/Version: Windows Status: NEW Keywords: diagnostic, patch Severity: normal Priority: P2 Component: DMD AssignedTo: bugzi...@digitalmars.com ReportedBy: clugd...@yahoo.com.au const float foo=200.0; void main() { int y = foo; } ----------- fog.d(1): Error: cannot implicitly convert expression (200) of type const(float) to int But the error is on line 4, not on line 1. ================ Patch: optimize.c line 128. The problem is that isVarDeclaration() on line 119 returns an expression with the line number where the initializer was from. But, we want the line number for the assignment. This patch fixes it, but I think there's something deeper which is wrong here. There are many similar alias bugs in bugzilla. --- optimize.c (revision 23) +++ optimize.c (working copy) @@ -124,6 +124,7 @@ e = e->copy(); e->type = e1->type; } + e->loc = e1->loc; } else e = e1; --