Steven Schveighoffer wrote: > On Mon, 09 Aug 2010 14:39:58 -0400, Lutger <lutger.blijdest...@gmail.com> > wrote: > >> bearophile wrote: >> >>> Mafi: >>>> I think, that isn't a good idea. >>> >>> I agree, that idea doesn't work well. >>> >>> Bye, >>> bearophile >> >> I think it still is a good idea to forbid this in safe mode. Perhaps in >> trusted >> too. > > Note, this isn't any less safe than defining whatever you want for a C > function: > > extern(C) int strlen(int x); > > C has no mangling, so there is no storage of parameter types in the > symbol. You can call any C function with whatever parameters you want to > define for them. Making some set of parameters illegal because in some > cases it might not be true where you don't prevent it in others because > you can't prove it, is just simply useless. > > -Steve
Well you manually add typing, I think that is useful. But come to think of it, extern(C) functions should not be allowed in @safe code at all, only via @trusted and then the typing is useful. Perhaps this has been talked about, but I'm not sure how far @trusted can be allowed to go.