diff --git a/CHANGELOG.md b/CHANGELOG.md index e94507d..fdeb06d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * docs: Add rationale. * fix: Add variance safeguard. +* dx: Clarity. ## 0.5.12 diff --git a/src/TransformerRegistry/TransformerRegistry.php b/src/TransformerRegistry/TransformerRegistry.php index 0bf861e..8ddb62e 100644 --- a/src/TransformerRegistry/TransformerRegistry.php +++ b/src/TransformerRegistry/TransformerRegistry.php @@ -59,7 +59,9 @@ public function findBySourceAndTargetType( $searchResultEntries = []; foreach ($mapping as $mappingEntry) { - if ($mappingEntry->isVariantTargetType() || !TypeCheck::isObject($targetType)) { + if ($mappingEntry->isVariantTargetType()) { + // if variant + $searchResultEntry = new SearchResultEntry( mappingOrder: $mappingEntry->getOrder(), sourceType: $sourceType, @@ -70,6 +72,8 @@ public function findBySourceAndTargetType( $searchResultEntries[] = $searchResultEntry; } else { + // if invariant, check if target type is somewhat identical + if ( TypeCheck::isSomewhatIdentical( $targetType,