resolveGenericType static method

GenericTypeParsingResult resolveGenericType(
  1. String typeString
)

Recursively resolves a type string into its components.

Parameters:

  • typeString: The type string to resolve

Returns:

Example:

final result = GenericTypeParser.resolveGenericType('Map<String, List<int>>');
print(result.base); // 'Map'
print(result.types.length); // 2

Implementation

static GenericTypeParsingResult resolveGenericType(String typeString) {
  // Handle generic types like "List<String>"
  if (isGeneric(typeString)) {
    String baseName = typeString.split('<').first;
    if(_caveats.any((c) => c == baseName)) {
      baseName = baseName.replaceAll("_", "");
    }

    // Extract generic parameters and recursively parse them
    final genericPart = extractGenericPart(typeString);
    final genericTypes = parseGenericTypes(genericPart);

    return GenericTypeParsingResult(baseName, typeString, genericTypes);
  }

  // Handle non-generic types (base case for recursion)
  return GenericTypeParsingResult(typeString, typeString, []);
}