static TypeSignature toTypeSignature(Class<?> parentType, FieldMetaData fieldMetaData,
                                         FieldValueMetaData fieldValueMetaData) {
        if (!fieldValueMetaData.isTypedef() && !hasTypeDef(fieldValueMetaData)) {
            return toTypeSignature(fieldValueMetaData);
        }

        try {
            final Field field = parentType.getField(fieldMetaData.fieldName);
            return toTypeSignature(field.getGenericType());
        } catch (NoSuchFieldException e) {
            // Ignore exception.
        }
        return TypeSignature.ofUnresolved(firstNonNull(fieldValueMetaData.getTypedefName(), "unknown"));
    }
A {@link DescriptiveTypeInfoProvider} to create a {@link DescriptiveTypeInfo} from a Thrift type
such as {@link TBase} {@link TEnum} or {@link TException}.
thrift/thrift0.13/src/main/java/com/linecorp/armeria/internal/server/thrift/ThriftDescriptiveTypeInfoProvider.java