Liam Appelbe
Liam Appelbe
That header is generated by the swift compiler, and the header parsing is done by clang, so ffigen doesn't directly get involved in that error. I think the first thing...
> The `objc-interfaces` is generated correctly, but the `AVLayterVideoGravity` which is a `typedef` can't be generated. I think `AVLayerVideoGravity` is a [struct](https://developer.apple.com/documentation/avfoundation/avlayervideogravity). What header file is it defined in? If...
> I've imported the AVFoundation header, do I need to import another header? I'm not sure. The error you're describing is a clang compile error, so there's nothing I can...
Blocked on https://github.com/dart-lang/native/issues/1259. Once I've implemented transformers, I'll overhaul how categories are implemented.
Note to self: - Promote categories to an AST object (similar to `ObjCProtocol`), instead of just adding their methods to their interface - Code gen them as extension methods on...
One unfortunate thing I've noticed is that there are a bunch of methods that the Apple documentation treats as ordinary methods, but are actually methods on a category. For example...
> * Code gen them as extension methods on the interface This doesn't always work. If the method returns `instancetype`, then I can code gen it as an extension method...
There's also a similar issue where an [ordinary method](https://developer.apple.com/documentation/appkit/nscontrol/1428964-selectedcell?language=objc) is overridden by a [getter](https://developer.apple.com/documentation/appkit/nsmatrix/1436472-selectedcell). This one is trickier because this method/getter difference is not allowed in either direction in Dart....
I think the fix for the method/getter clash is going to be fiddly enough that it's probably time to bite the bullet and implement the transformer refactor: #1259
Btw pkgs/objective_c/ffigen_objc.yaml probably doesn't need to explicitly list all the interfaces etc