getIterableGenericType method
DartType?
getIterableGenericType(
- IterableType iterableType
)
Implementation
DartType? getIterableGenericType(IterableType iterableType) {
// 1. Check explicit type arguments on the literal itself
// e.g., `<String>[]` or `<Direction, String>{}`
if (typeArguments case TypeArgumentList(
:final arguments,
) when arguments.isNotEmpty) {
return switch (iterableType) {
IterableType.mapValue when arguments.length == 2 => arguments[1].type,
IterableType.mapKey when arguments.length == 2 => arguments[0].type,
IterableType.list ||
IterableType.set when arguments.length == 1 => arguments[0].type,
_ => null,
};
}
// 2. Try to get type from context (parameter, return type, etc.)
final contextType = _getContextType();
if (contextType != null) {
return _extractTypeArgument(contextType, iterableType);
}
return null;
}