Skip to content

Commit 1679c34

Browse files
committed
Update functionMetadata
1 parent d365eff commit 1679c34

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

bin/generate-function-metadata.php

+10-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function enterNode(Node $node)
2929
foreach ($attrGroup->attrs as $attr) {
3030
if ($attr->name->toString() === \JetBrains\PhpStorm\Pure::class) {
3131
$this->functions[] = $node->namespacedName->toLowerString();
32-
break;
32+
break 2;
3333
}
3434
}
3535
}
@@ -45,7 +45,7 @@ public function enterNode(Node $node)
4545
foreach ($attrGroup->attrs as $attr) {
4646
if ($attr->name->toString() === \JetBrains\PhpStorm\Pure::class) {
4747
$this->methods[] = sprintf('%s::%s', $className, $node->name->toString());
48-
break;
48+
break 2;
4949
}
5050
}
5151
}
@@ -71,6 +71,14 @@ public function enterNode(Node $node)
7171
foreach ($visitor->functions as $functionName) {
7272
if (array_key_exists($functionName, $metadata)) {
7373
if ($metadata[$functionName]['hasSideEffects']) {
74+
if (in_array($functionName, [
75+
'mt_rand',
76+
'rand',
77+
'random_bytes',
78+
'random_int',
79+
], true)) {
80+
continue;
81+
}
7482
throw new \PHPStan\ShouldNotHappenException($functionName);
7583
}
7684
}

resources/functionMetadata.php

+12-6
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
'DateTimeImmutable::setTimestamp' => ['hasSideEffects' => false],
6969
'DateTimeImmutable::setTimezone' => ['hasSideEffects' => false],
7070
'DateTimeImmutable::sub' => ['hasSideEffects' => false],
71+
'Error::__construct' => ['hasSideEffects' => false],
7172
'ErrorException::__construct' => ['hasSideEffects' => false],
7273
'Event::__construct' => ['hasSideEffects' => false],
7374
'EventBase::getFeatures' => ['hasSideEffects' => false],
@@ -86,6 +87,7 @@
8687
'EventHttpConnection::__construct' => ['hasSideEffects' => false],
8788
'EventHttpRequest::__construct' => ['hasSideEffects' => false],
8889
'EventHttpRequest::getCommand' => ['hasSideEffects' => false],
90+
'EventHttpRequest::getConnection' => ['hasSideEffects' => false],
8991
'EventHttpRequest::getHost' => ['hasSideEffects' => false],
9092
'EventHttpRequest::getInputBuffer' => ['hasSideEffects' => false],
9193
'EventHttpRequest::getInputHeaders' => ['hasSideEffects' => false],
@@ -495,6 +497,7 @@
495497
'ReflectionFunctionAbstract::getAttributes' => ['hasSideEffects' => false],
496498
'ReflectionFunctionAbstract::getClosureScopeClass' => ['hasSideEffects' => false],
497499
'ReflectionFunctionAbstract::getClosureThis' => ['hasSideEffects' => false],
500+
'ReflectionFunctionAbstract::getClosureUsedVariables' => ['hasSideEffects' => false],
498501
'ReflectionFunctionAbstract::getDocComment' => ['hasSideEffects' => false],
499502
'ReflectionFunctionAbstract::getEndLine' => ['hasSideEffects' => false],
500503
'ReflectionFunctionAbstract::getExtension' => ['hasSideEffects' => false],
@@ -509,10 +512,13 @@
509512
'ReflectionFunctionAbstract::getShortName' => ['hasSideEffects' => false],
510513
'ReflectionFunctionAbstract::getStartLine' => ['hasSideEffects' => false],
511514
'ReflectionFunctionAbstract::getStaticVariables' => ['hasSideEffects' => false],
515+
'ReflectionFunctionAbstract::getTentativeReturnType' => ['hasSideEffects' => false],
516+
'ReflectionFunctionAbstract::hasTentativeReturnType' => ['hasSideEffects' => false],
512517
'ReflectionFunctionAbstract::isClosure' => ['hasSideEffects' => false],
513518
'ReflectionFunctionAbstract::isDeprecated' => ['hasSideEffects' => false],
514519
'ReflectionFunctionAbstract::isGenerator' => ['hasSideEffects' => false],
515520
'ReflectionFunctionAbstract::isInternal' => ['hasSideEffects' => false],
521+
'ReflectionFunctionAbstract::isStatic' => ['hasSideEffects' => false],
516522
'ReflectionFunctionAbstract::isUserDefined' => ['hasSideEffects' => false],
517523
'ReflectionFunctionAbstract::isVariadic' => ['hasSideEffects' => false],
518524
'ReflectionGenerator::getExecutingFile' => ['hasSideEffects' => false],
@@ -521,6 +527,7 @@
521527
'ReflectionGenerator::getFunction' => ['hasSideEffects' => false],
522528
'ReflectionGenerator::getThis' => ['hasSideEffects' => false],
523529
'ReflectionGenerator::getTrace' => ['hasSideEffects' => false],
530+
'ReflectionIntersectionType::getTypes' => ['hasSideEffects' => false],
524531
'ReflectionMethod::getClosure' => ['hasSideEffects' => false],
525532
'ReflectionMethod::getDeclaringClass' => ['hasSideEffects' => false],
526533
'ReflectionMethod::getModifiers' => ['hasSideEffects' => false],
@@ -533,6 +540,7 @@
533540
'ReflectionMethod::isProtected' => ['hasSideEffects' => false],
534541
'ReflectionMethod::isPublic' => ['hasSideEffects' => false],
535542
'ReflectionMethod::isStatic' => ['hasSideEffects' => false],
543+
'ReflectionMethod::setAccessible' => ['hasSideEffects' => false],
536544
'ReflectionNamedType::getName' => ['hasSideEffects' => false],
537545
'ReflectionNamedType::isBuiltin' => ['hasSideEffects' => false],
538546
'ReflectionParameter::getAttributes' => ['hasSideEffects' => false],
@@ -567,6 +575,7 @@
567575
'ReflectionProperty::isProtected' => ['hasSideEffects' => false],
568576
'ReflectionProperty::isPublic' => ['hasSideEffects' => false],
569577
'ReflectionProperty::isStatic' => ['hasSideEffects' => false],
578+
'ReflectionProperty::setAccessible' => ['hasSideEffects' => false],
570579
'ReflectionReference::getId' => ['hasSideEffects' => false],
571580
'ReflectionType::isBuiltin' => ['hasSideEffects' => false],
572581
'ReflectionUnionType::getTypes' => ['hasSideEffects' => false],
@@ -601,15 +610,11 @@
601610
'SimpleXMLIterator::valid' => ['hasSideEffects' => false],
602611
'SoapFault::__construct' => ['hasSideEffects' => false],
603612
'Spoofchecker::__construct' => ['hasSideEffects' => false],
604-
'StubTests\\Model\\BasePHPElement::getFQN' => ['hasSideEffects' => false],
605-
'StubTests\\Model\\BasePHPElement::getTypeNameFromNode' => ['hasSideEffects' => false],
606-
'StubTests\\Model\\BasePHPElement::hasMutedProblem' => ['hasSideEffects' => false],
607-
'StubTests\\Model\\StubsContainer::getClass' => ['hasSideEffects' => false],
608-
'StubTests\\Model\\StubsContainer::getInterface' => ['hasSideEffects' => false],
613+
'StubTests\\CodeStyle\\BracesOneLineFixer::getDefinition' => ['hasSideEffects' => false],
609614
'StubTests\\Parsers\\ExpectedFunctionArgumentsInfo::__toString' => ['hasSideEffects' => false],
610615
'StubTests\\Parsers\\Visitors\\CoreStubASTVisitor::__construct' => ['hasSideEffects' => false],
616+
'StubTests\\StubsMetaExpectedArgumentsTest::getClassMemberFqn' => ['hasSideEffects' => false],
611617
'StubTests\\StubsParameterNamesTest::printParameters' => ['hasSideEffects' => false],
612-
'StubTests\\StubsTest::getParameterRepresentation' => ['hasSideEffects' => false],
613618
'Transliterator::createInverse' => ['hasSideEffects' => false],
614619
'Transliterator::getErrorCode' => ['hasSideEffects' => false],
615620
'Transliterator::getErrorMessage' => ['hasSideEffects' => false],
@@ -658,6 +663,7 @@
658663
'array_intersect_key' => ['hasSideEffects' => false],
659664
'array_intersect_uassoc' => ['hasSideEffects' => false],
660665
'array_intersect_ukey' => ['hasSideEffects' => false],
666+
'array_is_list' => ['hasSideEffects' => false],
661667
'array_key_exists' => ['hasSideEffects' => false],
662668
'array_key_first' => ['hasSideEffects' => false],
663669
'array_key_last' => ['hasSideEffects' => false],

0 commit comments

Comments
 (0)