https://d.puremagic.com/issues/show_bug.cgi?id=9112
--- Comment #23 from [email protected] 2013-11-24 05:41:58 PST --- (In reply to comment #21) > void main() > { > alias Call!(GetFunc!()) square; > square(2); // actually calls int(2) > } > > test.d(13): Error: function expected before (), not int of type int > > With the pull this becomes valid code. > > Maybe it's obvious in this case, but when you combine tuples, mixins, etc, it > could be hard to notice what's wrong. The way I see it, the more the line > between functions and types becomes blurred the harder it can be to track > bugs. This code gives: void main() { cast(int)2; } temp.d(2): Error: long has no effect in expression (2) So I think this will give a similar error message: void main() { int(2); } On the other hand this probably will not give an error: ... void main() { alias Call!(GetFunc!()) square; auto n = square(2); } cast(...) is a dangerous tool, so it's a good idea to introduce a feature like int(...) that avoids some usages of cast(...). T(x) where T is a built-in type is a little safer than a cast because it gives errors when the conversion is not possible. So I think the advantages here could outweigh the risks. --- Comment #24 from [email protected] 2014-03-06 19:47:10 PST --- Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/0ddf824ff02c181ac9b8b4fc9abc843a1e3cc6f1 fix Issue 9112 - Uniform construction for built-in types Support syntax T(), T(v), and new T(v) for basic type T https://github.com/D-Programming-Language/dmd/commit/17917a2be2929e33fefbca3384a23521b2ff65f0 Merge pull request #1356 from 9rnsr/uniform_ctor Issue 9112 - Uniform construction for built-in types -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
