how to add annotations to a C extension function

From: Date: Sat, 08 Jan 2022 08:12:58 +0000
Subject: how to add annotations to a C extension function
Groups: php.general 
Request: Send a blank email to php-general+get-327884@lists.php.net to get a copy of this message
This is a php-internals question. I'm trying to fix some php8.1 deprecation notices in a C extension (google/protobuf). They mostly relate to ArrayAccess and Iterator now requiring return types: Deprecated: Return type of Google\Protobuf\Internal\RepeatedField::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in Unknown on line 0 I've been able to fix the methods that require standard return types (int, void, etc), via ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX macro. The ones I can't fix (due to needing to maintain BC to php7.0) involve the "mixed" type, so as an interim solution I want to add the #[\ReturnTypeWillChange] annotation to some methods, but I can't find a way to do that. This is cross-posted on stack overflow, if anybody is after points: https://stackoverflow.com/questions/70620027/how-to-create-a-php-extension-function-with-a-return-type-hint-plus-annotation Thanks, Brett

« previous php.general (#327884) next »