Fixed and optimized ClassReflection and ReflectorCompatibilityTest, b… #100
continuous-integration.yml
on: push
Matrix: composer-normalize
Matrix: composer-validate
Matrix: infection
Matrix: php-cs-fixer
Matrix: psalm
Matrix: test
Annotations
6 errors and 17 warnings
UnusedClass:
src/TypeResolver/IdentityTypeReplacer.php#L14
src/TypeResolver/IdentityTypeReplacer.php:14:13: UnusedClass: Class Typhoon\Reflection\TypeResolver\IdentityTypeReplacer is never used (see https://psalm.dev/075)
|
psalm (8.1)
Process completed with exit code 2.
|
psalm (8.2)
The job was canceled because "_8_1" failed.
|
psalm (8.2)
The operation was canceled.
|
psalm (8.3)
The job was canceled because "_8_1" failed.
|
psalm (8.3)
The operation was canceled.
|
test (8.1)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
php-cs-fixer (8.1)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
psalm (8.1)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
composer-normalize (8.1)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
test (8.2)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
test (8.3)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
infection (8.1)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/cache@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
infection (8.1):
src/ClassReflection.php#L434
Escaped Mutant for Mutator "LogicalOrAllSubExprNegation":
--- Original
+++ New
@@ @@
}
public function isInstance(object $object) : bool
{
- return $this->metadata->name === $object::class || $this->reflectClass($object::class)->isSubclassOf($this);
+ return !($this->metadata->name === $object::class) || !$this->reflectClass($object::class)->isSubclassOf($this);
}
public function isInstantiable() : bool
{
|
infection (8.1):
src/MethodReflection.php#L61
Escaped Mutant for Mutator "Identical":
--- Original
+++ New
@@ @@
}
public function __isset(string $name) : bool
{
- return $name === 'name' || $name === 'class';
+ return $name === 'name' || $name !== 'class';
}
/**
* @internal
|
infection (8.1):
src/MethodReflection.php#L85
Escaped Mutant for Mutator "DecrementInteger":
--- Original
+++ New
@@ @@
* @param class-string<TClass>|null $name
* @return ($name is null ? list<AttributeReflection<object>> : list<AttributeReflection<TClass>>)
*/
- public function getAttributes(?string $name = null, int $flags = 0) : array
+ public function getAttributes(?string $name = null, int $flags = -1) : array
{
if ($this->attributes === null) {
$class = $this->metadata->class;
|
infection (8.1):
src/NameContext/NameContext.php#L81
Escaped Mutant for Mutator "MethodCallRemoval":
--- Original
+++ New
@@ @@
}
public function enterNamespace(?string $namespace = null) : void
{
- $this->leaveNamespace();
+
if ($namespace !== null) {
$this->namespace = self::parse($namespace)->resolve();
}
|
infection (8.1):
src/NameContext/NameContext.php#L107
Escaped Mutant for Mutator "Identical":
--- Original
+++ New
@@ @@
public function addConstantUse(string $name, ?string $alias = null) : void
{
$resolvedName = self::parse($name)->resolve();
- $resolvedAlias = ($alias === null ? $resolvedName->lastSegment() : new UnqualifiedName($alias))->toString();
+ $resolvedAlias = ($alias !== null ? $resolvedName->lastSegment() : new UnqualifiedName($alias))->toString();
if (isset($this->constantImportTable[$resolvedAlias])) {
throw new DefaultReflectionException(sprintf('Cannot use constant %s as %s because the name is already in use.', $name, $resolvedAlias));
}
|
infection (8.1):
src/NameContext/NameContext.php#L107
Escaped Mutant for Mutator "Ternary":
--- Original
+++ New
@@ @@
public function addConstantUse(string $name, ?string $alias = null) : void
{
$resolvedName = self::parse($name)->resolve();
- $resolvedAlias = ($alias === null ? $resolvedName->lastSegment() : new UnqualifiedName($alias))->toString();
+ $resolvedAlias = ($alias === null ? new UnqualifiedName($alias) : $resolvedName->lastSegment())->toString();
if (isset($this->constantImportTable[$resolvedAlias])) {
throw new DefaultReflectionException(sprintf('Cannot use constant %s as %s because the name is already in use.', $name, $resolvedAlias));
}
|
infection (8.1):
src/NameContext/NameContext.php#L123
Escaped Mutant for Mutator "Ternary":
--- Original
+++ New
@@ @@
public function addFunctionUse(string $name, ?string $alias = null) : void
{
$resolvedName = self::parse($name)->resolve();
- $resolvedAlias = ($alias === null ? $resolvedName->lastSegment() : new UnqualifiedName($alias))->toString();
+ $resolvedAlias = ($alias === null ? new UnqualifiedName($alias) : $resolvedName->lastSegment())->toString();
if (isset($this->functionImportTable[$resolvedAlias])) {
throw new DefaultReflectionException(sprintf('Cannot use constant %s as %s because the name is already in use.', $name, $resolvedAlias));
}
|
infection (8.1):
src/NameContext/NameContext.php#L123
Escaped Mutant for Mutator "Identical":
--- Original
+++ New
@@ @@
public function addFunctionUse(string $name, ?string $alias = null) : void
{
$resolvedName = self::parse($name)->resolve();
- $resolvedAlias = ($alias === null ? $resolvedName->lastSegment() : new UnqualifiedName($alias))->toString();
+ $resolvedAlias = ($alias !== null ? $resolvedName->lastSegment() : new UnqualifiedName($alias))->toString();
if (isset($this->functionImportTable[$resolvedAlias])) {
throw new DefaultReflectionException(sprintf('Cannot use constant %s as %s because the name is already in use.', $name, $resolvedAlias));
}
|
infection (8.1):
src/NameContext/NameContext.php#L138
Escaped Mutant for Mutator "MethodCallRemoval":
--- Original
+++ New
@@ @@
}
public function enterClass(string $name, ?string $parent = null) : void
{
- $this->leaveClass();
+
$this->namespaceImportTable[self::SELF] = self::parse($name)->resolve($this->namespace, $this->namespaceImportTable);
if ($parent !== null) {
$this->namespaceImportTable[self::PARENT] = self::parse($parent)->resolve($this->namespace, $this->namespaceImportTable);
|
infection (8.1):
src/NameContext/NameContext.php#L162
Escaped Mutant for Mutator "UnwrapStrToLower":
--- Original
+++ New
@@ @@
}
public function resolveNameAsClass(string $name) : string
{
- if (!isset($this->namespaceImportTable[self::SELF]) && isset(self::SPECIAL[strtolower($name)])) {
+ if (!isset($this->namespaceImportTable[self::SELF]) && isset(self::SPECIAL[$name])) {
throw new \InvalidArgumentException(sprintf('%s cannot be used outside of the class scope.', $name));
}
/** @var class-string */
|