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()
{

}

Reply via email to