Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 148 | Ganze Datei anzeigen | Leerzeichen ignorieren | Details | Blame | Letzte Änderung | Log anzeigen | RSS feed

Revision 148 Revision 688
Zeile 24... Zeile 24...
24
use PhpParser\Node\Stmt\Enum_;
24
use PhpParser\Node\Stmt\Enum_;
25
use PhpParser\Node\Stmt\Function_;
25
use PhpParser\Node\Stmt\Function_;
26
use PhpParser\Node\Stmt\Interface_;
26
use PhpParser\Node\Stmt\Interface_;
27
use PhpParser\Node\Stmt\Trait_;
27
use PhpParser\Node\Stmt\Trait_;
28
use PhpParser\Node\UnionType;
28
use PhpParser\Node\UnionType;
-
 
29
use PhpParser\NodeAbstract;
29
use PhpParser\NodeTraverser;
30
use PhpParser\NodeTraverser;
30
use PhpParser\NodeVisitorAbstract;
31
use PhpParser\NodeVisitorAbstract;
31
use SebastianBergmann\Complexity\CyclomaticComplexityCalculatingVisitor;
32
use SebastianBergmann\Complexity\CyclomaticComplexityCalculatingVisitor;
Zeile 32... Zeile 33...
32
 
33
 
Zeile 178... Zeile 179...
178
 
179
 
179
        if ($type instanceof NullableType) {
180
        if ($type instanceof NullableType) {
180
            return '?' . $type->type;
181
            return '?' . $type->type;
Zeile -... Zeile 182...
-
 
182
        }
-
 
183
 
-
 
184
        if ($type instanceof UnionType) {
-
 
185
            return $this->unionTypeAsString($type);
181
        }
186
        }
182
 
187
 
183
        if ($type instanceof UnionType || $type instanceof IntersectionType) {
188
        if ($type instanceof IntersectionType) {
Zeile 184... Zeile 189...
184
            return $this->unionOrIntersectionAsString($type);
189
            return $this->intersectionTypeAsString($type);
185
        }
190
        }
Zeile 296... Zeile 301...
296
    private function namespace(string $namespacedName, string $name): string
301
    private function namespace(string $namespacedName, string $name): string
297
    {
302
    {
298
        return trim(rtrim($namespacedName, $name), '\\');
303
        return trim(rtrim($namespacedName, $name), '\\');
299
    }
304
    }
Zeile 300... Zeile -...
300
 
-
 
301
    /**
-
 
302
     * @psalm-param UnionType|IntersectionType $type
-
 
303
     */
305
 
304
    private function unionOrIntersectionAsString(ComplexType $type): string
306
    private function unionTypeAsString(UnionType $node): string
-
 
307
    {
-
 
308
        $types = [];
-
 
309
 
305
    {
310
        foreach ($node->types as $type) {
-
 
311
            if ($type instanceof IntersectionType) {
-
 
312
                $types[] = '(' . $this->intersectionTypeAsString($type) . ')';
306
        if ($type instanceof UnionType) {
313
 
307
            $separator = '|';
314
                continue;
-
 
315
            }
308
        } else {
316
 
309
            $separator = '&';
317
            $types[] = $this->typeAsString($type);
Zeile -... Zeile 318...
-
 
318
        }
-
 
319
 
-
 
320
        return implode('|', $types);
-
 
321
    }
-
 
322
 
310
        }
323
    private function intersectionTypeAsString(IntersectionType $node): string
Zeile 311... Zeile 324...
311
 
324
    {
312
        $types = [];
-
 
313
 
325
        $types = [];
314
        foreach ($type->types as $_type) {
326
 
315
            if ($_type instanceof Name) {
-
 
Zeile 316... Zeile 327...
316
                $types[] = $_type->toCodeString();
327
        foreach ($node->types as $type) {
-
 
328
            $types[] = $this->typeAsString($type);
-
 
329
        }
-
 
330
 
-
 
331
        return implode('&', $types);
317
            } else {
332
    }
-
 
333
 
-
 
334
    /**
-
 
335
     * @psalm-param Identifier|Name $node $node
-
 
336
     */
318
                assert($_type instanceof Identifier);
337
    private function typeAsString(NodeAbstract $node): string
Zeile 319... Zeile 338...
319
 
338
    {
320
                $types[] = $_type->toString();
339
        if ($node instanceof Name) {
321
            }
340
            return $node->toCodeString();