Skip to content

Commit 6fc440b

Browse files
committed
build/gen_stub: support asymmetric visibility modifiers.
Emit ZEND_ACC_PUBLIC_SET / PROTECTED_SET / PRIVATE_SET from the corresponding Modifiers::*_SET flags in generated arginfo, gated to PHP 8.4+ where asymmetric visibility was introduced. Previously private(set) and friends in stubs parsed without error but produced no set-visibility flag.
1 parent 4997418 commit 6fc440b

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

build/gen_stub.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2354,7 +2354,17 @@ protected function getFlagsByPhpVersion(): VersionFlags
23542354
$flags = "ZEND_ACC_PRIVATE";
23552355
}
23562356

2357-
return new VersionFlags([$flags]);
2357+
$versionFlags = new VersionFlags([$flags]);
2358+
2359+
if ($this->flags & Modifiers::PUBLIC_SET) {
2360+
$versionFlags->addForVersionsAbove("ZEND_ACC_PUBLIC_SET", PHP_84_VERSION_ID);
2361+
} elseif ($this->flags & Modifiers::PROTECTED_SET) {
2362+
$versionFlags->addForVersionsAbove("ZEND_ACC_PROTECTED_SET", PHP_84_VERSION_ID);
2363+
} elseif ($this->flags & Modifiers::PRIVATE_SET) {
2364+
$versionFlags->addForVersionsAbove("ZEND_ACC_PRIVATE_SET", PHP_84_VERSION_ID);
2365+
}
2366+
2367+
return $versionFlags;
23582368
}
23592369

23602370
protected function getTypeCode(string $variableLikeName, string &$code): string

0 commit comments

Comments
 (0)