diff --git a/src/App/Helper/TypeGuesser.php b/src/App/Helper/TypeGuesser.php index 121177a..8a37d83 100644 --- a/src/App/Helper/TypeGuesser.php +++ b/src/App/Helper/TypeGuesser.php @@ -116,18 +116,12 @@ private function isAbstractType(TypeDoc $doc) : bool private function guessPrimaryTypeFromConstraint(Constraint $constraint) : ?TypeDoc { // Try to guess primary types - if (null !== $this->getMatchingClassNameIn($constraint, self::STRING_CONSTRAINT_CLASS_LIST)) { - return new StringDoc(); - } elseif (null !== $this->getMatchingClassNameIn($constraint, self::BOOLEAN_CONSTRAINT_CLASS_LIST)) { - return new BooleanDoc(); + if (null !== ($type = $this->guessSimplePrimaryTypeFromConstraint($constraint))) { + return $type; } elseif ($constraint instanceof Assert\DateTime) { return $this->guessDateTimeType($constraint); } elseif ($constraint instanceof Assert\Collection) { return $this->guestCollectionType($constraint); - } elseif ($constraint instanceof Assert\Regex) { - return new ScalarDoc(); - } elseif ($this->isArrayConstraint($constraint)) { - return new ArrayDoc(); } return null; @@ -175,4 +169,24 @@ private function isArrayConstraint(Constraint $constraint): bool && true === $constraint->multiple // << expect an array multiple choices ); } + + /** + * @param Constraint $constraint + * + * @return TypeDoc|null + */ + private function guessSimplePrimaryTypeFromConstraint(Constraint $constraint) : ?TypeDoc + { + if (null !== $this->getMatchingClassNameIn($constraint, self::STRING_CONSTRAINT_CLASS_LIST)) { + return new StringDoc(); + } elseif (null !== $this->getMatchingClassNameIn($constraint, self::BOOLEAN_CONSTRAINT_CLASS_LIST)) { + return new BooleanDoc(); + } elseif ($constraint instanceof Assert\Regex) { + return new ScalarDoc(); + } elseif ($this->isArrayConstraint($constraint)) { + return new ArrayDoc(); + } + + return null; + } }