Skip to content

[code-quality] Error processing of trait - RemoveAlwaysTrueConditionSetInConstructorRector  #2162

@lapetr

Description

@lapetr
Subject Details
Rector version v0.5.16, (0.6.x-dev@a7adee6)
PHP version PHP 7.3.10, (7.2.19, 7.4.0RC3)
Full Command /rector/vendor/bin/rector process --set code-quality --debug /tmp/trait-err/

Current Behaviour

PHP Fatal error

$ ls /tmp/trait-err 
FooTrait.php
$ /rector/vendor/bin/rector process  --set code-quality --debug  /tmp/trait-err/
Rector v0.5.16

[parsing] /tmp/trait-err/FooTrait.php
[refactoring] /tmp/trait-err/FooTrait.php
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
PHP Fatal error:  Uncaught TypeError: Argument 1 passed to Rector\PhpParser\Node\Manipulator\ClassManipulator::getProperty() must be an instance of PhpParser\Node\Stmt\Class_, instance of PhpParser\Node\Stmt\Trait_ given, called in /rector/vendor/rector/rector/packages/CodeQuality/src/Rector/If_/RemoveAlwaysTrueConditionSetInConstructorRector.php on line 138 and defined in /rector/vendor/rector/rector/src/PhpParser/Node/Manipulator/ClassManipulator.php:198
Stack trace:
#0 /rector/vendor/rector/rector/packages/CodeQuality/src/Rector/If_/RemoveAlwaysTrueConditionSetInConstructorRector.php(138): Rector\PhpParser\Node\Manipulator\ClassManipulator->getProperty(Object(PhpParser\Node\Stmt\Trait_), 'x')
#1 /rector/vendor/rector/rector/packages/CodeQuality/src/Rector/If_/RemoveAlwaysTrueConditionSetInConstructorRector.php(204): Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector->resolvePropertyFetchTypes(Object(PhpParser\Node\Expr\PropertyFetch))
#2 /var in /rector/vendor/rector/rector/src/PhpParser/Node/Manipulator/ClassManipulator.php on line 198


Minimal PHP Code Causing Issue

<?php 
trait FooTrait {
	private  $x="";

	public function foo()
	{
		if ($this->x ) {}
	}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions