For the following source code:
void main() {
Object o = new Object();
printf("%*s\n", typeof(o).classinfo.name); // compiles ok
printf("%*s\n", (typeof(o)).classinfo.name); // error
}
compilation fails (on win32) with the following message:
main.d(4): found '.' when expecting ','
--- errorlevel 1
Comment #1 by ddaglas — 2006-12-28T19:35:19Z
== Quote from d-bugmail ([email protected])'s article
> http://d.puremagic.com/issues/show_bug.cgi?id=764
> Summary: (typeof(o)).classinfo causes parser error
> Product: D
> Version: unspecified
> Platform: PC
> OS/Version: Windows
> Status: NEW
> Severity: normal
> Priority: P2
> Component: DMD
> AssignedTo: [email protected]
> ReportedBy: [email protected]
> For the following source code:
> void main() {
> Object o = new Object();
> printf("%*s\n", typeof(o).classinfo.name); // compiles ok
> printf("%*s\n", (typeof(o)).classinfo.name); // error
> }
> compilation fails (on win32) with the following message:
> main.d(4): found '.' when expecting ','
> --- errorlevel 1
On a related note, compiling with -H added the ()'s around the typeof(...) in the
resulting .di file, which subsequently triggered the bug.
Is it a bug that DMD adds the ()'s around the typeof(...)?
--Dan