|
|
|
/*
|
|
|
|
* Copyright (c) 2015 - present Facebook, Inc.
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* This source code is licensed under the BSD style license found in the
|
|
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#import <Foundation/NSString.h>
|
|
|
|
|
|
|
|
@interface A : NSObject {
|
|
|
|
@public
|
|
|
|
int fld;
|
|
|
|
}
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface B : NSObject
|
|
|
|
|
|
|
|
@property int prop;
|
|
|
|
|
|
|
|
- (void)method;
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
int derefNullableParamDirect(A* __nullable param) { return param->fld; }
|
|
|
|
|
|
|
|
int derefNullableParamIndirect(A* __nullable param) {
|
|
|
|
A* local = param;
|
|
|
|
return local->fld;
|
|
|
|
}
|
|
|
|
|
|
|
|
A* derefNullableParamOk(A* __nullable param) {
|
|
|
|
if (!param)
|
|
|
|
param = [A new];
|
|
|
|
param->fld = 7;
|
|
|
|
return param;
|
|
|
|
}
|
|
|
|
|
|
|
|
int readNullableParamPropertyOk(B* __nullable param) { return param.prop; }
|
|
|
|
|
|
|
|
void writeNullableParamPropertyOk(B* __nullable param) { param.prop = 7; }
|
|
|
|
|
|
|
|
void methodCallOnNullableParamOk(B* __nullable param) { [param method]; }
|