nodeTypeResolver = $nodeTypeResolver; $this->typeUnwrapper = $typeUnwrapper; } /** * @param PropertyRename $renameValueObject */ public function isConflicting(\Rector\Naming\Contract\RenameValueObjectInterface $renameValueObject) : bool { return $this->isDateTimeAtNamingConvention($renameValueObject); } private function isDateTimeAtNamingConvention(\Rector\Naming\ValueObject\PropertyRename $propertyRename) : bool { $type = $this->nodeTypeResolver->resolve($propertyRename->getProperty()); $type = $this->typeUnwrapper->unwrapFirstObjectTypeFromUnionType($type); if (!$type instanceof \PHPStan\Type\TypeWithClassName) { return \false; } if (!\is_a($type->getClassName(), \DateTimeInterface::class, \true)) { return \false; } return (bool) \RectorPrefix20210704\Nette\Utils\Strings::match($propertyRename->getCurrentName(), self::AT_NAMING_REGEX . ''); } }