digitalmars.D.bugs - [Issue 3013] New: bizaar diagnose message
- d-bugmail puremagic.com (23/23) May 20 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3013
- d-bugmail puremagic.com (16/16) May 20 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3013
- d-bugmail puremagic.com (12/12) May 20 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3013
- d-bugmail puremagic.com (11/11) May 20 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3013
- d-bugmail puremagic.com (15/20) May 21 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3013
- d-bugmail puremagic.com (11/30) May 21 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3013
- d-bugmail puremagic.com (35/35) May 22 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3013
http://d.puremagic.com/issues/show_bug.cgi?id=3013
Summary: bizaar diagnose message
Product: D
Version: 2.028
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla digitalmars.com
ReportedBy: davidl 126.com
import std.string;
void main()
{
char[] s= string.format("abc","abc");
}
testd.d(5): Error: cannot implicitly convert expression (format((&
D20TypeInfo_B9AyaAyaAya6__initZ),(immutable(char)[]),
"abc","abc")) of type immutable(char)[] to char[]
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 20 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3013
ZHOU Zhenyu <rinick gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |WORKSFORME
Severity|normal |trivial
string.format("abc","abc");
is same as
format(string, "abc", "abc");
which means:
format(immutable(char)[], "abc", "abc");
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 20 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3013
david <davidl 126.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|WORKSFORME |
The point is the error message should not expose mangled name to users. The
original title is pretty clear.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 20 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3013
david <davidl 126.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |diagnostic
Summary|bizaar diagnose message |bizarre diagnostic message
err , it was unclear.. there was a typo.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 20 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3013
Stewart Gordon <smjg iname.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |smjg iname.com
Summary|bizarre diagnostic message |Weird message with cryptic
| |mangled name - implicit
| |conversion error
string.format("abc","abc");
is same as
format(string, "abc", "abc");
which means:
format(immutable(char)[], "abc", "abc");
I'm confused. Since when has it been legal to pass a type as a function
argument?
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 21 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3013
ZHOU Zhenyu <rinick gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rinick gmail.com
string.format("abc","abc");
is same as
format(string, "abc", "abc");
which means:
format(immutable(char)[], "abc", "abc");
I'm confused. Since when has it been legal to pass a type as a function
argument?
It's not legal. I was just explaining the error message of this bug:
import std.string;
void main()
{
char[] s= string.format("abc","abc");
}
testd.d(5): Error: cannot implicitly convert expression (format((&
D20TypeInfo_B9AyaAyaAya6__initZ),(immutable(char)[]),
"abc","abc")) of type immutable(char)[] to char[]
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 21 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3013
Stewart Gordon <smjg iname.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Version|2.028 |1.043
Summary|Weird message with cryptic |Weird implicit conversion
|mangled name - implicit |error with cryptic mangled
|conversion error |name - assigning to invalid
| |arraytype.function call
So the bug is that it tries to make out the type of the expression and gets
somewhere (and hence delivers an error) before realising that string.format is
itself invalid.
The bug also occurs in DMD 1.043, as this shows:
----------
import std.string;
void main() {
int s = string.format("abc", "def");
}
----------
array_static_method.d(4): Error: cannot implicitly convert expression
(format((&
D17TypeInfo_B6AaAaAa6__initZ),(char[]),"abc","def")) of type char[] to int
----------
Strangely, given (int[]) instead of string, 2.030 gives an almost identical
cryptic message, but 1.043 emits the more sensible
----------
array_static_method.d(4): Error: no property 'format' for type 'int[]'
array_static_method.d(4): Error: function expected before (), not 1 of type int
----------
(OK, so the second message is bogus, but that's just a case of a long-known
issue.)
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 22 2009









d-bugmail puremagic.com 