digitalmars.D.bugs - [Issue 2713] New: Error resolving types with ? : and const
- d-bugmail puremagic.com (33/33) Mar 06 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2713
- d-bugmail puremagic.com (12/12) Jun 07 2010 http://d.puremagic.com/issues/show_bug.cgi?id=2713
http://d.puremagic.com/issues/show_bug.cgi?id=2713
Summary: Error resolving types with ? : and const
Product: D
Version: 2.025
Platform: PC
URL: http://www.digitalmars.com/webnews/newsgroups.php?art_gr
oup=digitalmars.D&article_id=85423
OS/Version: All
Status: NEW
Keywords: rejects-valid
Severity: minor
Priority: P3
Component: DMD
AssignedTo: bugzilla digitalmars.com
ReportedBy: zildjohn01 gmail.com
The following fails to compile:
bool flag() {
bool left, right;
return true ? cast(const bool)left : cast(bool)right;
}
with the error "cannot implicitly convert expression (cast(int)left) of type
int to bool". It seems to happen whenever the left and right sides differ in
const-ness or invariant-ness.
This becomes an issue when trying to write const-correct class functions which
return bool, for example:
class C {
private int mask;
private bool readyYet() const {return true;}
public bool ExtractStateBit() const {
return readyYet() ? (mask & 1) : false;
}
}
--
Mar 06 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2713
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |clugdbug yahoo.com.au
Resolution| |FIXED
Fixed DMD2.031.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 07 2010








d-bugmail puremagic.com