summaryrefslogtreecommitdiff
path: root/platform/darwin/src
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/src')
-rw-r--r--platform/darwin/src/MGLStyleValue_Private.h2
-rw-r--r--platform/darwin/src/NSExpression+MGLAdditions.h2
-rw-r--r--platform/darwin/src/NSExpression+MGLAdditions.mm17
-rw-r--r--platform/darwin/src/NSExpression+MGLPrivateAdditions.h4
-rw-r--r--platform/darwin/src/NSPredicate+MGLPrivateAdditions.h6
5 files changed, 20 insertions, 11 deletions
diff --git a/platform/darwin/src/MGLStyleValue_Private.h b/platform/darwin/src/MGLStyleValue_Private.h
index fee34b4b71..376bf5e73b 100644
--- a/platform/darwin/src/MGLStyleValue_Private.h
+++ b/platform/darwin/src/MGLStyleValue_Private.h
@@ -291,7 +291,7 @@ private: // Private utilities for converting from mbgl to mgl values
}
// Array
- static ObjCType toMGLRawStyleValue(const std::vector<MBGLElement> &mbglStopValue) {
+ static NSArray<NSExpression*> *toMGLRawStyleValue(const std::vector<MBGLElement> &mbglStopValue) {
NSMutableArray *array = [NSMutableArray arrayWithCapacity:mbglStopValue.size()];
for (const auto &mbglElement: mbglStopValue) {
[array addObject:[NSExpression expressionForConstantValue:toMGLRawStyleValue(mbglElement)]];
diff --git a/platform/darwin/src/NSExpression+MGLAdditions.h b/platform/darwin/src/NSExpression+MGLAdditions.h
index a19ec1af2e..9ef6623068 100644
--- a/platform/darwin/src/NSExpression+MGLAdditions.h
+++ b/platform/darwin/src/NSExpression+MGLAdditions.h
@@ -190,7 +190,7 @@ FOUNDATION_EXTERN MGL_EXPORT const MGLExpressionInterpolationMode MGLExpressionI
@return An initialized expression equivalent to `object`, suitable for use as
the value of a style layer attribute.
*/
-+ (instancetype)expressionWithMGLJSONObject:(id)object NS_SWIFT_NAME(init(mglJSONObject:));
++ (instancetype)expressionWithMGLJSONObject:(nullable id)object NS_SWIFT_NAME(init(mglJSONObject:));
/**
An equivalent Foundation object that can be serialized as JSON.
diff --git a/platform/darwin/src/NSExpression+MGLAdditions.mm b/platform/darwin/src/NSExpression+MGLAdditions.mm
index 9dad00e56e..026d8bec02 100644
--- a/platform/darwin/src/NSExpression+MGLAdditions.mm
+++ b/platform/darwin/src/NSExpression+MGLAdditions.mm
@@ -823,9 +823,14 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) {
minimum = [NSExpression expressionWithMGLJSONObject:valueExpression];
}
}
- NSExpression *stopExpression = [NSExpression expressionForConstantValue:stops];
- return [NSExpression expressionForFunction:@"mgl_step:from:stops:"
- arguments:@[inputExpression, minimum, stopExpression]];
+
+ NSAssert(minimum, @"minimum should be non-nil");
+ if (minimum) {
+ NSExpression *stopExpression = [NSExpression expressionForConstantValue:stops];
+ return [NSExpression expressionForFunction:@"mgl_step:from:stops:"
+ arguments:@[inputExpression, minimum, stopExpression]];
+ }
+
} else if ([op isEqualToString:@"zoom"]) {
return NSExpression.zoomLevelVariableExpression;
} else if ([op isEqualToString:@"heatmap-density"]) {
@@ -1030,7 +1035,11 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) {
expressionObject = @[@"get", pathComponent];
}
}
- return expressionObject;
+
+ NSAssert(expressionObject.count > 0, @"expressionObject should be non-empty");
+
+ // Return a non-null value to quieten static analysis
+ return expressionObject ?: @[];
}
case NSFunctionExpressionType: {
diff --git a/platform/darwin/src/NSExpression+MGLPrivateAdditions.h b/platform/darwin/src/NSExpression+MGLPrivateAdditions.h
index 4ef49a2d15..54bc9068f4 100644
--- a/platform/darwin/src/NSExpression+MGLPrivateAdditions.h
+++ b/platform/darwin/src/NSExpression+MGLPrivateAdditions.h
@@ -13,8 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
@interface NSObject (MGLExpressionAdditions)
-- (NSNumber *)mgl_number;
-- (NSNumber *)mgl_numberWithFallbackValues:(id)fallbackValue, ... NS_REQUIRES_NIL_TERMINATION;
+- (nullable NSNumber *)mgl_number;
+- (nullable NSNumber *)mgl_numberWithFallbackValues:(id)fallbackValue, ... NS_REQUIRES_NIL_TERMINATION;
@end
diff --git a/platform/darwin/src/NSPredicate+MGLPrivateAdditions.h b/platform/darwin/src/NSPredicate+MGLPrivateAdditions.h
index 1828009678..051a2775a1 100644
--- a/platform/darwin/src/NSPredicate+MGLPrivateAdditions.h
+++ b/platform/darwin/src/NSPredicate+MGLPrivateAdditions.h
@@ -10,15 +10,15 @@ NS_ASSUME_NONNULL_BEGIN
- (mbgl::style::Filter)mgl_filter;
-+ (instancetype)mgl_predicateWithFilter:(mbgl::style::Filter)filter;
++ (nullable instancetype)mgl_predicateWithFilter:(mbgl::style::Filter)filter;
@end
@interface NSPredicate (MGLExpressionAdditions)
-- (id)mgl_if:(id)firstValue, ...;
+- (nullable id)mgl_if:(id)firstValue, ...;
-- (id)mgl_match:(NSExpression *)firstCase, ...;
+- (nullable id)mgl_match:(NSExpression *)firstCase, ...;
@end