Edit report at https://bugs.php.net/bug.php?id=80247&edit=1
ID: 80247
Updated by: nikic@php.net
Reported by: info at chrisdoehring dot de
-Summary: ReflectionUnionType class does not contain isBuiltin
method
+Summary: ReflectionType does not have an isBuiltin() method
Status: Open
-Type: Bug
+Type: Documentation Problem
Package: Reflection related
Operating System: Linux
PHP Version: 8.0.0RC2
Block user comment: N
Private report: N
New Comment:
In PHP 8, ReflectionType does not have an isBuiltin() method.
I recommend documenting this by removing ReflectionType::isBuiltin() from the docs completely
(leaving only ReflectionNamedType::isBuiltin()). The fact that this method used to exist on earlier
PHP versions is not useful, as ReflectionNamedType was the only ReflectionType there anyway.
Previous Comments:
------------------------------------------------------------------------
[2020-10-16 15:44:19] info at chrisdoehring dot de
Description:
------------
The in php 8 added "ReflectionUnionType" class should extend the ReflectionType class
according to the RFC proposal (https://wiki.php.net/rfc/union_types_v2#reflection), but the
inherited "isBuiltin" method (https://www.php.net/manual/de/reflectiontype.isbuiltin.php)
does not exist.
Example script: https://3v4l.org/5BDRn
How it looks like without union type: https://3v4l.org/TGkX2
Test script:
---------------
<?php
class SomeClass
{
protected string|stdClass $a;
}
$unionType = (new \ReflectionClass(SomeClass::class))->getProperty('a')->getType();
var_dump($unionType->isBuiltin());
Expected result:
----------------
bool(false)
Actual result:
--------------
Fatal error: Uncaught Error: Call to undefined method ReflectionUnionType::isBuiltin() in
/in/5BDRn:8
Stack trace:
#0 {main}
thrown in /in/5BDRn on line 8
Process exited with code 255.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80247&edit=1