Const on the call site?
Robert Fraser
fraserofthenight at gmail.com
Wed Nov 14 19:37:30 PST 2007
Walter Bright Wrote:
> Robert Fraser wrote:
> > What about requiring constants be declared on the call site rather
> > than at the function declaration? The compiler then checks the
> > function and issues an error if the value isn't const. That way,
> > library writers wouldn't have to worry at all about const, so only
> > the people ho WANTED to use const in their code could. It's not part
> > of the interface of a function, but for most functions, it's the
> > caller who knows whether or not the data SHOULD be constant, and that
> > way the caller can see automatically that a function changes
> > something, and find out where.
>
> This comes under the heading of 'interprocedural analysis', and it
> requires that the compiler have access to all the source for all the
> functions (in fact, 100% of the source to the entire program). Such
> makes it impossible to have opaque interfaces or anything that
> recursively depends on opaque interfaces.
>
> This would include anything that calls anything that depends on the C
> runtime library (or any other C library). The compiler would have to
> understand every language used for every part of the program.
I never thought of it in that way; indeed, it would be impossible for a compiled language like D. Might make an interesting feature for a scripting language, though.
More information about the Digitalmars-d
mailing list