Hello, everyone I'm just wondering how the new attribute that defines behavior (not just additional metadata) will fit into the rest of the system.
Right now, return type hints are not implemented just as an attribute, but as "native" type declaration. I mean, what we have right now: function foo(): int {} could as well have been implemented as: #[ReturnType('int')] function foo() {} Yet, the native type declarations that we have is more concise and fits better. Do you think it's reasonable to implement "non-discardability of the returned value" as the attribute? Maybe new keyword would be better solution?