By porting to
GTypeInstance and adding introspection, we can build documentation for the library.
GTypeInstance is necessary to make the introspected API usable and for it to have a sensible type system. Previously everything in libgirepository was an alias of
GIBaseInfo and code just had to do a pinkie-promise that it wouldn’t call the wrong method on the wrong ‘type’ blob at any time.
There’s lots more work to be done on libgirepository, but this MR at least unblocks further improvements to the GIR and documentation.
It also adds the very very beginnings of a test suite for libgirepository, which was needed to validate the type system changes.
Helps: #3155 (closed)