Fix nullability incompatibility

pull/16190/head
Muxi Yan 6 years ago
parent d36a13af31
commit 8bc8ff3dce
  1. 11
      src/compiler/objective_c_generator.cc
  2. 5
      src/objective-c/ProtoRPC/ProtoRPC.h
  3. 10
      src/objective-c/ProtoRPC/ProtoService.m

@ -355,7 +355,7 @@ void PrintMethodImplementations(Printer* printer,
"@implementation $service_class$\n\n"
"// Designated initializer\n"
"- (instancetype)initWithHost:(NSString *)host "
"callOptions:(GRPCCallOptions *_Nullable)callOptions{\n"
"callOptions:(GRPCCallOptions *_Nullable)callOptions {\n"
" self = [super initWithHost:host\n"
" packageName:@\"$package$\"\n"
" serviceName:@\"$service_name$\"\n"
@ -363,10 +363,9 @@ void PrintMethodImplementations(Printer* printer,
" return self;\n"
"}\n\n"
"- (instancetype)initWithHost:(NSString *)host {\n"
" return [self initWithHost:host\n"
" packageName:@\"$package$\"\n"
" serviceName:@\"$service_name$\"\n"
" callOptions:nil];\n"
" return [super initWithHost:host\n"
" packageName:@\"$package$\"\n"
" serviceName:@\"$service_name$\"];\n"
"}\n\n");
printer.Print(
@ -381,7 +380,7 @@ void PrintMethodImplementations(Printer* printer,
printer.Print(
"#pragma mark - Class Methods\n\n"
"+ (instancetype)serviceWithHost:(NSString *)host {\n"
" return [self serviceWithHost:host callOptions:nil];\n"
" return [[self alloc] initWithHost:host];\n"
"}\n\n"
"+ (instancetype)serviceWithHost:(NSString *)host "
"callOptions:(GRPCCallOptions *_Nullable)callOptions {\n"

@ -134,6 +134,9 @@ NS_ASSUME_NONNULL_BEGIN
NS_ASSUME_NONNULL_END
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnullability-completeness"
__attribute__((deprecated("Please use GRPCProtoCall."))) @interface ProtoRPC
: GRPCCall
@ -160,3 +163,5 @@ __attribute__((deprecated("Please use GRPCProtoCall."))) @interface ProtoRPC
#pragma clang diagnostic pop
@end
#pragma clang diagnostic pop

@ -61,7 +61,15 @@
- (instancetype)initWithHost:(NSString *)host
packageName:(NSString *)packageName
serviceName:(NSString *)serviceName {
return [self initWithHost:host packageName:packageName serviceName:serviceName callOptions:nil];
// Do not call designated initializer here due to nullability incompatibility. This method is from
// old API and does not assert on nullability of the parameters.
if ((self = [super init])) {
_host = [host copy];
_packageName = [packageName copy];
_serviceName = [serviceName copy];
_callOptions = nil;
}
return self;
}
- (GRPCProtoCall *)RPCToMethod:(NSString *)method

Loading…
Cancel
Save