type = $type; $this->offset = $offset; } public function __toString(): string { if ( $this->type instanceof CallableTypeNode || $this->type instanceof NullableTypeNode ) { return '(' . $this->type . ')[' . $this->offset . ']'; } return $this->type . '[' . $this->offset . ']'; } /** * @param array $properties */ public static function __set_state(array $properties): self { $instance = new self($properties['type'], $properties['offset']); if (isset($properties['attributes'])) { foreach ($properties['attributes'] as $key => $value) { $instance->setAttribute($key, $value); } } return $instance; } }