Allow a way to specify class macros in a clean way.
Currently we've no way to specify a macro that affect a class. This lead to using AstAttrbiutes on classes.
When the class has several such attributes, it starts to get unsightly.
The issue rose when discussing class' contracts, btw. The proposed syntax is macros for the method contract, but there is no good way to specify a class contract without using an attribute (when you specify method's class with macros, that is not consistent).
I suggest a way to specify a macro on a class, similar to the way you can on methods. Considerring the possible confusion with properties, it would be nice to prefix them with @, so the following code is possible:
class MyClass:
@disposable #macro with no body, behave just like an attribute, with better syntax
@invariant: #macro with body,
var != null
count > 0
I'm currently considering demanding either a type or an initializer for a field. That way, the syntax for macros could be the same for types.