Skip to content

Commit 4903ffc

Browse files
committed
Fix type decorations
1 parent 8be45c2 commit 4903ffc

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/Kernel/Repository/DecorateByCoercibleTypeRepository.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use TypeLang\Mapper\Coercer\TypeCoercerInterface;
88
use TypeLang\Mapper\Kernel\Repository\TypeDecorator\CoercibleType;
9+
use TypeLang\Mapper\Kernel\Repository\TypeDecorator\TypeDecorator;
910
use TypeLang\Mapper\Type\TypeInterface;
1011
use TypeLang\Parser\Node\Stmt\TypeStatement;
1112

@@ -49,13 +50,17 @@ private function formatTypeCoercers(iterable $coercers): array
4950
#[\Override]
5051
public function getTypeByStatement(TypeStatement $statement): TypeInterface
5152
{
52-
$type = parent::getTypeByStatement($statement);
53+
$concrete = $type = parent::getTypeByStatement($statement);
5354

5455
if ($type instanceof CoercibleType) {
5556
return $type;
5657
}
5758

58-
$coercer = $this->coercers[$type::class] ?? null;
59+
if ($concrete instanceof TypeDecorator) {
60+
$concrete = $concrete->getDecoratedType();
61+
}
62+
63+
$coercer = $this->coercers[$concrete::class] ?? null;
5964

6065
if ($coercer === null) {
6166
return $type;

0 commit comments

Comments
 (0)