Re: Attributes on property groups

From: Date: Tue, 22 Sep 2020 16:50:40 +0000
Subject: Re: Attributes on property groups
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-111923@lists.php.net to get a copy of this message
Hi Nikita, > Hi internals, > > Currently, placing an attribute on property (or constant) groups is not > allowed: > > class Foo { >     #[NonNegative] >     public int $x, $y, $z; > } > // Fatal error: Cannot apply attributes to a group of properties > > This is a case that was not explicitly mentioned in the RFC and we decided > to be conversative when landing the initial implementation. > > However, this restriction seems pretty arbitrary to me, and I think we > should remove it. While there is some potential ambiguity as to whether the > attribute applies to all properties or only the first one, I think the > general expectation is that it should apply to all properties, just like > the property type does. > > PR to allow this: https://github.com/php/php-src/pull/6186 > > Any thoughts on this? That seems like a good idea and doesn't seem like an ABI change. I'm surprised this was a special case in the original implementation. I wouldn't consider it a BC break if code that was previously a CompileError no longer threw a CompileError. The attribute node occurs before property modifiers such as private static, which already pretty clearly apply to all elements in an attribute group, not just the first element. Regards, - Tyson

« previous php.internals (#111923) next »