diff --git a/src/Types/Type.php b/src/Types/Type.php index 2b49248ec3b..7613811e971 100644 --- a/src/Types/Type.php +++ b/src/Types/Type.php @@ -138,6 +138,16 @@ public static function getType($name) return self::getTypeRegistry()->get($name); } + /** + * Finds a name for the given type. + * + * @throws Exception + */ + public static function lookupName(self $type): string + { + return self::getTypeRegistry()->lookupName($type); + } + /** * Adds a custom type to the type map. * diff --git a/tests/Types/TypeTest.php b/tests/Types/TypeTest.php index e6999eabfce..05b2199ae39 100644 --- a/tests/Types/TypeTest.php +++ b/tests/Types/TypeTest.php @@ -17,6 +17,13 @@ public function testDefaultTypesAreRegistered(string $name): void self::assertTrue(Type::hasType($name)); } + /** @dataProvider defaultTypesProvider() */ + public function testDefaultTypesReverseLookup(string $name): void + { + $type = Type::getType($name); + self::assertSame($name, Type::lookupName($type)); + } + /** @return iterable */ public static function defaultTypesProvider(): iterable {