On Friday, 4 August 2017 at 16:54:44 UTC, 12345swordy wrote:
On Friday, 4 August 2017 at 16:36:22 UTC, Stefan Koch wrote:
On Friday, 4 August 2017 at 16:32:27 UTC, 12345swordy wrote:
On Friday, 4 August 2017 at 16:27:47 UTC, Stefan Koch wrote:
On Friday, 4 August 2017 at 16:11:11 UTC, 12345swordy wrote:
On Friday, 4 August 2017 at 16:07:51 UTC, Kagamin wrote:
[...]
I know that, what is your point?
It means it can't be done.
Do do recursive flow-sensitive checks, (like those needed to
enforce 'pure' or indeed '@nogc'), you'd have to write a
self-modifying meta-program.
Which you cannot do.
I wasn't thinking about recursive checking when I was talking
about enforcing code standards.
Alex
enforcing a standard on the top-level only does not really
enforce anything.
(I really wish this would be a proper fourm, so I can bold
things)
Call it a poor mans enforcer if you wish, that the decision
that I decided to make.
That is not possible in D.
And I doubt it's possible with meta-classes but I might be wrong
since I have only skimmed the paper.
To answer the question you posted a while back:
Is it to much to ask for d developers to provide a way to
enforce custom
coding standards in a similar fashion that @nogc and @safe does?
The answer is yes. It's too much to ask of us. Since for the time
being we lack in quality menpower.
Here is what would be needed to provide that:
1. specify a programatically accessible version of the whole AST.
2. specify a programatically accessible way to transform that AST.
3. Used the transformed ast.
Which is a lot of work it done correctly.
On top of being a feature which is highly prone to dubious uses.
And that clashes with safety guarantees D tries to provide.