Skip to content

Instantly share code, notes, and snippets.

@staabm
Created February 24, 2026 07:01
Show Gist options
  • Select an option

  • Save staabm/ec1c42f04f053e20928ae1ea9e4a90f4 to your computer and use it in GitHub Desktop.

Select an option

Save staabm/ec1c42f04f053e20928ae1ea9e4a90f4 to your computer and use it in GitHub Desktop.
phpstan-src error on PHP8.5
➜ phpstan-src git:(2.1.x) php -d memory_limit=599M bin/phpstan -v
Note: Using configuration file /Users/staabm/workspace/phpstan-src/phpstan.neon.dist.
2178/2178 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100% 10 secs
-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Error
-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Internal error: Trait "Hoa\Event\Listens" not found while analysing file /Users/staabm/workspace/phpstan-src/src/Type/Regex/RegexGroupParser.php
Post the following stack trace to https://github.com/phpstan/phpstan/issues/new?template=Bug_report.yaml:
## /Users/staabm/workspace/phpstan-src/vendor/hoa/stream/Stream.php(51)
#0 /Users/staabm/workspace/phpstan-src/vendor/composer/ClassLoader.php(576): include()
#1 /Users/staabm/workspace/phpstan-src/vendor/composer/ClassLoader.php(427): {closure:Composer\Autoload\ClassLoader::initializeIncludeClosure():575}('/Users/staabm/w...')
#2 [internal function]: Composer\Autoload\ClassLoader->loadClass('Hoa\\Stream\\Stre...')
#3 /Users/staabm/workspace/phpstan-src/vendor/hoa/consistency/Autoloader.php(195): spl_autoload_call('Hoa\\Stream\\Stre...')
#4 /Users/staabm/workspace/phpstan-src/vendor/hoa/consistency/Autoloader.php(126): Hoa\Consistency\Autoloader->runAutoloaderStack('Hoa\\Stream\\Stre...')
#5 /Users/staabm/workspace/phpstan-src/src/Reflection/BetterReflection/SourceLocator/AutoloadSourceLocator.php(346): Hoa\Consistency\Autoloader->load('Hoa\\Stream')
#6 /Users/staabm/workspace/phpstan-src/src/Reflection/BetterReflection/SourceLocator/FileReadTrapStreamWrapper.php(70):
PHPStan\Reflection\BetterReflection\SourceLocator\AutoloadSourceLocator::{closure:PHPStan\Reflection\BetterReflection\SourceLocator\AutoloadSourceLocator::locateClassByName()
:339}()
#7 /Users/staabm/workspace/phpstan-src/src/Reflection/BetterReflection/SourceLocator/AutoloadSourceLocator.php(338):
PHPStan\Reflection\BetterReflection\SourceLocator\FileReadTrapStreamWrapper::withStreamWrapperOverride(Object(Closure))
#8 /Users/staabm/workspace/phpstan-src/src/Reflection/BetterReflection/SourceLocator/AutoloadSourceLocator.php(148):
PHPStan\Reflection\BetterReflection\SourceLocator\AutoloadSourceLocator->locateClassByName('Hoa\\Stream')
#9 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/SourceLocator/Type/AggregateSourceLocator.php(30):
PHPStan\Reflection\BetterReflection\SourceLocator\AutoloadSourceLocator->locateIdentifier(Object(PHPStan\BetterReflection\Reflector\DefaultReflector),
Object(PHPStan\BetterReflection\Identifier\Identifier))
#10 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/SourceLocator/Type/MemoizingSourceLocator.php(39):
PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator->locateIdentifier(Object(PHPStan\BetterReflection\Reflector\DefaultReflector),
Object(PHPStan\BetterReflection\Identifier\Identifier))
#11 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/Reflector/DefaultReflector.php(34):
PHPStan\BetterReflection\SourceLocator\Type\MemoizingSourceLocator->locateIdentifier(Object(PHPStan\BetterReflection\Reflector\DefaultReflector),
Object(PHPStan\BetterReflection\Identifier\Identifier))
#12 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass.php(1267):
PHPStan\BetterReflection\Reflector\DefaultReflector->reflectClass('Hoa\\Stream')
#13 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass.php(581):
PHPStan\BetterReflection\Reflection\ReflectionClass->getParentClass()
#14 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass.php(583):
PHPStan\BetterReflection\Reflection\ReflectionClass->getMethodsIndexedByLowercasedName(Object(PHPStan\BetterReflection\Reflection\Support\AlreadyVisitedClasses))
#15 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass.php(583):
PHPStan\BetterReflection\Reflection\ReflectionClass->getMethodsIndexedByLowercasedName(Object(PHPStan\BetterReflection\Reflection\Support\AlreadyVisitedClasses))
#16 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass.php(664):
PHPStan\BetterReflection\Reflection\ReflectionClass->getMethodsIndexedByLowercasedName(Object(PHPStan\BetterReflection\Reflection\Support\AlreadyVisitedClasses))
#17 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass.php(960):
PHPStan\BetterReflection\Reflection\ReflectionClass->getMethods()
#18 /Users/staabm/workspace/phpstan-src/vendor/ondrejmirtes/better-reflection/src/Reflection/Adapter/ReflectionClass.php(182):
PHPStan\BetterReflection\Reflection\ReflectionClass->getConstructor()
#19 /Users/staabm/workspace/phpstan-src/src/Reflection/ClassReflection.php(662): PHPStan\BetterReflection\Reflection\Adapter\ReflectionClass->getConstructor()
#20 /Users/staabm/workspace/phpstan-src/src/Reflection/ClassReflection.php(648): PHPStan\Reflection\ClassReflection->findConstructor()
#21 /Users/staabm/workspace/phpstan-src/src/Analyser/MutatingScope.php(5056): PHPStan\Reflection\ClassReflection->hasConstructor()
#22 /Users/staabm/workspace/phpstan-src/src/Analyser/MutatingScope.php(1295): PHPStan\Analyser\MutatingScope->exactInstantiation(Object(PhpParser\Node\Expr\New_),
Object(PhpParser\Node\Name\FullyQualified))
#23 /Users/staabm/workspace/phpstan-src/src/Analyser/MutatingScope.php(903): PHPStan\Analyser\MutatingScope->resolveType('new \\Hoa\\File\\R...',
Object(PhpParser\Node\Expr\New_))
#24 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(5814): PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\New_))
#25 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(3412): PHPStan\Analyser\NodeScopeResolver->processArgs(Object(PhpParser\Node\Stmt\Expression),
Object(PHPStan\Reflection\ResolvedMethodReflection), NULL, Object(PHPStan\Reflection\ResolvedFunctionVariantWithOriginal), Object(PhpParser\Node\Expr\StaticCall),
Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage), Object(Closure), Object(PHPStan\Analyser\ExpressionContext), NULL)
#26 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(2732): PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Stmt\Expression),
Object(PhpParser\Node\Expr\StaticCall), Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage), Object(Closure),
Object(PHPStan\Analyser\ExpressionContext))
#27 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(6513):
PHPStan\Analyser\NodeScopeResolver->{closure:PHPStan\Analyser\NodeScopeResolver::processExprNode():2724}(Object(PHPStan\Analyser\MutatingScope))
#28 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(2716):
PHPStan\Analyser\NodeScopeResolver->processAssignVar(Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage),
Object(PhpParser\Node\Stmt\Expression), Object(PhpParser\Node\Expr\StaticPropertyFetch), Object(PhpParser\Node\Expr\AssignOp\Coalesce), Object(Closure),
Object(PHPStan\Analyser\ExpressionContext), Object(Closure), true)
#29 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(972): PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Stmt\Expression),
Object(PhpParser\Node\Expr\AssignOp\Coalesce), Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage), Object(Closure),
Object(PHPStan\Analyser\ExpressionContext))
#30 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(465): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Expression),
Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage), Object(Closure), Object(PHPStan\Analyser\StatementContext))
#31 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(423):
PHPStan\Analyser\NodeScopeResolver->processStmtNodesInternalWithoutFlushingPendingFibers(Object(PhpParser\Node\Stmt\ClassMethod), Array,
Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage), Object(Closure), Object(PHPStan\Analyser\StatementContext))
#32 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(824):
PHPStan\Analyser\NodeScopeResolver->processStmtNodesInternal(Object(PhpParser\Node\Stmt\ClassMethod), Array, Object(PHPStan\Analyser\MutatingScope),
Object(PHPStan\Analyser\ExpressionResultStorage), Object(Closure), Object(PHPStan\Analyser\StatementContext))
#33 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(465): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\ClassMethod),
Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage), Object(PHPStan\Node\ClassStatementsGatherer),
Object(PHPStan\Analyser\StatementContext))
#34 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(423):
PHPStan\Analyser\NodeScopeResolver->processStmtNodesInternalWithoutFlushingPendingFibers(Object(PhpParser\Node\Stmt\Class_), Array, Object(PHPStan\Analyser\MutatingScope),
Object(PHPStan\Analyser\ExpressionResultStorage), Object(PHPStan\Node\ClassStatementsGatherer), Object(PHPStan\Analyser\StatementContext))
#35 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(1067):
PHPStan\Analyser\NodeScopeResolver->processStmtNodesInternal(Object(PhpParser\Node\Stmt\Class_), Array, Object(PHPStan\Analyser\MutatingScope),
Object(PHPStan\Analyser\ExpressionResultStorage), Object(PHPStan\Node\ClassStatementsGatherer), Object(PHPStan\Analyser\StatementContext))
#36 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(465): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Class_),
Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage), Object(PHPStan\Analyser\FileAnalyserCallback),
Object(PHPStan\Analyser\StatementContext))
#37 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(423):
PHPStan\Analyser\NodeScopeResolver->processStmtNodesInternalWithoutFlushingPendingFibers(Object(PhpParser\Node\Stmt\Namespace_), Array,
Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage), Object(PHPStan\Analyser\FileAnalyserCallback),
Object(PHPStan\Analyser\StatementContext))
#38 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(1015):
PHPStan\Analyser\NodeScopeResolver->processStmtNodesInternal(Object(PhpParser\Node\Stmt\Namespace_), Array, Object(PHPStan\Analyser\MutatingScope),
Object(PHPStan\Analyser\ExpressionResultStorage), Object(PHPStan\Analyser\FileAnalyserCallback), Object(PHPStan\Analyser\StatementContext))
#39 /Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php(335): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Namespace_),
Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionResultStorage), Object(PHPStan\Analyser\FileAnalyserCallback),
Object(PHPStan\Analyser\StatementContext))
#40 /Users/staabm/workspace/phpstan-src/src/Analyser/FileAnalyser.php(117): PHPStan\Analyser\NodeScopeResolver->processNodes(Array, Object(PHPStan\Analyser\MutatingScope),
Object(PHPStan\Analyser\FileAnalyserCallback))
#41 /Users/staabm/workspace/phpstan-src/src/Command/WorkerCommand.php(236): PHPStan\Analyser\FileAnalyser->analyseFile('/Users/staabm/w...', Array,
Object(PHPStan\Rules\LazyRegistry), Object(PHPStan\Collectors\Registry), NULL)
#42 /Users/staabm/workspace/phpstan-src/vendor/evenement/evenement/src/EventEmitterTrait.php(143):
PHPStan\Command\WorkerCommand::{closure:PHPStan\Command\WorkerCommand::runWorker():212}(Array)
#43 /Users/staabm/workspace/phpstan-src/vendor/clue/ndjson-react/src/Decoder.php(139): Evenement\EventEmitter->emit('data', Array)
#44 /Users/staabm/workspace/phpstan-src/vendor/evenement/evenement/src/EventEmitterTrait.php(143): Clue\React\NDJson\Decoder->handleData(Array)
#45 /Users/staabm/workspace/phpstan-src/vendor/react/stream/src/Util.php(71): Evenement\EventEmitter->emit('data', Array)
#46 /Users/staabm/workspace/phpstan-src/vendor/evenement/evenement/src/EventEmitterTrait.php(143):
React\Stream\Util::{closure:React\Stream\Util::forwardEvents():70}('{"action":"anal...')
#47 /Users/staabm/workspace/phpstan-src/vendor/react/stream/src/DuplexResourceStream.php(209): Evenement\EventEmitter->emit('data', Array)
#48 /Users/staabm/workspace/phpstan-src/vendor/react/event-loop/src/StreamSelectLoop.php(246): React\Stream\DuplexResourceStream->handleData(Resource id #6558)
#49 /Users/staabm/workspace/phpstan-src/vendor/react/event-loop/src/StreamSelectLoop.php(213): React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)
#50 /Users/staabm/workspace/phpstan-src/src/Command/WorkerCommand.php(155): React\EventLoop\StreamSelectLoop->run()
#51 /Users/staabm/workspace/phpstan-src/vendor/symfony/console/Command/Command.php(298):
PHPStan\Command\WorkerCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#52 /Users/staabm/workspace/phpstan-src/vendor/symfony/console/Application.php(1040):
Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#53 /Users/staabm/workspace/phpstan-src/vendor/symfony/console/Application.php(301):
Symfony\Component\Console\Application->doRunCommand(Object(PHPStan\Command\WorkerCommand), Object(Symfony\Component\Console\Input\ArgvInput),
Object(Symfony\Component\Console\Output\ConsoleOutput))
#54 /Users/staabm/workspace/phpstan-src/vendor/symfony/console/Application.php(171):
Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#55 /Users/staabm/workspace/phpstan-src/bin/phpstan(136): Symfony\Component\Console\Application->run()
#56 /Users/staabm/workspace/phpstan-src/bin/phpstan(137): {closure:/Users/staabm/workspace/phpstan-src/bin/phpstan:14}()
#57 {main}
-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ERROR] Found 1 error
⚠️ Result is incomplete because of severe errors. ⚠️
Fix these errors first and then re-run PHPStan
to get all reported errors.
Elapsed time: 11.29 seconds
Used memory: 4.75 GB
➜ phpstan-src git:(2.1.x) php -v
PHP 8.5.3 (cli) (built: Feb 10 2026 18:25:51) (NTS)
Copyright (c) The PHP Group
Built by Shivam Mathur
Zend Engine v4.5.3, Copyright (c) Zend Technologies
with Zend OPcache v8.5.3, Copyright (c), by Zend Technologies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment