llaville / php-compatinfo

Library that find out the minimum version and the extensions required for a piece of code to run
https://llaville.github.io/php-compatinfo/7.1/
Other
372 stars 20 forks source link

Uncaught Error: Object of class PhpParser\Node\UnionType could not be converted to string #292

Closed remicollet closed 3 years ago

remicollet commented 3 years ago

Trying to analyse https://github.com/FriendsOfPHP/proxy-manager-lts

Stack trace:
#0 /usr/share/php/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php(110): Bartlett\CompatInfo\PhpParser\NodeVisitor\VersionResolverVisitor->resolveTypeVersions(Object(PhpParser\Node\UnionType))
#1 /usr/share/php/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php(88): Bartlett\CompatInfo\PhpParser\NodeVisitor\VersionResolverVisitor->handleParameters(Object(PhpParser\Node\Stmt\ClassMethod), Array)
#2 /usr/share/php/PhpParser4/NodeTraverser.php(200): Bartlett\CompatInfo\PhpParser\NodeVisitor\VersionResolverVisitor->enterNode(Object(PhpParser\Node\Stmt\ClassMethod))
#3 /usr/share/php/PhpParser4/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray(Array)
#4 /usr/share/php/PhpParser4/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Class_) in /usr/share/php/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php on line 169
llaville commented 3 years ago

Could you give your platform context (php and compatinfo version) ?

With PHP 7.2.34 and phpCompatInfo version 5.4.2 DB version 2.19.0 built Oct 03 2020 15:01:59 UTC, I'm able to run analysis on https://github.com/FriendsOfPHP/proxy-manager-lts/archive/v1.0.3.tar.gz source code.

See below

Data Source Analysed

Directories                                         36
Files                                              141
Errors                                               0

Extensions Analysis

    Extension  REF        EXT min/Max PHP min/Max
    Core       Core       7.0.2       7.1.0
    Reflection Reflection 5.0.0       7.1.0
    pcre       pcre       4.0.0       4.0.0
    spl        spl        5.1.0       5.3.0
    standard   standard   5.2.1       5.2.1
    Total [5]                         7.1.0

Namespaces Analysis

    Namespace                                                                        REF      EXT min/Max PHP min/Max
    ProxyManager                                                                     standard 5.2.1       7.1.0
    ProxyManager\Autoloader                                                          standard 4.0.0       7.0.0
    ProxyManager\Exception                                                           Core     7.0.2       7.0.2
    ProxyManager\Factory                                                             Core     5.3.9       7.1.0
    ProxyManager\Factory\RemoteObject                                                user                 7.0.0
    ProxyManager\Factory\RemoteObject\Adapter                                        user                 7.0.0
    ProxyManager\FileLocator                                                         standard 4.0.6       7.0.0
    ProxyManager\Generator                                                           user                 7.1.0
    ProxyManager\GeneratorStrategy                                                   Core     5.3.0       7.0.2
    ProxyManager\Generator\Util                                                      standard 4.0.0       7.0.0
    ProxyManager\Inflector                                                           standard 4.0.0       7.0.0
    ProxyManager\Inflector\Util                                                      standard 4.0.0       7.0.0alpha1
    ProxyManager\Proxy                                                               user                 7.1.0
    ProxyManager\ProxyGenerator                                                      Core     5.0.0       7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator      user                 7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\Util standard 4.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator         user                 5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\Util    user                 7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptor\MethodGenerator                    user                 5.3.0
    ProxyManager\ProxyGenerator\AccessInterceptor\PropertyGenerator                  user                 5.4.0
    ProxyManager\ProxyGenerator\Assertion                                            spl      5.1.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator                     user                 7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator                   user                 7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator               Core     5.0.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\PropertyGenerator             Core     4.0.0       7.0.0
    ProxyManager\ProxyGenerator\LazyLoading\MethodGenerator                          user                 5.4.0
    ProxyManager\ProxyGenerator\NullObject\MethodGenerator                           user                 7.0.0alpha1
    ProxyManager\ProxyGenerator\PropertyGenerator                                    user                 7.0.0alpha1
    ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator                         standard 4.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\RemoteObject\PropertyGenerator                       user                 5.3.0
    ProxyManager\ProxyGenerator\Util                                                 Core     5.2.7       7.1.0
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator                          standard 5.0.0       7.1.0
    ProxyManager\Proxy\Exception                                                     user                 5.3.0
    ProxyManager\Signature                                                           standard 4.0.0       7.1.0
    ProxyManager\Signature\Exception                                                 user                 5.3.0
    ProxyManager\Stub                                                                user                 5.3.0
    Total [36]                                                                                            7.1.0

Interfaces Analysis

    Interface                                                 REF        EXT min/Max PHP min/Max
    Closure                                                   Core       5.3.0       5.3.0
    ProxyManager\Autoloader\AutoloaderInterface               user                   7.0.0
    ProxyManager\Exception\ExceptionInterface                 Core       7.0.2       7.0.2
    ProxyManager\Factory\RemoteObject\AdapterInterface        user                   7.0.0
    ProxyManager\FileLocator\FileLocatorInterface             user                   7.0.0
    ProxyManager\GeneratorStrategy\GeneratorStrategyInterface user                   7.0.0alpha1
    ProxyManager\Inflector\ClassNameInflectorInterface        user                   7.0.0
    ProxyManager\ProxyGenerator\ProxyGeneratorInterface       user                   5.3.0
    ProxyManager\Proxy\AccessInterceptorInterface             user                   7.1.0
    ProxyManager\Proxy\AccessInterceptorValueHolderInterface  user                   7.1.0
    ProxyManager\Proxy\FallbackValueHolderInterface           user                   5.3.0
    ProxyManager\Proxy\GhostObjectInterface                   user                   7.1.0
    ProxyManager\Proxy\LazyLoadingInterface                   user                   7.1.0
    ProxyManager\Proxy\NullObjectInterface                    user                   5.3.0
    ProxyManager\Proxy\ProxyInterface                         user                   4.0.0
    ProxyManager\Proxy\RemoteObjectInterface                  user                   5.3.0
    ProxyManager\Proxy\SmartReferenceInterface                user                   5.3.0
    ProxyManager\Proxy\ValueHolderInterface                   user                   5.3.0
    ProxyManager\Proxy\VirtualProxyInterface                  user                   5.3.0
    ProxyManager\Signature\ClassSignatureGeneratorInterface   user                   7.0.0alpha1
    ProxyManager\Signature\Exception\ExceptionInterface       user                   4.0.0
    ProxyManager\Signature\SignatureCheckerInterface          user                   7.1.0
    ProxyManager\Signature\SignatureGeneratorInterface        user                   7.0.0alpha1
    ReflectionClass                                           Reflection 5.0.0       5.0.0
    ReflectionMethod                                          Reflection 5.0.0       5.0.0
    ReflectionProperty                                        Reflection 5.0.0       5.0.0
    Throwable                                                 Core       7.0.2       7.0.2
    Total [27]                                                                       7.1.0

No trait found

Classes Analysis

    Class                                                                                                 REF        EXT min/Max PHP min/Max
    BadMethodCallException                                                                                spl        5.1.0       5.1.0
    Closure                                                                                               Core       5.3.0       5.3.0
    ErrorException                                                                                        Core       5.1.0       5.1.0
    InvalidArgumentException                                                                              spl        5.1.0       5.1.0
  U Laminas\Code\Generator\ClassGenerator                                                                 user                   5.3.0
  U Laminas\Code\Generator\DocBlockGenerator                                                              user                   5.3.0
  U Laminas\Code\Generator\MethodGenerator                                                                user                   5.3.0
  U Laminas\Code\Generator\ParameterGenerator                                                             user                   5.3.0
  U Laminas\Code\Generator\PropertyGenerator                                                              user                   5.3.0
  U Laminas\Code\Reflection\MethodReflection                                                              user                   5.3.0
  U Laminas\Code\Reflection\ParameterReflection                                                           user                   5.3.0
  U Laminas\Server\Client                                                                                 user                   5.3.0
    ProxyManager\Autoloader\Autoloader                                                                    standard   4.0.0       7.0.0
  U ProxyManager\Autoloader\AutoloaderInterface                                                           user                   5.3.0
    ProxyManager\Configuration                                                                            standard   5.2.1       7.1.0
    ProxyManager\Exception\DisabledMethodException                                                        spl        5.1.0       7.0.0
    ProxyManager\Exception\FileNotWritableException                                                       Core       7.0.2       7.0.2
    ProxyManager\Exception\InvalidProxiedClassException                                                   spl        5.1.0       7.0.0alpha1
    ProxyManager\Exception\InvalidProxyDirectoryException                                                 spl        5.1.0       5.3.0
    ProxyManager\Exception\UnsupportedProxiedClassException                                               spl        5.1.0       7.0.0alpha1
    ProxyManager\Factory\AbstractBaseFactory                                                              Core       5.3.9       7.1.0
    ProxyManager\Factory\AccessInterceptorScopeLocalizerFactory                                           user                   7.1.0
    ProxyManager\Factory\AccessInterceptorValueHolderFactory                                              user                   7.1.0
    ProxyManager\Factory\LazyLoadingGhostFactory                                                          Core       5.3.0       7.1.0
    ProxyManager\Factory\LazyLoadingValueHolderFactory                                                    Core       5.3.0       7.1.0
    ProxyManager\Factory\NullObjectFactory                                                                user                   7.1.0
    ProxyManager\Factory\RemoteObjectFactory                                                              Core       4.0.0       7.1.0
  U ProxyManager\Factory\RemoteObject\AdapterInterface                                                    user                   5.3.0
    ProxyManager\Factory\RemoteObject\Adapter\BaseAdapter                                                 user                   7.0.0
    ProxyManager\Factory\RemoteObject\Adapter\JsonRpc                                                     user                   7.0.0
    ProxyManager\Factory\RemoteObject\Adapter\Soap                                                        user                   7.0.0
    ProxyManager\Factory\RemoteObject\Adapter\XmlRpc                                                      user                   7.0.0
    ProxyManager\FileLocator\FileLocator                                                                  standard   4.0.6       7.0.0
  U ProxyManager\FileLocator\FileLocatorInterface                                                         user                   5.3.0
    ProxyManager\GeneratorStrategy\BaseGeneratorStrategy                                                  user                   7.0.0alpha1
    ProxyManager\GeneratorStrategy\EvaluatingGeneratorStrategy                                            Core       5.3.0       7.0.0alpha1
    ProxyManager\GeneratorStrategy\FileWriterGeneratorStrategy                                            Core       5.1.0       7.0.2
  U ProxyManager\GeneratorStrategy\GeneratorStrategyInterface                                             user                   5.3.0
    ProxyManager\Generator\ClassGenerator                                                                 user                   5.3.0
    ProxyManager\Generator\MagicMethodGenerator                                                           user                   7.0.0
  U ProxyManager\Generator\MethodGenerator                                                                user                   7.1.0
    ProxyManager\Generator\Util\ClassGeneratorUtils                                                       user                   4.0.0
    ProxyManager\Generator\Util\IdentifierSuffixer                                                        pcre       4.0.0       7.0.0alpha1
    ProxyManager\Generator\Util\ProxiedMethodReturnExpression                                             user                   4.0.0
    ProxyManager\Generator\Util\UniqueIdentifierGenerator                                                 standard   4.0.0       7.0.0
    ProxyManager\Inflector\ClassNameInflector                                                             standard   4.0.0       7.0.0
  U ProxyManager\Inflector\ClassNameInflectorInterface                                                    user                   5.3.0
    ProxyManager\Inflector\Util\ParameterEncoder                                                          standard   4.0.0       7.0.0alpha1
    ProxyManager\Inflector\Util\ParameterHasher                                                           standard   4.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizerGenerator                                  user                   7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\BindProxyProperties       user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\InterceptedMethod         user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicClone                user                   7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicGet                  user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicIsset                user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicSet                  user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicSleep                user                   5.3.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicUnset                user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\StaticProxyConstructor    user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\Util\InterceptorGenerator standard   4.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolderGenerator                                     user                   7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\InterceptedMethod            user                   5.3.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicClone                   user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicGet                     user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicIsset                   user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicSet                     user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicUnset                   user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\StaticProxyConstructor       user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\Util\InterceptorGenerator    user                   7.1.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\MethodGenerator\MagicWakeup                             user                   5.3.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\MethodGenerator\SetMethodPrefixInterceptor              user                   5.3.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\MethodGenerator\SetMethodSuffixInterceptor              user                   5.3.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\PropertyGenerator\MethodPrefixInterceptors              user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\PropertyGenerator\MethodSuffixInterceptors              user                   5.4.0
    ProxyManager\ProxyGenerator\Assertion\CanProxyAssertion                                               spl        5.1.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingGhostGenerator                                                 user                   7.1.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\CallInitializer                          user                   7.0.0alpha1
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\GetProxyInitializer                      user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\InitializeProxy                          user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\IsProxyInitialized                       user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicClone                               user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicGet                                 user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicIsset                               user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicSet                                 user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicSleep                               user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicUnset                               user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\SetProxyInitializer                      user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\SkipDestructor                           user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\InitializationTracker                  user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\InitializerProperty                    user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\PrivatePropertiesMap                   user                   7.0.0alpha1
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\ProtectedPropertiesMap                 user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator                                           standard   4.0.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\GetProxyInitializer                user                   5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\InitializeProxy                    user                   5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\IsProxyInitialized                 user                   5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\LazyLoadingMethodInterceptor       standard   4.0.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicClone                         Reflection 5.0.0       5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicGet                           user                   7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicIsset                         Reflection 5.0.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicSet                           user                   5.4.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicSleep                         Core       4.2.0       5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicUnset                         user                   5.4.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\SetProxyInitializer                Core       4.0.0       5.5.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\SkipDestructor                     user                   5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\PropertyGenerator\InitializerProperty              user                   7.0.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\PropertyGenerator\ValueHolderProperty              Core       4.0.0       5.3.0
    ProxyManager\ProxyGenerator\LazyLoading\MethodGenerator\StaticProxyConstructor                        user                   5.4.0
    ProxyManager\ProxyGenerator\NullObjectGenerator                                                       user                   7.1.0
    ProxyManager\ProxyGenerator\NullObject\MethodGenerator\NullObjectMethodInterceptor                    user                   5.3.0
  U ProxyManager\ProxyGenerator\NullObject\MethodGenerator\StaticProxyConstructor                         user                   7.0.0alpha1
  U ProxyManager\ProxyGenerator\PropertyGenerator\PublicPropertiesMap                                     user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\RemoteObjectGenerator                                                     user                   7.1.0
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\MagicGet                                     user                   5.4.0
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\MagicIsset                                   user                   5.4.0
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\MagicSet                                     user                   5.4.0
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\MagicUnset                                   user                   5.4.0
    ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\RemoteObjectMethod                           standard   4.0.0       7.0.0alpha1
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\StaticProxyConstructor                       user                   5.4.0
  U ProxyManager\ProxyGenerator\RemoteObject\PropertyGenerator\AdapterProperty                            user                   5.3.0
    ProxyManager\ProxyGenerator\Util\GetMethodIfExists                                                    user                   5.0.0
    ProxyManager\ProxyGenerator\Util\Properties                                                           Core       5.2.7       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\ProxiedMethodsFilter                                                 standard   4.0.0       7.1.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator                                                 spl        5.1.0       7.1.0
    ProxyManager\ProxyGenerator\Util\UnsetPropertiesGenerator                                             standard   4.0.0       7.0.0
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\Constructor                                   standard   5.0.0       7.1.0
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\GetWrappedValueHolderValue                    user                   5.3.0
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\MagicSleep                                    user                   5.3.0
    ProxyManager\Proxy\Exception\RemoteObjectException                                                    spl        5.1.0       5.1.0
  U ProxyManager\Signature\ClassSignatureGenerator                                                        user                   7.0.0alpha1
  U ProxyManager\Signature\ClassSignatureGeneratorInterface                                               user                   5.3.0
    ProxyManager\Signature\Exception\InvalidSignatureException                                            spl        5.1.0       5.3.0
    ProxyManager\Signature\Exception\MissingSignatureException                                            spl        5.1.0       5.3.0
    ProxyManager\Signature\SignatureChecker                                                               standard   4.0.0       7.1.0
  U ProxyManager\Signature\SignatureCheckerInterface                                                      user                   5.3.0
  U ProxyManager\Signature\SignatureGenerator                                                             user                   7.0.0alpha1
  U ProxyManager\Signature\SignatureGeneratorInterface                                                    user                   5.3.0
    ProxyManager\Stub\EmptyClassStub                                                                      user                   4.0.0
    ProxyManager\Version                                                                                  user                   5.0.0
    ReflectionClass                                                                                       Reflection 5.0.0       5.0.0
    ReflectionMethod                                                                                      Reflection 5.0.0       5.0.0
    ReflectionProperty                                                                                    Reflection 5.0.0       5.0.0
  U Symfony\Component\Filesystem\Filesystem                                                               user                   5.3.0
  U array                                                                                                 user                   4.0.0
  U bool                                                                                                  user                   4.0.0
  U int                                                                                                   user                   4.0.0
    self                                                                                                  Core       5.0.0       5.0.0
  U string                                                                                                user                   4.0.0
    Total [148]                                                                                                                  7.1.0

No generator found

Functions Analysis

    Function                                                                                                                                        REF        EXT min/Max PHP min/Max
    ProxyManager\Exception\InvalidProxiedClassException\abstractProtectedMethodsNotSupported\closure-39-41                                          Reflection 5.0.0       7.0.0alpha1
    ProxyManager\Exception\InvalidProxiedClassException\abstractProtectedMethodsNotSupported\closure-44-46                                          Reflection 5.0.0       7.0.0alpha1
    ProxyManager\Exception\UnsupportedProxiedClassException\nonReferenceableLocalizedReflectionProperties\closure-39-41                             Reflection 5.0.0       7.0.0alpha1
    ProxyManager\GeneratorStrategy\FileWriterGeneratorStrategy\__construct\closure-30-34                                                            Core       5.1.0       7.0.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizerGenerator\buildMethodInterceptor\closure-92-98                                       Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizerGenerator\generate\closure-61-63                                                     user                   7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\Util\InterceptorGenerator\createInterceptedMethodBody\closure-70-72 user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolderGenerator\buildMethodInterceptor\closure-131-138                                        Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolderGenerator\generate\closure-76-78                                                        user                   7.1.0
    ProxyManager\ProxyGenerator\Assertion\CanProxyAssertion\hasNoAbstractProtectedMethods\closure-61-63                                             Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingGhostGenerator\generate\closure-82-84                                                                    user                   7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingGhostGenerator\getAbstractProxiedMethods\closure-149-157                                                 Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\CallInitializer\getPropertyDefaultsAssignments\closure-116-119                     Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator\buildLazyLoadingMethodInterceptor\closure-126-150                                   standard   5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator\generate\closure-92-94                                                              user                   7.1.0
    ProxyManager\ProxyGenerator\NullObject\MethodGenerator\StaticProxyConstructor\__construct\closure-33-35                                         Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\RemoteObjectGenerator\generate\closure-60-62                                                                        user                   7.1.0
    ProxyManager\ProxyGenerator\RemoteObjectGenerator\generate\closure-65-71                                                                        Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\fromReflectionClass\closure-49-57                                                                   standard   5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\fromReflectionClass\closure-49-57\closure-52-55                                                     Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\onlyNonReferenceableProperties\closure-77-87                                                        Core       5.2.7       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\onlyNullableProperties\closure-125-133                                                              Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\withoutNonReferenceableProperties\closure-101-118                                                   standard   5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\ProxiedMethodsFilter\doFilter\closure-68-73                                                                    standard   5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\getPublicAccessSimulationCode\closure-84-84                                               user                   7.0.0
    ProxyManager\ProxyGenerator\Util\UnsetPropertiesGenerator\generateUnsetStatement\closure-94-96                                                  Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\Constructor\generateOriginalConstructorCall\closure-64-66                               user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\Constructor\getConstructor\closure-76-81                                                Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\Constructor\getConstructor\closure-84-86                                                Reflection 5.0.0       7.0.0alpha1
    array_filter                                                                                                                                    standard   4.0.6       4.0.6
    array_flip                                                                                                                                      standard   4.0.0       4.0.0
    array_key_exists                                                                                                                                standard   4.0.7       4.0.7
    array_keys                                                                                                                                      standard   4.0.0       4.0.0
    array_map                                                                                                                                       standard   4.0.6       4.0.6
    array_merge                                                                                                                                     standard   4.0.0       4.0.0
    array_values                                                                                                                                    standard   4.0.0       4.0.0
    assert                                                                                                                                          standard   4.0.0       4.0.0
    base64_encode                                                                                                                                   standard   4.0.0       4.0.0
    class_exists                                                                                                                                    Core       5.0.0       5.0.0
    count                                                                                                                                           standard   4.0.0       4.0.0
    error_reporting                                                                                                                                 Core       4.0.0       4.0.0
    file_exists                                                                                                                                     standard   4.0.0       4.0.0
    func_get_arg                                                                                                                                    Core       4.0.0       4.0.0
    func_num_args                                                                                                                                   Core       4.0.0       4.0.0
    get_class                                                                                                                                       Core       4.0.0       4.0.0
    implode                                                                                                                                         standard   4.0.0       4.0.0
    ini_get                                                                                                                                         standard   4.0.0       4.0.0
    is_a                                                                                                                                            Core       5.3.9       5.3.9
    is_int                                                                                                                                          standard   4.0.0       4.0.0
    is_object                                                                                                                                       standard   4.0.0       4.0.0
    is_string                                                                                                                                       standard   4.0.0       4.0.0
    ltrim                                                                                                                                           standard   4.0.0       4.0.0
    md5                                                                                                                                             standard   4.0.0       4.0.0
    preg_match                                                                                                                                      pcre       4.0.0       4.0.0
    realpath                                                                                                                                        standard   4.0.0       4.0.0
    reset                                                                                                                                           standard   4.0.0       4.0.0
    restore_error_handler                                                                                                                           Core       4.0.1       4.0.1
    serialize                                                                                                                                       standard   4.0.0       4.0.0
    set_error_handler                                                                                                                               Core       4.0.1       4.0.1
    sha1                                                                                                                                            standard   4.3.0       4.3.0
    sprintf                                                                                                                                         standard   4.0.0       4.0.0
    str_replace                                                                                                                                     standard   4.0.0       4.0.0
    strlen                                                                                                                                          Core       4.0.0       4.0.0
    strrpos                                                                                                                                         standard   4.0.0       4.0.0
    strtolower                                                                                                                                      standard   4.0.0       4.0.0
    strtr                                                                                                                                           standard   4.0.0       4.0.0
    substr                                                                                                                                          standard   4.0.0       4.0.0
    sys_get_temp_dir                                                                                                                                standard   5.2.1       5.2.1
    uniqid                                                                                                                                          standard   4.0.0       4.0.0
    unlink                                                                                                                                          standard   4.0.0       4.0.0
    var_export                                                                                                                                      standard   4.2.0       4.2.0
    Total [71]
               7.1.0

Constants Analysis

    Constant                                                                                                       REF      EXT min/Max PHP min/Max
    DIRECTORY_SEPARATOR                                                                                            standard 4.0.6       4.0.6
    PHP_VERSION_ID                                                                                                 Core     5.2.7       5.2.7
    ProxyManager\Configuration\DEFAULT_PROXY_NAMESPACE                                                             user                 4.0.0
    ProxyManager\Exception\DisabledMethodException\NAME                                                            user                 4.0.0
    ProxyManager\Generator\Util\IdentifierSuffixer\DEFAULT_IDENTIFIER                                              user                 4.0.0
    ProxyManager\Generator\Util\IdentifierSuffixer\VALID_IDENTIFIER_FORMAT                                         user                 4.0.0
    ProxyManager\Generator\Util\UniqueIdentifierGenerator\DEFAULT_IDENTIFIER                                       user                 4.0.0
    ProxyManager\Generator\Util\UniqueIdentifierGenerator\VALID_IDENTIFIER_FORMAT                                  user                 4.0.0
    ProxyManager\Inflector\ClassNameInflectorInterface\PROXY_MARKER                                                user                 4.0.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\Util\InterceptorGenerator\TEMPLATE user                 4.0.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicClone\TEMPLATE                   user                 4.0.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\Util\InterceptorGenerator\TEMPLATE    user                 4.0.0
    ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\PrivatePropertiesMap\KEY_DEFAULT_VALUE          user                 4.0.0
    ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\ProtectedPropertiesMap\KEY_DEFAULT_VALUE        user                 4.0.0
    ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\RemoteObjectMethod\TEMPLATE                           user                 4.0.0
    ProxyManager\ProxyGenerator\Util\ProxiedMethodsFilter\DEFAULT_EXCLUDED                                         user                 5.4.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\OPERATION_GET                                            user                 4.0.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\OPERATION_ISSET                                          user                 4.0.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\OPERATION_SET                                            user                 4.0.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\OPERATION_UNSET                                          user                 4.0.0
    ProxyManager\ProxyGenerator\Util\UnsetPropertiesGenerator\CLOSURE_TEMPLATE                                     user                 4.0.0
    __DIR__                                                                                                        Core     5.3.0       5.3.0
    false                                                                                                          Core     4.0.0       4.0.0
    null                                                                                                           Core     4.0.0       4.0.0
    true                                                                                                           Core     4.0.0       4.0.0
    Total [25]                                                                                                                          5.4.0

No condition found

Requires PHP 7.1.0 (min)
remicollet commented 3 years ago

PHP 7.4.14 (cli) (built: Jan 5 2021 10:45:06) ( NTS )

phpCompatInfo version 5.4.2 DB version 2.19.0 built Oct 05 2020 09:18:56 CEST

llaville commented 3 years ago

Sorry I cannot reproduced this error.

I've the same results with PHP 7.2.34, 7.3.26, and 7.4.14 (with almost the same dependeny versions installed with Composer except for PHP 7.2 and hoa/* components that are used only by humbug/box)

landy2005 commented 3 years ago

PHP 7.4.14 (cli) (built: Jan 20 2021 22:21:45) ( NTS ) phpCompatInfo version 5.4.2 DB version 2.19.0 built Oct 03 2020 15:01:59 UTC

I get same issue:

$ vendor/bin/phpcompatinfo analyser:run .
PHP Fatal error:  Uncaught Error: Object of class PhpParser\Node\UnionType could not be converted to string in /Volumes/Code/observium-local/vendor/bartlett/php-compatinfo/src/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php:169
Stack trace:
#0 /Volumes/Code/observium-local/vendor/bartlett/php-compatinfo/src/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php(110): Bartlett\CompatInfo\PhpParser\NodeVisitor\VersionResolverVisitor->resolveTypeVersions(Object(PhpParser\Node\UnionType))
#1 /Volumes/Code/observium-local/vendor/bartlett/php-compatinfo/src/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php(88): Bartlett\CompatInfo\PhpParser\NodeVisitor\VersionResolverVisitor->handleParameters(Object(PhpParser\Node\Stmt\Function_), Array)
#2 /Volumes/Code/observium-local/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200): Bartlett\CompatInfo\PhpParser\NodeVisitor\VersionResolverVisitor->enterNode(Object(PhpParser\Node\Stmt\Function_))
#3 /Volumes/Code/observium-local/ven in /Volumes/Code/observium-local/vendor/bartlett/php-compatinfo/src/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php on line 169

Fatal error: Uncaught Error: Object of class PhpParser\Node\UnionType could not be converted to string in /Volumes/Code/observium-local/vendor/bartlett/php-compatinfo/src/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php on line 169

Error: Object of class PhpParser\Node\UnionType could not be converted to string in /Volumes/Code/observium-local/vendor/bartlett/php-compatinfo/src/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php on line 169

Call Stack:
    0.0002     399120   1. {main}() /Volumes/Code/observium-local/vendor/bartlett/php-compatinfo/bin/phpcompatinfo:0
    0.5815    5348280   2. Bartlett\CompatInfo\Console\Application->run($input = ???, $output = ???) /Volumes/Code/observium-local/vendor/bartlett/php-compatinfo/bin/phpcompatinfo:47
    0.5828    5518736   3. Bartlett\CompatInfo\Console\Application->run($input = class Bartlett\CompatInfo\Console\Input\Input { private ${Symfony\Component\Console\Input\ArgvInput}tokens = [0 => 'analyser:run', 1 => '.']; private ${Symfony\Component\Console\Input\ArgvInput}parsed = []; protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 2; private $hasAnArrayArgument = FALSE; private $hasOptional = FALSE; private $options = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'analyser:run', 'source' => '.']; protected $interactive = TRUE }, $output = class Bartlett\CompatInfo\Console\Output\Output { private ${Symfony\Component\Console\Output\ConsoleOutput}stderr = class Symfony\Component\Console\Output\StreamOutput { private $stream = resource(295) of type (stream); private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... } }; private ${Symfony\Component\Console\Output\ConsoleOutput}consoleSectionOutputs = []; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(287) of type (stream); private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } } }) /Volumes/Code/observium-local/vendor/bartlett/php-compatinfo/src/Bartlett/CompatInfo/Console/Application.php:193
    0.5890    5523696   4. Bartlett\CompatInfo\Console\Application->doRun($input = class Bartlett\CompatInfo\Console\Input\Input { private ${Symfony\Component\Console\Input\ArgvInput}tokens = [0 => 'analyser:run', 1 => '.']; private ${Symfony\Component\Console\Input\ArgvInput}parsed = []; protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 2; private $hasAnArrayArgument = FALSE; private $hasOptional = FALSE; private $options = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'analyser:run', 'source' => '.']; protected $interactive = TRUE }, $output = class Bartlett\CompatInfo\Console\Output\Output { private ${Symfony\Component\Console\Output\ConsoleOutput}stderr = class Symfony\Component\Console\Output\StreamOutput { private $stream = resource(295) of type (stream); private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... } }; private ${Symfony\Component\Console\Output\ConsoleOutput}consoleSectionOutputs = []; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(287) of type (stream); private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } } }) /Volumes/Code/observium-local/vendor/symfony/console/Application.php:166
    0.5895    5551680   5. Bartlett\CompatInfo\Console\Application->doRunCommand($command = class Bartlett\CompatInfo\Console\Command { protected $enabled = TRUE; private ${Symfony\Component\Console\Command\Command}application = class Bartlett\CompatInfo\Console\Application { private $container = class Symfony\Component\DependencyInjection\ContainerBuilder { ... }; private $eventDispatcher = class Bartlett\CompatInfo\Event\Dispatcher\EventDispatcher { ... }; private ${Symfony\Component\Console\Application}commands = [...]; private ${Symfony\Component\Console\Application}wantHelps = FALSE; private ${Symfony\Component\Console\Application}runningCommand = ...; private ${Symfony\Component\Console\Application}name = 'phpCompatInfo'; private ${Symfony\Component\Console\Application}version = '5.4.2'; private ${Symfony\Component\Console\Application}commandLoader = NULL; private ${Symfony\Component\Console\Application}catchExceptions = TRUE; private ${Symfony\Component\Console\Application}autoExit = TRUE; private ${Symfony\Component\Console\Application}definition = class Symfony\Component\Console\Input\InputDefinition { ... }; private ${Symfony\Component\Console\Application}helperSet = class Symfony\Component\Console\Helper\HelperSet { ... }; private ${Symfony\Component\Console\Application}dispatcher = class Bartlett\CompatInfo\Event\Dispatcher\EventDispatcher { ... }; private ${Symfony\Component\Console\Application}terminal = class Symfony\Component\Console\Terminal { ... }; private ${Symfony\Component\Console\Application}defaultCommand = 'list'; private ${Symfony\Component\Console\Application}singleCommand = FALSE; private ${Symfony\Component\Console\Application}initialized = TRUE; private ${Symfony\Component\Console\Application}signalRegistry = class Symfony\Component\Console\SignalRegistry\SignalRegistry { ... }; private ${Symfony\Component\Console\Application}signalsToDispatchEvent = [...] }; private ${Symfony\Component\Console\Command\Command}name = 'analyser:run'; private ${Symfony\Component\Console\Command\Command}processTitle = NULL; private ${Symfony\Component\Console\Command\Command}aliases = []; private ${Symfony\Component\Console\Command\Command}definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 1; private $hasAnArrayArgument = FALSE; private $hasOptional = FALSE; private $options = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}hidden = FALSE; private ${Symfony\Component\Console\Command\Command}help = ''; private ${Symfony\Component\Console\Command\Command}description = 'Analyse a data source and display results.'; private ${Symfony\Component\Console\Command\Command}fullDefinition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 2; private $hasAnArrayArgument = FALSE; private $hasOptional = FALSE; private $options = [...]; private $shortcuts = [...] }; private ${Symfony\Component\Console\Command\Command}ignoreValidationErrors = FALSE; private ${Symfony\Component\Console\Command\Command}code = class Closure { public $static = [...]; public $this = class Bartlett\CompatInfo\Console\CommandFactory { ... }; public $parameter = [...] }; private ${Symfony\Component\Console\Command\Command}synopsis = []; private ${Symfony\Component\Console\Command\Command}usages = []; private ${Symfony\Component\Console\Command\Command}helperSet = class Symfony\Component\Console\Helper\HelperSet { private $helpers = [...]; private $command = NULL } }, $input = class Bartlett\CompatInfo\Console\Input\Input { private ${Symfony\Component\Console\Input\ArgvInput}tokens = [0 => 'analyser:run', 1 => '.']; private ${Symfony\Component\Console\Input\ArgvInput}parsed = []; protected $definition = class Symfony\Component\Console\Input\InputDefinition { private $arguments = [...]; private $requiredCount = 2; private $hasAnArrayArgument = FALSE; private $hasOptional = FALSE; private $options = [...]; private $shortcuts = [...] }; protected $stream = NULL; protected $options = []; protected $arguments = ['command' => 'analyser:run', 'source' => '.']; protected $interactive = TRUE }, $output = class Bartlett\CompatInfo\Console\Output\Output { private ${Symfony\Component\Console\Output\ConsoleOutput}stderr = class Symfony\Component\Console\Output\StreamOutput { private $stream = resource(295) of type (stream); private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { ... } }; private ${Symfony\Component\Console\Output\ConsoleOutput}consoleSectionOutputs = []; private ${Symfony\Component\Console\Output\StreamOutput}stream = resource(287) of type (stream); private ${Symfony\Component\Console\Output\Output}verbosity = 32; private ${Symfony\Component\Console\Output\Output}formatter = class Symfony\Component\Console\Formatter\OutputFormatter { private $decorated = TRUE; private $styles = [...]; private $styleStack = class Symfony\Component\Console\Formatter\OutputFormatterStyleStack { ... } } }) /Volumes/Code/observium-local/vendor/symfony/console/Application.php:290
llaville commented 3 years ago

could you precise how you install compatinfo (and what is dependencies installed : composer show command results) and last but not least souce code analysed (where you get it and how installed). More details will help me to understand the reason of this issue, i cannot reproduced.

landy2005 commented 3 years ago

could you precise how you install compatinfo (and what is dependencies installed : composer show command results) and last but not least souce code analysed (where you get it and how installed). More details will help me to understand the reason of this issue, i cannot reproduced.

installed by phpstorm composer update mechanism (added into composer.json):

  "require": {
    "ext-mysqli": "*",
    "ext-zlib": "*",
    "ext-sockets": "*",
    "ext-json": "*",
    "bartlett/php-compatinfo": "^5.4"
  }

updated composer inside phpstorm as composer update --no-interaction --no-ansi

$ composer show
amphp/amp                             v2.5.2    A non-blocking concurrency framework for PHP applications.
amphp/byte-stream                     v1.8.0    A stream abstraction to make working with non-blocking I/O simple.
bartlett/php-compatinfo               5.4.2     Find out the minimum version and the extensions required for a piece of code to run
bartlett/php-compatinfo-db            2.19.0    Reference Database to be used with php-compatinfo library
bartlett/php-reflect                  4.4.1     Adds the ability to reverse-engineer classes, interfaces, functions, constants, namespaces, traits and more.
brick/math                            0.9.2     Arbitrary-precision arithmetic library
composer/package-versions-deprecated  1.11.99.1 Composer plugin that provides efficient querying for installed package versions (no runtime IO)
composer/semver                       3.2.4     Semver library that offers utilities, version constraint parsing and validation.
composer/xdebug-handler               1.4.5     Restarts a process without Xdebug.
dnoegel/php-xdg-base-dir              v0.1.1    implementation of xdg base directory specification for php
doctrine/collections                  1.6.7     PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.
felixfbecker/advanced-json-rpc        v3.2.0    A more advanced JSONRPC implementation
felixfbecker/language-server-protocol v1.5.0    PHP classes for the Language Server Protocol
justinrainbow/json-schema             5.2.10    A library to validate a json schema.
laminas/laminas-diagnostics           1.8.0     A set of components for performing diagnostic tests in PHP applications
laminas/laminas-zendframework-bridge  1.1.1     Alias legacy ZF class names to Laminas Project equivalents.
league/tactician                      v1.0.3    A small, flexible command bus. Handy for building service layers.
netresearch/jsonmapper                v2.1.0    Map nested JSON structures onto PHP classes
nikic/php-parser                      v4.10.4   A PHP parser written in PHP
openlss/lib-array2xml                 1.0.0     Array2XML conversion library credit to lalit.org
phpdocumentor/reflection-common       2.2.0     Common reflection classes used by phpdocumentor to reflect the code structure
phpdocumentor/reflection-docblock     5.2.2     With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.
phpdocumentor/type-resolver           1.4.0     A PSR-5 based resolver of Class names, Types and Structural Element Names
psr/container                         1.0.0     Common Container Interface (PHP FIG PSR-11)
psr/event-dispatcher                  1.0.0     Standard interfaces for event handling.
psr/log                               1.1.3     Common interface for logging libraries
ramsey/collection                     1.1.3     A PHP 7.2+ library for representing and manipulating collections.
ramsey/uuid                           4.1.1     A PHP library for generating and working with universally unique identifiers (UUIDs).
sebastian/diff                        4.0.4     Diff implementation
sebastian/version                     2.0.1     Library that helps with managing the version number of Git-hosted PHP projects
seld/jsonlint                         1.8.3     JSON Linter
symfony/config                        v5.2.3    Helps you find, load, combine, autofill and validate configuration values of any kind
symfony/console                       v5.2.3    Eases the creation of beautiful and testable command line interfaces
symfony/dependency-injection          v5.2.3    Allows you to standardize and centralize the way objects are constructed in your application
symfony/deprecation-contracts         v2.2.0    A generic function and convention to trigger deprecation notices
symfony/event-dispatcher              v5.2.3    Provides tools that allow your application components to communicate with each other by dispatching events and listening to them
symfony/event-dispatcher-contracts    v2.2.0    Generic abstractions related to dispatching event
symfony/filesystem                    v5.2.3    Provides basic utilities for the filesystem
symfony/finder                        v5.2.3    Finds files and directories via an intuitive fluent interface
symfony/polyfill-ctype                v1.22.0   Symfony polyfill for ctype functions
symfony/polyfill-intl-grapheme        v1.22.0   Symfony polyfill for intl's grapheme_* functions
symfony/polyfill-intl-normalizer      v1.22.0   Symfony polyfill for intl's Normalizer class and related functions
symfony/polyfill-mbstring             v1.22.0   Symfony polyfill for the Mbstring extension
symfony/polyfill-php73                v1.22.0   Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions
symfony/polyfill-php80                v1.22.0   Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions
symfony/serializer                    v5.2.3    Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.
symfony/service-contracts             v2.2.0    Generic abstractions related to writing services
symfony/stopwatch                     v5.2.3    Provides a way to profile code
symfony/string                        v5.2.3    Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way
vimeo/psalm                           3.18.2    A static analysis tool for finding errors in PHP applications
webmozart/assert                      1.9.1     Assertions to validate method input/output with nice error messages.
webmozart/glob                        4.3.0     A PHP implementation of Ant's glob.
webmozart/path-util                   2.3.0     A robust cross-platform utility for normalizing, comparing and modifying file paths.
llaville commented 3 years ago

and about source code analysed ? what is the source code ? specific version or a branch ?

landy2005 commented 3 years ago

yah, this is private source of our project.

but available open community source by this link: observium-ce I not know if here will same error.

llaville commented 3 years ago

sorry but still cannot reproduced issue. Here are my steps

  1. mkdir test-v54
  2. cd test-v54
  3. create composer.json with following contents
    {
    "require": {
    "ext-mysqli": "*",
    "ext-zlib": "*",
    "ext-sockets": "*",
    "ext-json": "*",
    "bartlett/php-compatinfo": "^5.4"
    }
    }
  4. run composer update with Composer version 2.0.8 2020-12-03 17:20:38
  5. composer show give me
    bartlett/php-compatinfo              5.4.2     Find out the minimum version and the extensions required for a piece of code to run
    bartlett/php-compatinfo-db           2.19.0    Reference Database to be used with php-compatinfo library
    bartlett/php-reflect                 4.4.1     Adds the ability to reverse-engineer classes, interfaces, functions, constants, namespaces, traits and m...
    brick/math                           0.9.2     Arbitrary-precision arithmetic library
    composer/package-versions-deprecated 1.11.99.1 Composer plugin that provides efficient querying for installed package versions (no runtime IO)
    composer/semver                      3.2.4     Semver library that offers utilities, version constraint parsing and validation.
    doctrine/collections                 1.6.7     PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.
    justinrainbow/json-schema            5.2.10    A library to validate a json schema.
    laminas/laminas-diagnostics          1.8.0     A set of components for performing diagnostic tests in PHP applications
    laminas/laminas-zendframework-bridge 1.1.1     Alias legacy ZF class names to Laminas Project equivalents.
    league/tactician                     v1.0.3    A small, flexible command bus. Handy for building service layers.
    nikic/php-parser                     v4.10.4   A PHP parser written in PHP
    phpdocumentor/reflection-common      2.2.0     Common reflection classes used by phpdocumentor to reflect the code structure
    phpdocumentor/reflection-docblock    5.2.2     With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve i...
    phpdocumentor/type-resolver          1.4.0     A PSR-5 based resolver of Class names, Types and Structural Element Names
    psr/container                        1.0.0     Common Container Interface (PHP FIG PSR-11)
    psr/event-dispatcher                 1.0.0     Standard interfaces for event handling.
    psr/log                              1.1.3     Common interface for logging libraries
    ramsey/collection                    1.1.3     A PHP 7.2+ library for representing and manipulating collections.
    ramsey/uuid                          4.1.1     A PHP library for generating and working with universally unique identifiers (UUIDs).
    sebastian/version                    2.0.1     Library that helps with managing the version number of Git-hosted PHP projects
    seld/jsonlint                        1.8.3     JSON Linter
    symfony/config                       v5.2.3    Helps you find, load, combine, autofill and validate configuration values of any kind
    symfony/console                      v5.2.3    Eases the creation of beautiful and testable command line interfaces
    symfony/dependency-injection         v5.2.3    Allows you to standardize and centralize the way objects are constructed in your application
    symfony/deprecation-contracts        v2.2.0    A generic function and convention to trigger deprecation notices
    symfony/event-dispatcher             v5.2.3    Provides tools that allow your application components to communicate with each other by dispatching even...
    symfony/event-dispatcher-contracts   v2.2.0    Generic abstractions related to dispatching event
    symfony/filesystem                   v5.2.3    Provides basic utilities for the filesystem
    symfony/finder                       v5.2.3    Finds files and directories via an intuitive fluent interface
    symfony/polyfill-ctype               v1.22.0   Symfony polyfill for ctype functions
    symfony/polyfill-intl-grapheme       v1.22.0   Symfony polyfill for intl's grapheme_* functions
    symfony/polyfill-intl-normalizer     v1.22.0   Symfony polyfill for intl's Normalizer class and related functions
    symfony/polyfill-mbstring            v1.22.0   Symfony polyfill for the Mbstring extension
    symfony/polyfill-php73               v1.22.0   Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions
    symfony/polyfill-php80               v1.22.0   Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions
    symfony/serializer                   v5.2.3    Handles serializing and deserializing data structures, including object graphs, into array structures or...
    symfony/service-contracts            v2.2.0    Generic abstractions related to writing services
    symfony/stopwatch                    v5.2.3    Provides a way to profile code
    symfony/string                       v5.2.3    Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters...
    webmozart/assert                     1.9.1     Assertions to validate method input/output with nice error messages.

    WARNING Already some differences with your installation

  6. get source code wget https://github.com/FriendsOfPHP/proxy-manager-lts/archive/v1.0.3.tar.gz
  7. untar source code tar -xvf v1.0.3.tar.gz
  8. then finally run analysis on source code vendor/bin/phpcompatinfo analyser:run --profile proxy-manager-lts-1.0.3/

That gave me report without error

Data Source Analysed

Directories                                         36
Files                                              141
Errors                                               0

Extensions Analysis

    Extension  REF        EXT min/Max PHP min/Max
    Core       Core       7.0.2       7.1.0
    Reflection Reflection 5.0.0       7.1.0
    pcre       pcre       4.0.0       4.0.0
    spl        spl        5.1.0       5.3.0
    standard   standard   5.2.1       5.2.1
    Total [5]                         7.1.0

Namespaces Analysis

    Namespace                                                                        REF      EXT min/Max PHP min/Max
    ProxyManager                                                                     standard 5.2.1       7.1.0
    ProxyManager\Autoloader                                                          standard 4.0.0       7.0.0
    ProxyManager\Exception                                                           Core     7.0.2       7.0.2
    ProxyManager\Factory                                                             Core     5.3.9       7.1.0
    ProxyManager\Factory\RemoteObject                                                user                 7.0.0
    ProxyManager\Factory\RemoteObject\Adapter                                        user                 7.0.0
    ProxyManager\FileLocator                                                         standard 4.0.6       7.0.0
    ProxyManager\Generator                                                           user                 7.1.0
    ProxyManager\GeneratorStrategy                                                   Core     5.3.0       7.0.2
    ProxyManager\Generator\Util                                                      standard 4.0.0       7.0.0
    ProxyManager\Inflector                                                           standard 4.0.0       7.0.0
    ProxyManager\Inflector\Util                                                      standard 4.0.0       7.0.0alpha1
    ProxyManager\Proxy                                                               user                 7.1.0
    ProxyManager\ProxyGenerator                                                      Core     5.0.0       7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator      user                 7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\Util standard 4.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator         user                 5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\Util    user                 7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptor\MethodGenerator                    user                 5.3.0
    ProxyManager\ProxyGenerator\AccessInterceptor\PropertyGenerator                  user                 5.4.0
    ProxyManager\ProxyGenerator\Assertion                                            spl      5.1.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator                     user                 7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator                   user                 7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator               Core     5.0.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\PropertyGenerator             Core     4.0.0       7.0.0
    ProxyManager\ProxyGenerator\LazyLoading\MethodGenerator                          user                 5.4.0
    ProxyManager\ProxyGenerator\NullObject\MethodGenerator                           user                 7.0.0alpha1
    ProxyManager\ProxyGenerator\PropertyGenerator                                    user                 7.0.0alpha1
    ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator                         standard 4.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\RemoteObject\PropertyGenerator                       user                 5.3.0
    ProxyManager\ProxyGenerator\Util                                                 Core     5.2.7       7.1.0
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator                          standard 5.0.0       7.1.0
    ProxyManager\Proxy\Exception                                                     user                 5.3.0
    ProxyManager\Signature                                                           standard 4.0.0       7.1.0
    ProxyManager\Signature\Exception                                                 user                 5.3.0
    ProxyManager\Stub                                                                user                 5.3.0
    Total [36]                                                                                            7.1.0

Interfaces Analysis

    Interface                                                 REF        EXT min/Max PHP min/Max
    Closure                                                   Core       5.3.0       5.3.0
    ProxyManager\Autoloader\AutoloaderInterface               user                   7.0.0
    ProxyManager\Exception\ExceptionInterface                 Core       7.0.2       7.0.2
    ProxyManager\Factory\RemoteObject\AdapterInterface        user                   7.0.0
    ProxyManager\FileLocator\FileLocatorInterface             user                   7.0.0
    ProxyManager\GeneratorStrategy\GeneratorStrategyInterface user                   7.0.0alpha1
    ProxyManager\Inflector\ClassNameInflectorInterface        user                   7.0.0
    ProxyManager\ProxyGenerator\ProxyGeneratorInterface       user                   5.3.0
    ProxyManager\Proxy\AccessInterceptorInterface             user                   7.1.0
    ProxyManager\Proxy\AccessInterceptorValueHolderInterface  user                   7.1.0
    ProxyManager\Proxy\FallbackValueHolderInterface           user                   5.3.0
    ProxyManager\Proxy\GhostObjectInterface                   user                   7.1.0
    ProxyManager\Proxy\LazyLoadingInterface                   user                   7.1.0
    ProxyManager\Proxy\NullObjectInterface                    user                   5.3.0
    ProxyManager\Proxy\ProxyInterface                         user                   4.0.0
    ProxyManager\Proxy\RemoteObjectInterface                  user                   5.3.0
    ProxyManager\Proxy\SmartReferenceInterface                user                   5.3.0
    ProxyManager\Proxy\ValueHolderInterface                   user                   5.3.0
    ProxyManager\Proxy\VirtualProxyInterface                  user                   5.3.0
    ProxyManager\Signature\ClassSignatureGeneratorInterface   user                   7.0.0alpha1
    ProxyManager\Signature\Exception\ExceptionInterface       user                   4.0.0
    ProxyManager\Signature\SignatureCheckerInterface          user                   7.1.0
    ProxyManager\Signature\SignatureGeneratorInterface        user                   7.0.0alpha1
    ReflectionClass                                           Reflection 5.0.0       5.0.0
    ReflectionMethod                                          Reflection 5.0.0       5.0.0
    ReflectionProperty                                        Reflection 5.0.0       5.0.0
    Throwable                                                 Core       7.0.2       7.0.2
    Total [27]                                                                       7.1.0

No trait found

Classes Analysis

    Class                                                                                                 REF        EXT min/Max PHP min/Max
    BadMethodCallException                                                                                spl        5.1.0       5.1.0
    Closure                                                                                               Core       5.3.0       5.3.0
    ErrorException                                                                                        Core       5.1.0       5.1.0
    InvalidArgumentException                                                                              spl        5.1.0       5.1.0
  U Laminas\Code\Generator\ClassGenerator                                                                 user                   5.3.0
  U Laminas\Code\Generator\DocBlockGenerator                                                              user                   5.3.0
  U Laminas\Code\Generator\MethodGenerator                                                                user                   5.3.0
  U Laminas\Code\Generator\ParameterGenerator                                                             user                   5.3.0
  U Laminas\Code\Generator\PropertyGenerator                                                              user                   5.3.0
  U Laminas\Code\Reflection\MethodReflection                                                              user                   5.3.0
  U Laminas\Code\Reflection\ParameterReflection                                                           user                   5.3.0
  U Laminas\Server\Client                                                                                 user                   5.3.0
    ProxyManager\Autoloader\Autoloader                                                                    standard   4.0.0       7.0.0
  U ProxyManager\Autoloader\AutoloaderInterface                                                           user                   5.3.0
    ProxyManager\Configuration                                                                            standard   5.2.1       7.1.0
    ProxyManager\Exception\DisabledMethodException                                                        spl        5.1.0       7.0.0
    ProxyManager\Exception\FileNotWritableException                                                       Core       7.0.2       7.0.2
    ProxyManager\Exception\InvalidProxiedClassException                                                   spl        5.1.0       7.0.0alpha1
    ProxyManager\Exception\InvalidProxyDirectoryException                                                 spl        5.1.0       5.3.0
    ProxyManager\Exception\UnsupportedProxiedClassException                                               spl        5.1.0       7.0.0alpha1
    ProxyManager\Factory\AbstractBaseFactory                                                              Core       5.3.9       7.1.0
    ProxyManager\Factory\AccessInterceptorScopeLocalizerFactory                                           user                   7.1.0
    ProxyManager\Factory\AccessInterceptorValueHolderFactory                                              user                   7.1.0
    ProxyManager\Factory\LazyLoadingGhostFactory                                                          Core       5.3.0       7.1.0
    ProxyManager\Factory\LazyLoadingValueHolderFactory                                                    Core       5.3.0       7.1.0
    ProxyManager\Factory\NullObjectFactory                                                                user                   7.1.0
    ProxyManager\Factory\RemoteObjectFactory                                                              Core       4.0.0       7.1.0
  U ProxyManager\Factory\RemoteObject\AdapterInterface                                                    user                   5.3.0
    ProxyManager\Factory\RemoteObject\Adapter\BaseAdapter                                                 user                   7.0.0
    ProxyManager\Factory\RemoteObject\Adapter\JsonRpc                                                     user                   7.0.0
    ProxyManager\Factory\RemoteObject\Adapter\Soap                                                        user                   7.0.0
    ProxyManager\Factory\RemoteObject\Adapter\XmlRpc                                                      user                   7.0.0
    ProxyManager\FileLocator\FileLocator                                                                  standard   4.0.6       7.0.0
  U ProxyManager\FileLocator\FileLocatorInterface                                                         user                   5.3.0
    ProxyManager\GeneratorStrategy\BaseGeneratorStrategy                                                  user                   7.0.0alpha1
    ProxyManager\GeneratorStrategy\EvaluatingGeneratorStrategy                                            Core       5.3.0       7.0.0alpha1
    ProxyManager\GeneratorStrategy\FileWriterGeneratorStrategy                                            Core       5.1.0       7.0.2
  U ProxyManager\GeneratorStrategy\GeneratorStrategyInterface                                             user                   5.3.0
    ProxyManager\Generator\ClassGenerator                                                                 user                   5.3.0
    ProxyManager\Generator\MagicMethodGenerator                                                           user                   7.0.0
  U ProxyManager\Generator\MethodGenerator                                                                user                   7.1.0
    ProxyManager\Generator\Util\ClassGeneratorUtils                                                       user                   4.0.0
    ProxyManager\Generator\Util\IdentifierSuffixer                                                        pcre       4.0.0       7.0.0alpha1
    ProxyManager\Generator\Util\ProxiedMethodReturnExpression                                             user                   4.0.0
    ProxyManager\Generator\Util\UniqueIdentifierGenerator                                                 standard   4.0.0       7.0.0
    ProxyManager\Inflector\ClassNameInflector                                                             standard   4.0.0       7.0.0
  U ProxyManager\Inflector\ClassNameInflectorInterface                                                    user                   5.3.0
    ProxyManager\Inflector\Util\ParameterEncoder                                                          standard   4.0.0       7.0.0alpha1
    ProxyManager\Inflector\Util\ParameterHasher                                                           standard   4.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizerGenerator                                  user                   7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\BindProxyProperties       user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\InterceptedMethod         user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicClone                user                   7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicGet                  user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicIsset                user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicSet                  user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicSleep                user                   5.3.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\MagicUnset                user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\StaticProxyConstructor    user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\Util\InterceptorGenerator standard   4.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolderGenerator                                     user                   7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\InterceptedMethod            user                   5.3.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicClone                   user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicGet                     user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicIsset                   user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicSet                     user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicUnset                   user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\StaticProxyConstructor       user                   5.4.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\Util\InterceptorGenerator    user                   7.1.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\MethodGenerator\MagicWakeup                             user                   5.3.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\MethodGenerator\SetMethodPrefixInterceptor              user                   5.3.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\MethodGenerator\SetMethodSuffixInterceptor              user                   5.3.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\PropertyGenerator\MethodPrefixInterceptors              user                   5.4.0
  U ProxyManager\ProxyGenerator\AccessInterceptor\PropertyGenerator\MethodSuffixInterceptors              user                   5.4.0
    ProxyManager\ProxyGenerator\Assertion\CanProxyAssertion                                               spl        5.1.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingGhostGenerator                                                 user                   7.1.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\CallInitializer                          user                   7.0.0alpha1
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\GetProxyInitializer                      user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\InitializeProxy                          user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\IsProxyInitialized                       user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicClone                               user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicGet                                 user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicIsset                               user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicSet                                 user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicSleep                               user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\MagicUnset                               user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\SetProxyInitializer                      user                   5.4.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\SkipDestructor                           user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\InitializationTracker                  user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\InitializerProperty                    user                   5.3.0
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\PrivatePropertiesMap                   user                   7.0.0alpha1
  U ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\ProtectedPropertiesMap                 user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator                                           standard   4.0.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\GetProxyInitializer                user                   5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\InitializeProxy                    user                   5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\IsProxyInitialized                 user                   5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\LazyLoadingMethodInterceptor       standard   4.0.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicClone                         Reflection 5.0.0       5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicGet                           user                   7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicIsset                         Reflection 5.0.0       7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicSet                           user                   5.4.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicSleep                         Core       4.2.0       5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicUnset                         user                   5.4.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\SetProxyInitializer                Core       4.0.0       5.5.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\SkipDestructor                     user                   5.3.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\PropertyGenerator\InitializerProperty              user                   7.0.0
    ProxyManager\ProxyGenerator\LazyLoadingValueHolder\PropertyGenerator\ValueHolderProperty              Core       4.0.0       5.3.0
    ProxyManager\ProxyGenerator\LazyLoading\MethodGenerator\StaticProxyConstructor                        user                   5.4.0
    ProxyManager\ProxyGenerator\NullObjectGenerator                                                       user                   7.1.0
    ProxyManager\ProxyGenerator\NullObject\MethodGenerator\NullObjectMethodInterceptor                    user                   5.3.0
  U ProxyManager\ProxyGenerator\NullObject\MethodGenerator\StaticProxyConstructor                         user                   7.0.0alpha1
  U ProxyManager\ProxyGenerator\PropertyGenerator\PublicPropertiesMap                                     user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\RemoteObjectGenerator                                                     user                   7.1.0
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\MagicGet                                     user                   5.4.0
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\MagicIsset                                   user                   5.4.0
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\MagicSet                                     user                   5.4.0
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\MagicUnset                                   user                   5.4.0
    ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\RemoteObjectMethod                           standard   4.0.0       7.0.0alpha1
  U ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\StaticProxyConstructor                       user                   5.4.0
  U ProxyManager\ProxyGenerator\RemoteObject\PropertyGenerator\AdapterProperty                            user                   5.3.0
    ProxyManager\ProxyGenerator\Util\GetMethodIfExists                                                    user                   5.0.0
    ProxyManager\ProxyGenerator\Util\Properties                                                           Core       5.2.7       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\ProxiedMethodsFilter                                                 standard   4.0.0       7.1.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator                                                 spl        5.1.0       7.1.0
    ProxyManager\ProxyGenerator\Util\UnsetPropertiesGenerator                                             standard   4.0.0       7.0.0
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\Constructor                                   standard   5.0.0       7.1.0
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\GetWrappedValueHolderValue                    user                   5.3.0
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\MagicSleep                                    user                   5.3.0
    ProxyManager\Proxy\Exception\RemoteObjectException                                                    spl        5.1.0       5.1.0
  U ProxyManager\Signature\ClassSignatureGenerator                                                        user                   7.0.0alpha1
  U ProxyManager\Signature\ClassSignatureGeneratorInterface                                               user                   5.3.0
    ProxyManager\Signature\Exception\InvalidSignatureException                                            spl        5.1.0       5.3.0
    ProxyManager\Signature\Exception\MissingSignatureException                                            spl        5.1.0       5.3.0
    ProxyManager\Signature\SignatureChecker                                                               standard   4.0.0       7.1.0
  U ProxyManager\Signature\SignatureCheckerInterface                                                      user                   5.3.0
  U ProxyManager\Signature\SignatureGenerator                                                             user                   7.0.0alpha1
  U ProxyManager\Signature\SignatureGeneratorInterface                                                    user                   5.3.0
    ProxyManager\Stub\EmptyClassStub                                                                      user                   4.0.0
    ProxyManager\Version                                                                                  user                   5.0.0
    ReflectionClass                                                                                       Reflection 5.0.0       5.0.0
    ReflectionMethod                                                                                      Reflection 5.0.0       5.0.0
    ReflectionProperty                                                                                    Reflection 5.0.0       5.0.0
  U Symfony\Component\Filesystem\Filesystem                                                               user                   5.3.0
  U array                                                                                                 user                   4.0.0
  U bool                                                                                                  user                   4.0.0
  U int                                                                                                   user                   4.0.0
    self                                                                                                  Core       5.0.0       5.0.0
  U string                                                                                                user                   4.0.0
    Total [148]                                                                                                                  7.1.0

No generator found

Functions Analysis

    Function                                                                                                                                        REF        EXT min/Max PHP min/Max
    ProxyManager\Exception\InvalidProxiedClassException\abstractProtectedMethodsNotSupported\closure-39-41                                          Reflection 5.0.0       7.0.0alpha1
    ProxyManager\Exception\InvalidProxiedClassException\abstractProtectedMethodsNotSupported\closure-44-46                                          Reflection 5.0.0       7.0.0alpha1
    ProxyManager\Exception\UnsupportedProxiedClassException\nonReferenceableLocalizedReflectionProperties\closure-39-41                             Reflection 5.0.0       7.0.0alpha1
    ProxyManager\GeneratorStrategy\FileWriterGeneratorStrategy\__construct\closure-30-34                                                            Core       5.1.0       7.0.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizerGenerator\buildMethodInterceptor\closure-92-98                                       Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizerGenerator\generate\closure-61-63                                                     user                   7.1.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\Util\InterceptorGenerator\createInterceptedMethodBody\closure-70-72 user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolderGenerator\buildMethodInterceptor\closure-131-138                                        Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolderGenerator\generate\closure-76-78                                                        user                   7.1.0
    ProxyManager\ProxyGenerator\Assertion\CanProxyAssertion\hasNoAbstractProtectedMethods\closure-61-63                                             Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingGhostGenerator\generate\closure-82-84                                                                    user                   7.1.0
    ProxyManager\ProxyGenerator\LazyLoadingGhostGenerator\getAbstractProxiedMethods\closure-149-157                                                 Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\CallInitializer\getPropertyDefaultsAssignments\closure-116-119                     Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator\buildLazyLoadingMethodInterceptor\closure-126-150                                   standard   5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator\generate\closure-92-94                                                              user                   7.1.0
    ProxyManager\ProxyGenerator\NullObject\MethodGenerator\StaticProxyConstructor\__construct\closure-33-35                                         Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\RemoteObjectGenerator\generate\closure-60-62                                                                        user                   7.1.0
    ProxyManager\ProxyGenerator\RemoteObjectGenerator\generate\closure-65-71                                                                        Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\fromReflectionClass\closure-49-57                                                                   standard   5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\fromReflectionClass\closure-49-57\closure-52-55                                                     Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\onlyNonReferenceableProperties\closure-77-87                                                        Core       5.2.7       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\onlyNullableProperties\closure-125-133                                                              Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\Properties\withoutNonReferenceableProperties\closure-101-118                                                   standard   5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\ProxiedMethodsFilter\doFilter\closure-68-73                                                                    standard   5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\getPublicAccessSimulationCode\closure-84-84                                               user                   7.0.0
    ProxyManager\ProxyGenerator\Util\UnsetPropertiesGenerator\generateUnsetStatement\closure-94-96                                                  Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\Constructor\generateOriginalConstructorCall\closure-64-66                               user                   7.0.0alpha1
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\Constructor\getConstructor\closure-76-81                                                Reflection 5.0.0       7.0.0alpha1
    ProxyManager\ProxyGenerator\ValueHolder\MethodGenerator\Constructor\getConstructor\closure-84-86                                                Reflection 5.0.0       7.0.0alpha1
    array_filter                                                                                                                                    standard   4.0.6       4.0.6
    array_flip                                                                                                                                      standard   4.0.0       4.0.0
    array_key_exists                                                                                                                                standard   4.0.7       4.0.7
    array_keys                                                                                                                                      standard   4.0.0       4.0.0
    array_map                                                                                                                                       standard   4.0.6       4.0.6
    array_merge                                                                                                                                     standard   4.0.0       4.0.0
    array_values                                                                                                                                    standard   4.0.0       4.0.0
    assert                                                                                                                                          standard   4.0.0       4.0.0
    base64_encode                                                                                                                                   standard   4.0.0       4.0.0
    class_exists                                                                                                                                    Core       5.0.0       5.0.0
    count                                                                                                                                           standard   4.0.0       4.0.0
    error_reporting                                                                                                                                 Core       4.0.0       4.0.0
    file_exists                                                                                                                                     standard   4.0.0       4.0.0
    func_get_arg                                                                                                                                    Core       4.0.0       4.0.0
    func_num_args                                                                                                                                   Core       4.0.0       4.0.0
    get_class                                                                                                                                       Core       4.0.0       4.0.0
    implode                                                                                                                                         standard   4.0.0       4.0.0
    ini_get                                                                                                                                         standard   4.0.0       4.0.0
    is_a                                                                                                                                            Core       5.3.9       5.3.9
    is_int                                                                                                                                          standard   4.0.0       4.0.0
    is_object                                                                                                                                       standard   4.0.0       4.0.0
    is_string                                                                                                                                       standard   4.0.0       4.0.0
    ltrim                                                                                                                                           standard   4.0.0       4.0.0
    md5                                                                                                                                             standard   4.0.0       4.0.0
    preg_match                                                                                                                                      pcre       4.0.0       4.0.0
    realpath                                                                                                                                        standard   4.0.0       4.0.0
    reset                                                                                                                                           standard   4.0.0       4.0.0
    restore_error_handler                                                                                                                           Core       4.0.1       4.0.1
    serialize                                                                                                                                       standard   4.0.0       4.0.0
    set_error_handler                                                                                                                               Core       4.0.1       4.0.1
    sha1                                                                                                                                            standard   4.3.0       4.3.0
    sprintf                                                                                                                                         standard   4.0.0       4.0.0
    str_replace                                                                                                                                     standard   4.0.0       4.0.0
    strlen                                                                                                                                          Core       4.0.0       4.0.0
    strrpos                                                                                                                                         standard   4.0.0       4.0.0
    strtolower                                                                                                                                      standard   4.0.0       4.0.0
    strtr                                                                                                                                           standard   4.0.0       4.0.0
    substr                                                                                                                                          standard   4.0.0       4.0.0
    sys_get_temp_dir                                                                                                                                standard   5.2.1       5.2.1
    uniqid                                                                                                                                          standard   4.0.0       4.0.0
    unlink                                                                                                                                          standard   4.0.0       4.0.0
    var_export                                                                                                                                      standard   4.2.0       4.2.0
    Total [71]
               7.1.0

Constants Analysis

    Constant                                                                                                       REF      EXT min/Max PHP min/Max
    DIRECTORY_SEPARATOR                                                                                            standard 4.0.6       4.0.6
    PHP_VERSION_ID                                                                                                 Core     5.2.7       5.2.7
    ProxyManager\Configuration\DEFAULT_PROXY_NAMESPACE                                                             user                 4.0.0
    ProxyManager\Exception\DisabledMethodException\NAME                                                            user                 4.0.0
    ProxyManager\Generator\Util\IdentifierSuffixer\DEFAULT_IDENTIFIER                                              user                 4.0.0
    ProxyManager\Generator\Util\IdentifierSuffixer\VALID_IDENTIFIER_FORMAT                                         user                 4.0.0
    ProxyManager\Generator\Util\UniqueIdentifierGenerator\DEFAULT_IDENTIFIER                                       user                 4.0.0
    ProxyManager\Generator\Util\UniqueIdentifierGenerator\VALID_IDENTIFIER_FORMAT                                  user                 4.0.0
    ProxyManager\Inflector\ClassNameInflectorInterface\PROXY_MARKER                                                user                 4.0.0
    ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\Util\InterceptorGenerator\TEMPLATE user                 4.0.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\MagicClone\TEMPLATE                   user                 4.0.0
    ProxyManager\ProxyGenerator\AccessInterceptorValueHolder\MethodGenerator\Util\InterceptorGenerator\TEMPLATE    user                 4.0.0
    ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\PrivatePropertiesMap\KEY_DEFAULT_VALUE          user                 4.0.0
    ProxyManager\ProxyGenerator\LazyLoadingGhost\PropertyGenerator\ProtectedPropertiesMap\KEY_DEFAULT_VALUE        user                 4.0.0
    ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator\RemoteObjectMethod\TEMPLATE                           user                 4.0.0
    ProxyManager\ProxyGenerator\Util\ProxiedMethodsFilter\DEFAULT_EXCLUDED                                         user                 5.4.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\OPERATION_GET                                            user                 4.0.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\OPERATION_ISSET                                          user                 4.0.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\OPERATION_SET                                            user                 4.0.0
    ProxyManager\ProxyGenerator\Util\PublicScopeSimulator\OPERATION_UNSET                                          user                 4.0.0
    ProxyManager\ProxyGenerator\Util\UnsetPropertiesGenerator\CLOSURE_TEMPLATE                                     user                 4.0.0
    __DIR__                                                                                                        Core     5.3.0       5.3.0
    false                                                                                                          Core     4.0.0       4.0.0
    null                                                                                                           Core     4.0.0       4.0.0
    true                                                                                                           Core     4.0.0       4.0.0
    Total [25]                                                                                                                          5.4.0

No condition found

Requires PHP 7.1.0 (min)

Time: 1.34 seconds, Memory: 26.00Mb

My platform is :

I cannot fix an issue that I can't reproduce !

llaville commented 3 years ago

As I'm not able to reproduce this issue, if one of you @remicollet, @landy2005 can do the change and test for me, to see if it solve the problem.

Replaces https://github.com/llaville/php-compat-info/blob/master/src/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php#L166-L188 By content of branch 6.0 https://github.com/llaville/php-compat-info/blob/6.0/src/Application/PhpParser/NodeVisitor/VersionResolverVisitor.php#L173-L203

Thanks in advance.

remicollet commented 3 years ago

It breaks somewhere else

Fatal error: Uncaught Error: Object of class PhpParser\Node\UnionType could not be converted to string in /usr/share/php/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php:115
Stack trace:
#0 /usr/share/php/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php(88): Bartlett\CompatInfo\PhpParser\NodeVisitor\VersionResolverVisitor->handleParameters(Object(PhpParser\Node\Stmt\ClassMethod), Array)
#1 /usr/share/php/PhpParser4/NodeTraverser.php(200): Bartlett\CompatInfo\PhpParser\NodeVisitor\VersionResolverVisitor->enterNode(Object(PhpParser\Node\Stmt\ClassMethod))
#2 /usr/share/php/PhpParser4/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray(Array)
#3 /usr/share/php/PhpParser4/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Class_))
#4 /usr/share/php/PhpParser4/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray(Array)
#5 /usr/share/php/PhpParser4/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node in /usr/share/php/Bartlett/CompatInfo/PhpParser/NodeVisitor/VersionResolverVisitor.php on line 115
remicollet commented 3 years ago

I'm able to run analysis on https://github.com/FriendsOfPHP/proxy-manager-lts/archive/v1.0.3.tar.gz source code.

Please try on git snapshot Source code is very minimal because of the fucking .gitattributes

llaville commented 3 years ago

@remicollet Very strange. I've cloned the proxy-manger project, and run analysis on src folder, and got no errors !

remicollet commented 3 years ago

I've cloned the proxy-manger project, and run analysis on src folder, and got no errors !

Run it on the top folder to include everything, src, test, bin, ...

llaville commented 3 years ago

Ok got it now, I can reproduce, and I'll investigate.

Found origin of issue : https://github.com/FriendsOfPHP/proxy-manager-lts/blob/1.x/tests/ProxyManagerTestAsset/ClassWithPhp80TypedMethods.php#L19-L20

With corresponding nodes dump

                   1: Stmt_ClassMethod(
                        attrGroups: array(
                        )
                        flags: MODIFIER_PUBLIC (1)
                        byRef: false
                        name: Identifier(
                            name: falseType
                        )
                        params: array(
                            0: Param(
                                attrGroups: array(
                                )
                                flags: 0
                                type: UnionType(
                                    types: array(
                                        0: Identifier(
                                            name: false
                                        )
                                        1: Name(
                                            parts: array(
                                                0: self
                                            )
                                        )
                                    )
                                )
                                byRef: false
                                variadic: false
                                var: Expr_Variable(
                                    name: parameter
                                )
                                default: null
                            )
                        )
                        returnType: UnionType(
                            types: array(
                                0: Identifier(
                                    name: false
                                )
                                1: Name(
                                    parts: array(
                                        0: self
                                    )
                                )
                            )
                        )

Will provide a patch for bug fix release 5.4.3, and 6.0.x-dev tomorrow.

llaville commented 3 years ago

@remicollet branch 5.4 is available with fix. Waiting your green light before to release the new bug fix release 5.4.3

llaville commented 3 years ago

Bug fix release 5.4.3 is on way !

remicollet commented 3 years ago

Sorry being late (mostly offline last week, and also this week)

So I confirm 5.4.3 works.