On Tuesday, 20 February 2018 at 12:15:57 UTC, psychoticRabbit
wrote:
I've noticed that Go and Rust annotate functions.
func (in go)
fn (in rust)
I was kind of wondering why they made that choice, given
compilers in many languages do not.
Would this be a useful feature in D?
Everything else seems to have an annotation (e.g structs,
classes.) So why not functions?
What are people's thoughts about it?
My first thought is to make it an optional annotation, for the
benefit of developing source code analysis tools that can 'more
easily' find functions in source code (i.e. The D compiler can
just strip it off and do nothing with it.). That way
programmers that see no benefit in it, don't have to deal with
it.
If you want to annotate your functions (rather than someone
elses), you could do something like below. Ideally this would
also include a compile-time check that foo is a function. Maybe
use Atila's concepts library?
enum Function;
@Function void foo() { }
void main()
{
}