aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/variable.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2024-02-06 15:35:07 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2024-02-06 15:35:07 +0200
commitf7cd640bcc59f64e37648487391989d245ed8f0f (patch)
tree336820da30501602ae7c27ef20e0cb39ea13acad /libbuild2/variable.cxx
parent2269a611da40bd7242dbd1a3204c212ac6091fd7 (diff)
Add support for nested subscript, use for json accessjson-type-review
Diffstat (limited to 'libbuild2/variable.cxx')
-rw-r--r--libbuild2/variable.cxx13
1 files changed, 10 insertions, 3 deletions
diff --git a/libbuild2/variable.cxx b/libbuild2/variable.cxx
index b0fe32a..1785e56 100644
--- a/libbuild2/variable.cxx
+++ b/libbuild2/variable.cxx
@@ -2080,9 +2080,16 @@ namespace build2
}
}
- return (jv != nullptr
- ? json_subscript_impl (val, val_data, i, n, index)
- : value ());
+ value r (jv != nullptr
+ ? json_subscript_impl (val, val_data, i, n, index)
+ : value ());
+
+ // Typify null values so that we get called for nested subscripts.
+ //
+ if (r.null)
+ r.type = &value_traits<json_value>::value_type;
+
+ return r;
}
void json_iterate (const value& val,