parseCollectionTypeDescriptor function

ListTypeInfo? parseCollectionTypeDescriptor(
  1. $AT descriptor
)

Implementation

ListTypeInfo? parseCollectionTypeDescriptor($AT descriptor) {
  CollectionKind? kind;
  if (isListTypeDescriptor(descriptor)) {
    kind = CollectionKind.list;
  } else if (isSetTypeDescriptor(descriptor)) {
    kind = CollectionKind.set;
  }

  if (kind == null || descriptor.typeArguments.isEmpty) {
    return null;
  }

  return ListTypeInfo(
    kind: kind,
    typeDescriptor: descriptor,
    elementTypeDescriptor: descriptor.typeArguments.first,
    nullableElement: isNullableTypeDescriptor(descriptor.typeArguments.first),
    nullableCollection: isNullableTypeDescriptor(descriptor),
  );
}