2.99 Subclasses of Gimp.ItemComboBox throw "first argument cannot be null" from Python contrary to docs; annotations inconsistent.
Gimp.DrawableComboBox works as documented, on a call to new() allowing the args "constraint" and "data" to be null.
Image and [Layer, Channel, Vectors] fail and throw an exception in Python if called with None for those arguments.
The python code I tested was ".new()" and ".new(None, None)". That code worked for Drawable, not for the others.
Looking at the source in libgimp/gimpitemcombobox.c, the annotations are inconsistent. [Layer, Channel, Vectors] are subclasses of Gimp.ItemComboBox. Drawable is annotated one way (the correct way?), the others a different way. The non-parseable annotations all say that None is allowed for those arguments.
Similarly ImageComboBox fails, but it is in a different source file libgimp/gimpimagecombobox.c.
I did not test EnumComboBox, but it also subclasses ItemComboBox and likely has wrong annotations.
According to docs generated from annotations, 6 subclasses total.
A workaround might be to pass a constraint function that alway returns True, and don't care data.
(Not related, but interesting: I also tried inheriting those classes in Python. That doesn't work, although subclassing Gtk widgets seems to work.)
Context: Ubuntu 20.04 self-built, meson gimp, built today I'm testing all the widgets from a Python test harness.