Skip to content

Commit a31d872

Browse files
authored
[ffigen] Remove an old TODO that filtered certain methods from package:objective_c (#2335)
1 parent a98c8e2 commit a31d872

11 files changed

+12901
-4122
lines changed

pkgs/ffigen/lib/src/code_generator/objc_built_in_types.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,12 @@ const objCBuiltInInterfaces = {
3333
'NSNumber': 'NSNumber',
3434
'NSObject': 'NSObject',
3535
'NSOutputStream': 'NSOutputStream',
36+
'NSOrderedCollectionChange': 'NSOrderedCollectionChange',
3637
'NSOrderedCollectionDifference': 'NSOrderedCollectionDifference',
3738
'NSOrderedSet': 'NSOrderedSet',
3839
'NSPort': 'NSPort',
3940
'NSPortMessage': 'NSPortMessage',
41+
'NSProgress': 'NSProgress',
4042
'NSRunLoop': 'NSRunLoop',
4143
'NSSet': 'NSSet',
4244
'NSStream': 'NSStream',
@@ -65,6 +67,7 @@ const objCBuiltInCompounds = {
6567
const objCBuiltInEnums = {
6668
'NSAppleEventSendOptions',
6769
'NSBinarySearchingOptions',
70+
'NSCollectionChangeType',
6871
'NSComparisonResult',
6972
'NSDataBase64DecodingOptions',
7073
'NSDataBase64EncodingOptions',

pkgs/ffigen/lib/src/code_generator/objc_methods.dart

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,12 @@ mixin ObjCMethods {
3030

3131
void addMethod(ObjCMethod? method) {
3232
if (method == null) return;
33-
if (_shouldIncludeMethod(method)) {
34-
final oldMethod = getSimilarMethod(method);
35-
if (oldMethod != null) {
36-
_methods[method.key] = _maybeReplaceMethod(oldMethod, method);
37-
} else {
38-
_methods[method.key] = method;
39-
_order.add(method.key);
40-
}
33+
final oldMethod = getSimilarMethod(method);
34+
if (oldMethod != null) {
35+
_methods[method.key] = _maybeReplaceMethod(oldMethod, method);
36+
} else {
37+
_methods[method.key] = method;
38+
_order.add(method.key);
4139
}
4240
}
4341

@@ -89,20 +87,6 @@ mixin ObjCMethods {
8987
return newMethod;
9088
}
9189

92-
bool _shouldIncludeMethod(ObjCMethod method) =>
93-
method.childTypes.every((Type t) {
94-
t = t.typealiasType.baseType;
95-
96-
// Ignore methods with block args or rets when we're generating in
97-
// package:objective_c.
98-
// TODO(https://github.com/dart-lang/native/issues/1180): Remove this.
99-
if (builtInFunctions.generateForPackageObjectiveC && t is ObjCBlock) {
100-
return false;
101-
}
102-
103-
return true;
104-
});
105-
10690
UniqueNamer createMethodRenamer(Writer w) =>
10791
UniqueNamer(parent: w.topLevelUniqueNamer)
10892
..markAllUsed([

pkgs/ffigen/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ dev_dependencies:
4040
dart_flutter_team_lints: ^2.0.0
4141
json_schema: ^5.1.1
4242
leak_tracker: ^10.0.7
43-
objective_c: ^8.0.0
43+
objective_c: ^8.1.0
4444
test: ^1.16.2
4545

4646
dependency_overrides:

pkgs/objective_c/ffigen_objc.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,12 @@ objc-interfaces:
5353
- NSNumber
5454
- NSObject
5555
- NSOutputStream
56+
- NSOrderedCollectionChange
5657
- NSOrderedCollectionDifference
5758
- NSOrderedSet
5859
- NSPort
5960
- NSPortMessage
61+
- NSProgress
6062
- NSRunLoop
6163
- NSSet
6264
- NSStream
@@ -124,6 +126,7 @@ enums:
124126
include:
125127
- NSAppleEventSendOptions
126128
- NSBinarySearchingOptions
129+
- NSCollectionChangeType
127130
- NSComparisonResult
128131
- NSDataBase64DecodingOptions
129132
- NSDataBase64EncodingOptions

pkgs/objective_c/lib/objective_c.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export 'src/ns_input_stream.dart';
2828
export 'src/ns_mutable_data.dart';
2929
export 'src/ns_number.dart';
3030
export 'src/ns_string.dart';
31-
export 'src/objective_c_bindings_generated.dart';
31+
export 'src/objective_c_bindings_exported.dart';
3232
export 'src/os_version.dart';
3333
export 'src/protocol_builder.dart';
3434
export 'src/selector.dart';
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
// Generated by package:objective_c's tool/generate_code.dart.
6+
7+
export 'objective_c_bindings_generated.dart'
8+
show
9+
AEDesc,
10+
CFRunLoop,
11+
CFString,
12+
CGPoint,
13+
CGRect,
14+
CGSize,
15+
DartProtocol,
16+
DartProtocolBuilder,
17+
NSAppleEventSendOptions,
18+
NSArray,
19+
NSBinarySearchingOptions,
20+
NSCharacterSet,
21+
NSCoder,
22+
NSCoding,
23+
NSCollectionChangeType,
24+
NSComparisonResult,
25+
NSCopying,
26+
NSData,
27+
NSDataBase64DecodingOptions,
28+
NSDataBase64EncodingOptions,
29+
NSDataCompressionAlgorithm,
30+
NSDataCreation,
31+
NSDataReadingOptions,
32+
NSDataSearchOptions,
33+
NSDataWritingOptions,
34+
NSDate,
35+
NSDecodingFailurePolicy,
36+
NSDictionary,
37+
NSEdgeInsets,
38+
NSEnumerationOptions,
39+
NSEnumerator,
40+
NSError,
41+
NSExtendedArray,
42+
NSExtendedData,
43+
NSExtendedDate,
44+
NSExtendedDictionary,
45+
NSExtendedEnumerator,
46+
NSExtendedMutableArray,
47+
NSExtendedMutableData,
48+
NSExtendedMutableDictionary,
49+
NSExtendedMutableOrderedSet,
50+
NSExtendedMutableSet,
51+
NSExtendedOrderedSet,
52+
NSExtendedSet,
53+
NSFastEnumeration,
54+
NSFastEnumerationState,
55+
NSIndexSet,
56+
NSInputStream,
57+
NSInvocation,
58+
NSItemProvider,
59+
NSItemProviderFileOptions,
60+
NSItemProviderReading,
61+
NSItemProviderRepresentationVisibility,
62+
NSItemProviderWriting,
63+
NSKeyValueChange,
64+
NSKeyValueObservingOptions,
65+
NSKeyValueSetMutationKind,
66+
NSLinguisticTaggerOptions,
67+
NSLocale,
68+
NSLocaleLanguageDirection,
69+
NSMethodSignature,
70+
NSMutableArray,
71+
NSMutableCopying,
72+
NSMutableData,
73+
NSMutableDictionary,
74+
NSMutableIndexSet,
75+
NSMutableOrderedSet,
76+
NSMutableSet,
77+
NSMutableString,
78+
NSNotification,
79+
NSNumber,
80+
NSNumberCreation,
81+
NSNumberIsFloat,
82+
NSObject,
83+
NSObjectProtocol,
84+
NSOrderedCollectionChange,
85+
NSOrderedCollectionDifference,
86+
NSOrderedCollectionDifferenceCalculationOptions,
87+
NSOrderedSet,
88+
NSOutputStream,
89+
NSPort,
90+
NSPortDelegate,
91+
NSPortMessage,
92+
NSProgress,
93+
NSPropertyListFormat,
94+
NSQualityOfService,
95+
NSRange,
96+
NSRunLoop,
97+
NSSecureCoding,
98+
NSSet,
99+
NSSortOptions,
100+
NSStream,
101+
NSStreamDelegate,
102+
NSStreamEvent,
103+
NSStreamStatus,
104+
NSString,
105+
NSStringCompareOptions,
106+
NSStringEncodingConversionOptions,
107+
NSStringEnumerationOptions,
108+
NSStringExtensionMethods,
109+
NSTimer,
110+
NSURL,
111+
NSURLBookmarkCreationOptions,
112+
NSURLBookmarkResolutionOptions,
113+
NSURLHandle,
114+
NSURLHandleStatus,
115+
NSValue,
116+
NSZone,
117+
OpaqueAEDataStorageType,
118+
Protocol;

0 commit comments

Comments
 (0)