File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed
Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change 66
77use TypeLang \Mapper \Coercer \TypeCoercerInterface ;
88use TypeLang \Mapper \Kernel \Repository \TypeDecorator \CoercibleType ;
9+ use TypeLang \Mapper \Kernel \Repository \TypeDecorator \TypeDecorator ;
910use TypeLang \Mapper \Type \TypeInterface ;
1011use 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 ;
You can’t perform that action at this time.
0 commit comments