fix time_nanosleep return type signature#1787
Conversation
| 'tidyNode::isText' => ['bool'], | ||
| 'time' => ['positive-int'], | ||
| 'time_nanosleep' => ['array{0:0|positive-int,1:0|positive-int}|bool', 'seconds'=>'int', 'nanoseconds'=>'int'], | ||
| 'time_nanosleep' => ['array{seconds:0|positive-int,nanoseconds:0|positive-int}|bool', 'seconds'=>'int', 'nanoseconds'=>'int'], |
There was a problem hiding this comment.
would an int-range int<0, max> be better than unioning a constant int and positive-int?
There was a problem hiding this comment.
I don't think any of the two is "better" - they are equivalent.
There was a problem hiding this comment.
isn't a single IntegerRangeType preferable to a UnionType containing two different types with regards to performance?
semantically they are they same i agree, but will phpstan simplify it to reduce the php object count from 3 to 1 ?
There was a problem hiding this comment.
0|positive-int will be normalized to int<0, max> so in that sense they're equivalent
There was a problem hiding this comment.
if you find a example in which we find a measurable difference we should have a closer look.
as we don't have one, I would assume its a micro difference
There was a problem hiding this comment.
@rvanvelzen thank you, i'm still learning lots about phpstan's type system so forgive any silly questions i may have!
|
Thank you. |
closes phpstan/phpstan#8097