mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-02 17:30:50 +00:00
7e7a2f067a
476cfb00cb
disable fallback for now
34 lines
960 B
PHP
34 lines
960 B
PHP
<?php
|
|
|
|
declare (strict_types=1);
|
|
namespace Rector\BetterPhpDocParser\PhpDoc;
|
|
|
|
use PhpParser\Node\Scalar\String_;
|
|
use PHPStan\PhpDocParser\Ast\NodeAttributes;
|
|
use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagValueNode;
|
|
use Rector\NodeTypeResolver\Node\AttributeKey;
|
|
use Stringable;
|
|
final class StringNode implements PhpDocTagValueNode
|
|
{
|
|
/**
|
|
* @var string
|
|
*/
|
|
public $value;
|
|
use NodeAttributes;
|
|
public function __construct(string $value)
|
|
{
|
|
$this->value = $value;
|
|
$this->value = \str_replace('""', '"', $this->value);
|
|
if (\strpos($this->value, "'") !== \false && \strpos($this->value, "\n") === \false) {
|
|
$kind = String_::KIND_DOUBLE_QUOTED;
|
|
} else {
|
|
$kind = String_::KIND_SINGLE_QUOTED;
|
|
}
|
|
$this->setAttribute(AttributeKey::KIND, $kind);
|
|
}
|
|
public function __toString() : string
|
|
{
|
|
return '"' . \str_replace('"', '""', $this->value) . '"';
|
|
}
|
|
}
|