Scanning fails with NotImplementedError on callback typedef
@pwithnall
Submitted by Philip Withnall Link to original bug (#625379)
Description
I'm adding introspection support to e-d-s, currently working on libedataserver. When I run the following command in the libedataserver directory:
/opt/gnome2/build/bin/g-ir-scanner --add-include-path=. --namespace=EDataServer --nsversion=1.2 --libtool="/bin/sh ../libtool" --include=GObject-2.0 --library=libedataserver-1.2.la --warn-all e-account-list.c e-account.c e-categories.c e-flag.c e-iterator.c e-list.c e-list-iterator.c e-memory.c e-proxy.c e-sexp.c e-source-group.c e-source-list.c e-source.c e-time-utils.c e-uid.c e-url.c e-data-server-util.c e-xml-utils.c e-xml-hash-utils.c eds-version.c e-account-list.h e-account.h e-categories.h e-flag.h e-iterator.h e-list.h e-list-iterator.h e-memory.h e-proxy.h e-sexp.h e-source-group.h e-source-list.h e-source.h e-time-utils.h e-uid.h e-url.h e-data-server-util.h e-xml-utils.h e-xml-hash-utils.h eds-version.h libedataserver-1.2.la --output EDataServer-1.2.gir
scanning fails with the following backtrace:
Traceback (most recent call last):
File "/opt/gnome2/build/bin/g-ir-scanner", line 38, in `<module>`
sys.exit(scanner_main(sys.argv))
File "/opt/gnome2/build/lib/gobject-introspection/giscanner/scannermain.py", line 322, in scanner_main
glibtransformer.init_parse()
File "/opt/gnome2/build/lib/gobject-introspection/giscanner/glibtransformer.py", line 124, in init_parse
namespace = self._transformer.parse()
File "/opt/gnome2/build/lib/gobject-introspection/giscanner/transformer.py", line 109, in parse
node = self._traverse_one(symbol)
File "/opt/gnome2/build/lib/gobject-introspection/giscanner/transformer.py", line 261, in _traverse_one
return self._create_typedef(symbol)
File "/opt/gnome2/build/lib/gobject-introspection/giscanner/transformer.py", line 485, in _create_typedef
"symbol %r of type %s" % (symbol.ident, ctype_name(ctype)))
NotImplementedError: symbol 'ESExpFunc' of type function
I guess this is because of the weird typedef of ESExpFunc here:
http://git.gnome.org/browse/evolution-data-server/tree/libedataserver/e-sexp.h
Edited by Christoph Reiter