diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2018-03-07 17:47:32 -0800 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2018-03-30 03:29:44 -0700 |
commit | 2b9ad424ca5af8a6651a8e9eb4a3b450e3c3567a (patch) | |
tree | ecff38857b1ac2b6d90e2a1c2ad546865fc62280 | |
parent | 6e85cba89ebad48c51c34836f98292dbb524c0e1 (diff) | |
download | qtlocation-mapboxgl-2b9ad424ca5af8a6651a8e9eb4a3b450e3c3567a.tar.gz |
[ios, macos] Special-case number conversion without fallbacks
-rw-r--r-- | platform/darwin/src/NSExpression+MGLAdditions.mm | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/platform/darwin/src/NSExpression+MGLAdditions.mm b/platform/darwin/src/NSExpression+MGLAdditions.mm index 2bdebc89bb..07d2f6297c 100644 --- a/platform/darwin/src/NSExpression+MGLAdditions.mm +++ b/platform/darwin/src/NSExpression+MGLAdditions.mm @@ -548,7 +548,11 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) { } argumentObjects = [argumentObjects subarrayWithRange:NSMakeRange(1, argumentObjects.count - 1)]; NSArray *subexpressions = MGLSubexpressionsWithJSONObjects(argumentObjects); - return [NSExpression expressionForFunction:operand selectorName:@"mgl_numberWithFallbackValues:" arguments:subexpressions]; + if (subexpressions.count == 0) { + return [NSExpression expressionForFunction:operand selectorName:@"mgl_number" arguments:@[]]; + } else { + return [NSExpression expressionForFunction:operand selectorName:@"mgl_numberWithFallbackValues:" arguments:subexpressions]; + } } else if ([op isEqualToString:@"to-string"]) { NSExpression *operand = [NSExpression mgl_expressionWithJSONObject:argumentObjects.firstObject]; return [NSExpression expressionWithFormat:@"CAST(%@, 'NSString')", operand]; @@ -848,7 +852,8 @@ NSArray *MGLSubexpressionsWithJSONObjects(NSArray *objects) { return @[@"at", self.arguments[1].mgl_jsonExpressionObject, self.arguments[0].mgl_jsonExpressionObject]; } else if ([function isEqualToString:@"boolValue"]) { return @[@"to-boolean", self.operand.mgl_jsonExpressionObject]; - } else if ([function isEqualToString:@"mgl_numberWithFallbackValues:"] || + } else if ([function isEqualToString:@"mgl_number"] || + [function isEqualToString:@"mgl_numberWithFallbackValues:"] || [function isEqualToString:@"decimalValue"] || [function isEqualToString:@"floatValue"] || [function isEqualToString:@"doubleValue"]) { |