digitalmars.D.bugs - [Bug 145] New: Can't refer to global scope after a cast
- d-bugmail puremagic.com (26/26) May 18 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=145
- d-bugmail puremagic.com (19/19) May 18 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=145
- d-bugmail puremagic.com (10/10) May 18 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=145
- Thomas Kuehne (12/25) May 19 2006 -----BEGIN PGP SIGNED MESSAGE-----
http://d.puremagic.com/bugzilla/show_bug.cgi?id=145
Summary: Can't refer to global scope after a cast
Product: D
Version: 0.157
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla digitalmars.com
ReportedBy: lio lunesu.com
#int somefunc(int i) { return i; }
#class someclass{
C:\dmd>dmd test.d
test.d(5): found '(' when expecting ';' following 'return statement'
test.d(5): found ')' when expecting ';' following 'statement'
C:\dmd>dmd
Digital Mars D Compiler v0.157
If ".somefunc" were in a module, "cast(uint)somemod.somefunc" works just fine.
--
May 18 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=145
deewiant gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |minor
Priority|P2 |P3
Just wrap .somefunc(2) in brackets:
int somefunc(int i) { return i; }
class someclass{
// int somefunc() {...}
uint otherfunc(){
return cast(uint)(.somefunc(2));
}
}
I guess it's still a bug, since the parser should be able to realise that we're
not trying to, for instance, call a method of cast(uint)'s named somefunc. But
it's not really that important.
--
May 18 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=145
smjg iname.com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |smjg iname.com
Keywords| |rejects-valid
I was just trying to follow the grammar to see if it should be allowed!
Indeed, .someFunc(2) is a UnaryExpression, so yes.
--
May 18 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 d-bugmail puremagic.com schrieb am 2006-05-18:#int somefunc(int i) { return i; } #class someclass{ C:\dmd>dmd test.d test.d(5): found '(' when expecting ';' following 'return statement' test.d(5): found ')' when expecting ';' following 'statement' C:\dmd>dmd Digital Mars D Compiler v0.157 If ".somefunc" were in a module, "cast(uint)somemod.somefunc" works just fine.Added to DStress as http://dstress.kuehne.cn/run/o/opModule_01_A.d http://dstress.kuehne.cn/run/o/opModule_01_B.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFEbb843w+/yD4P9tIRAn6+AJ0eoNXdbxvYEmPOxlG7u78F5HBg/QCeN/ii omyrnfG0dfw94VVCgIEPp2w= =h6St -----END PGP SIGNATURE-----
May 19 2006









d-bugmail puremagic.com 