1: <?php declare(strict_types = 1);
2:
3: namespace PHPStan\PhpDoc\Tag;
4:
5: use PHPStan\Type\Type;
6:
7: /**
8: * @api
9: * @final
10: */
11: class ReturnTag implements TypedTag
12: {
13:
14: public function __construct(private Type $type, private bool $isExplicit)
15: {
16: }
17:
18: public function getType(): Type
19: {
20: return $this->type;
21: }
22:
23: public function isExplicit(): bool
24: {
25: return $this->isExplicit;
26: }
27:
28: /**
29: * @return self
30: */
31: public function withType(Type $type): TypedTag
32: {
33: return new self($type, $this->isExplicit);
34: }
35:
36: public function toImplicit(): self
37: {
38: return new self($this->type, false);
39: }
40:
41: }
42: