On 6 April 2012 15:38, Piotr Szturmaj
<bncrbme@jadamspam.pl> wrote:
Jacob Carlborg wrote:
I would like to have the possibility to attach attributes to types and
parameters as well. Some think like this:
class Bar
{
@not_null(Foo) bar (@custom int a) {}
}
Where @not_null is attached to "Foo" and @custom is attached to "a".
Do you mean return type? I think your syntax has some serious disadvantages. Consider parameters and multiple attributes.
For return types I'd like to see something like this:
@return: not_null
@return: MyAttr("foo")
Foo bar(@custom int a) {}
This is similar to C#'s [return: MyAttr]. Alternatively it might be:
@return(not_null)
@return(MyAttr("foo"))
There's no need to attribute a return value. A) I think you're confusing it with attributing *types* again, and B) you can just attribute the function its self, and have access to precisely the same information.
You can't attribute a return value, since attributes aren't transferred along with assignments, they are bound to their respective declaration.