From bb838155369996dc7b35c80ad4e9c4a981fb851d Mon Sep 17 00:00:00 2001 From: wangbo Date: Wed, 13 Sep 2017 17:30:07 +0800 Subject: [PATCH] Issues #115. Fix Xcode 9 prototype function issues. --- ReactiveObjC/RACSequence.h | 4 ++-- ReactiveObjC/RACSignal+Operations.h | 3 ++- ReactiveObjC/RACSignal.h | 4 ++-- ReactiveObjC/RACStream.h | 10 ++++++++-- ReactiveObjC/extobjc/EXTScope.h | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ReactiveObjC/RACSequence.h b/ReactiveObjC/RACSequence.h index e807a05d3..c7bc6b9a9 100644 --- a/ReactiveObjC/RACSequence.h +++ b/ReactiveObjC/RACSequence.h @@ -259,7 +259,7 @@ typedef RACSequence * _Nullable (^RACSequenceBindBlock)(ValueType _Nullable valu /// return value must be an object. This argument cannot be nil. /// /// Returns a new sequence of reduced tuple values. -- (RACSequence *)reduceEach:(id _Nullable (^)())reduceBlock; +- (RACSequence *)reduceEach:(RACReduceBlock)reduceBlock; /// Returns a sequence consisting of `value`, followed by the values in the /// receiver. @@ -309,7 +309,7 @@ typedef RACSequence * _Nullable (^RACSequenceBindBlock)(ValueType _Nullable valu /// /// Returns a new sequence containing the results from each invocation of /// `reduceBlock`. -+ (RACSequence *)zip:(id)sequences reduce:(id _Nullable (^)())reduceBlock; ++ (RACSequence *)zip:(id)sequences reduce:(RACReduceBlock)reduceBlock; /// Returns a sequence obtained by concatenating `sequences` in order. + (RACSequence *)concat:(id)sequences; diff --git a/ReactiveObjC/RACSignal+Operations.h b/ReactiveObjC/RACSignal+Operations.h index d2e178264..653a12b60 100644 --- a/ReactiveObjC/RACSignal+Operations.h +++ b/ReactiveObjC/RACSignal+Operations.h @@ -197,7 +197,8 @@ extern const NSInteger RACSignalErrorNoMatchingCase; /// /// Returns a signal which sends the results from each invocation of /// `reduceBlock`. -+ (RACSignal *)combineLatest:(id)signals reduce:(ValueType _Nullable (^)())reduceBlock RAC_WARN_UNUSED_RESULT; ++ (RACSignal *)combineLatest:(id)signals reduce:(RACReduceBlock2)reduceBlock RAC_WARN_UNUSED_RESULT; + /// Merges the receiver and the given signal with `+merge:` and returns the /// resulting signal. diff --git a/ReactiveObjC/RACSignal.h b/ReactiveObjC/RACSignal.h index 6fb5e03fe..ed0572f38 100644 --- a/ReactiveObjC/RACSignal.h +++ b/ReactiveObjC/RACSignal.h @@ -218,7 +218,7 @@ typedef RACSignal * _Nullable (^RACSignalBindBlock)(ValueType _Nullable value, B /// return value must be an object. This argument cannot be nil. /// /// Returns a new signal of reduced tuple values. -- (RACSignal *)reduceEach:(id _Nullable (^)())reduceBlock RAC_WARN_UNUSED_RESULT; +- (RACSignal *)reduceEach:(RACReduceBlock)reduceBlock RAC_WARN_UNUSED_RESULT; /// Returns a signal consisting of `value`, followed by the values in the /// receiver. @@ -268,7 +268,7 @@ typedef RACSignal * _Nullable (^RACSignalBindBlock)(ValueType _Nullable value, B /// /// Returns a new signal containing the results from each invocation of /// `reduceBlock`. -+ (RACSignal *)zip:(id)signals reduce:(id _Nullable (^)())reduceBlock RAC_WARN_UNUSED_RESULT; ++ (RACSignal *)zip:(id)signals reduce:(RACReduceBlock)reduceBlock RAC_WARN_UNUSED_RESULT; /// Returns a signal obtained by concatenating `signals` in order. + (RACSignal *)concat:(id)signals RAC_WARN_UNUSED_RESULT; diff --git a/ReactiveObjC/RACStream.h b/ReactiveObjC/RACStream.h index 0ae04de17..38e6d701c 100644 --- a/ReactiveObjC/RACStream.h +++ b/ReactiveObjC/RACStream.h @@ -21,6 +21,12 @@ NS_ASSUME_NONNULL_BEGIN /// to be overridden. @interface RACStream<__covariant ValueType> : NSObject +_Pragma("clang diagnostic push") \ +_Pragma("clang diagnostic ignored \"-Wstrict-prototypes\"") \ +typedef id _Nullable (^RACReduceBlock)(); +typedef ValueType _Nullable (^RACReduceBlock2)(); +_Pragma("clang diagnostic pop") + /// Returns an empty stream. + (__kindof RACStream *)empty; @@ -170,7 +176,7 @@ typedef RACStream * _Nullable (^RACStreamBindBlock)(ValueType _Nullable value, B /// return value must be an object. This argument cannot be nil. /// /// Returns a new stream of reduced tuple values. -- (__kindof RACStream *)reduceEach:(id _Nullable (^)())reduceBlock; +- (__kindof RACStream *)reduceEach:(RACReduceBlock)reduceBlock; /// Returns a stream consisting of `value`, followed by the values in the /// receiver. @@ -221,7 +227,7 @@ typedef RACStream * _Nullable (^RACStreamBindBlock)(ValueType _Nullable value, B /// /// Returns a new stream containing the results from each invocation of /// `reduceBlock`. -+ (__kindof RACStream *)zip:(id)streams reduce:(id _Nullable (^)())reduceBlock; ++ (__kindof RACStream *)zip:(id)streams reduce:(RACReduceBlock)reduceBlock; /// Returns a stream obtained by concatenating `streams` in order. + (__kindof RACStream *)concat:(id)streams; diff --git a/ReactiveObjC/extobjc/EXTScope.h b/ReactiveObjC/extobjc/EXTScope.h index 4a16f4ae9..8456e8339 100644 --- a/ReactiveObjC/extobjc/EXTScope.h +++ b/ReactiveObjC/extobjc/EXTScope.h @@ -88,7 +88,7 @@ _Pragma("clang diagnostic pop") /*** implementation details follow ***/ -typedef void (^rac_cleanupBlock_t)(); +typedef void (^rac_cleanupBlock_t)(void); static inline void rac_executeCleanupBlock (__strong rac_cleanupBlock_t *block) { (*block)();