> */ public function getNodeTypes() : array { return [PropertyProperty::class]; } /** * @param PropertyProperty $node */ public function refactor(Node $node) : ?Node { $parentNode = $node->getAttribute(AttributeKey::PARENT_NODE); // skip typed properties if ($parentNode instanceof Property && $parentNode->type !== null) { return null; } $defaultValueNode = $node->default; if (!$defaultValueNode instanceof Expr) { return null; } if (!$defaultValueNode instanceof ConstFetch) { return null; } if (strtolower((string) $defaultValueNode->name) !== 'null') { return null; } $nodeNode = $node->getAttribute(AttributeKey::PREVIOUS_NODE); if ($nodeNode instanceof NullableType) { return null; } $node->default = null; return $node; } }