missed some files
diff --git a/pkgs/ffigen/lib/src/config_provider/yaml_config.dart b/pkgs/ffigen/lib/src/config_provider/yaml_config.dart index 7cb1371..3351e6a 100644 --- a/pkgs/ffigen/lib/src/config_provider/yaml_config.dart +++ b/pkgs/ffigen/lib/src/config_provider/yaml_config.dart
@@ -1333,6 +1333,8 @@ node.isIncluded = false; } else if (decl.excludeAllByDefault) { node.isIncluded = false; + } else if (node is public_ast.ObjCInterface && node.isObjCImport) { + node.isIncluded = false; } else { node.isIncluded = true; }
diff --git a/pkgs/ffigen/lib/src/header_parser/parser.dart b/pkgs/ffigen/lib/src/header_parser/parser.dart index 1dcc446..c2ebd04 100644 --- a/pkgs/ffigen/lib/src/header_parser/parser.dart +++ b/pkgs/ffigen/lib/src/header_parser/parser.dart
@@ -178,13 +178,18 @@ visit(context, FixOverriddenMethodsVisitation(context), allBindings); // Execute Public AST visitors. - final publicAst = public_ast.PublicAst.fromBindings(rawBindings); + final allBindingsWithImports = allBindings.union( + rawBindings.where((b) => b.isObjCImport).toSet(), + ); + final publicAst = public_ast.PublicAst.fromBindings( + allBindingsWithImports.toList(), + ); for (final v in config.visitors) { publicAst.accept(v); } final applyConfigFiltersVisitation = ApplyConfigFiltersVisitation(config); - visit(context, applyConfigFiltersVisitation, rawBindings); + visit(context, applyConfigFiltersVisitation, allBindingsWithImports); final directlyIncluded = applyConfigFiltersVisitation.directlyIncluded; final indirectlyIncluded = applyConfigFiltersVisitation.indirectlyIncluded; final included = directlyIncluded.union(indirectlyIncluded);
diff --git a/pkgs/ffigen/lib/src/visitor/fill_method_dependencies.dart b/pkgs/ffigen/lib/src/visitor/fill_method_dependencies.dart index 4de98d5..3dbfe1e 100644 --- a/pkgs/ffigen/lib/src/visitor/fill_method_dependencies.dart +++ b/pkgs/ffigen/lib/src/visitor/fill_method_dependencies.dart
@@ -95,6 +95,7 @@ @override void visitObjCInterface(ObjCInterface node) { + if (node.isObjCImport) return; if (!finalBindings.contains(node)) { node.generateAsStub = true; finalBindings.add(node);
diff --git a/pkgs/ffigen/lib/src/visitor/find_transitive_deps.dart b/pkgs/ffigen/lib/src/visitor/find_transitive_deps.dart index e22f4cd..8398c7d 100644 --- a/pkgs/ffigen/lib/src/visitor/find_transitive_deps.dart +++ b/pkgs/ffigen/lib/src/visitor/find_transitive_deps.dart
@@ -31,14 +31,18 @@ @override void visitEnumClass(EnumClass node) { - if (node.isAnonymous) return; - visitBinding(node); + node.visitChildren(visitor); + if (!node.isAnonymous) { + transitives.add(node); + } } @override void visitTypealias(Typealias node) { - if (node.isAnonymous) return; - visitBinding(node); + node.visitChildren(visitor); + if (!node.isAnonymous) { + transitives.add(node); + } } }
diff --git a/pkgs/ffigen/test/native_objc_test/protocol_test_bindings.dart b/pkgs/ffigen/test/native_objc_test/protocol_test_bindings.dart index 36425ee..7100665 100644 --- a/pkgs/ffigen/test/native_objc_test/protocol_test_bindings.dart +++ b/pkgs/ffigen/test/native_objc_test/protocol_test_bindings.dart
@@ -646,27 +646,6 @@ ); } -/// NSString -/// -/// NSString -extension type NSString._(objc.ObjCObject object$) - implements - objc.ObjCObject, - objc.NSObject, - objc.NSCopying, - objc.NSMutableCopying, - objc.NSSecureCoding { - /// Constructs a [NSString] that points to the same underlying object as [other]. - NSString.as(objc.ObjCObject other) : object$ = other {} - - /// Constructs a [NSString] that wraps the given raw object pointer. - NSString.fromPointer( - ffi.Pointer<objc.ObjCObjectImpl> other, { - bool retain = false, - bool release = false, - }) : object$ = objc.ObjCObject(other, retain: retain, release: release) {} -} - /// Construction methods for `objc.ObjCBlock<ffi.Int32 Function(ffi.Pointer<ffi.Void>)>`. abstract final class ObjCBlock_Int32_ffiVoid { /// Returns a block that wraps the given raw block pointer.