TypePHP 编译器 https://swoole.com/aot/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

36 lines
1.1 KiB

<?php
final class GenStubVersionFlagsTest extends BaseTest
{
public function testPersistentStringMetadataUsesANonRefcountedInternedZval(): void
{
global $translator;
$translator = \TypePhp\CompilerTest::create(ROOT_PATH);
$value = EvaluatedValue::createFromExpression(
new PhpParser\Node\Scalar\String_('PHP'),
null,
null,
[],
);
$code = $value->initializeZval('property_lang_default_value');
self::assertStringContainsString('zend_string_init_interned("PHP"', $code);
self::assertStringContainsString(
'ZVAL_INTERNED_STR(&property_lang_default_value, property_lang_default_value_str);',
$code,
);
}
public function testFlagIntroducedBeforeMinimumSupportedVersionRemainsEnabled(): void
{
$flags = new VersionFlags(['ZEND_ACC_PRIVATE']);
$flags->addForVersionsAbove('ZEND_ACC_STATIC', PHP_70_VERSION_ID);
self::assertSame(
'ZEND_ACC_PRIVATE|ZEND_ACC_STATIC',
$flags->generateVersionDependentFlagCode('%s', null),
);
}
}