digitalmars.D.bugs - [Issue 2995] New: Incorrect conversion in c ? a : b
- d-bugmail puremagic.com (25/25) May 16 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2995
- d-bugmail puremagic.com (24/24) Apr 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=2995
- d-bugmail puremagic.com (11/11) May 05 2010 http://d.puremagic.com/issues/show_bug.cgi?id=2995
http://d.puremagic.com/issues/show_bug.cgi?id=2995 Summary: Incorrect conversion in c ? a : b Product: D Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: andrei metalanguage.com class A {} void main() { immutable(A) b; A c; auto z = true ? b : c; writeln(typeof(z).stringof); } writes Object, which is wrong in a number of ways. The common type of A and immutable(A) is const(A). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 16 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2995 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch PATCH: cast.c, line 1663. Conversion of both types to const needs to occur for classes, as well as for arrays and pointers. else if (t1->ty == Tclass || t2->ty == Tclass) { + if (t1->mod != t2->mod) + { + t1 = t1->mutableOf()->constOf(); + t2 = t2->mutableOf()->constOf(); + t = t1; + goto Lagain; + } while (1) { int i1 = e2->implicitConvTo(t1); int i2 = e1->implicitConvTo(t2); -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2995 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed DMD2.044. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 05 2010