databricks-cli/libs/dyn
Pieter Noordhuis da603c6ead
Ignore `dyn.NilValue` when traversing value from `dyn.Map` (#1547)
## Changes

The map function ignores cases where either a key in a map is not
present or an index in a sequence is out of bounds. As of recently, we
retain nil values as valid values in a configuration tree. As such, it
makes sense to also ignore cases where a map or sequence is expected but
nil is found. This is semantically no different from an empty map where
a key is not found.

Without this fix, all calls to `dyn.Map` would need to be updated with
nil-checks at every path component.

Related PRs:
* #1507
* #1511

## Tests

Unit tests pass.
2024-07-01 13:00:31 +00:00
..
convert Compare `.Kind()` instead of direct equality checks on a `dyn.Value` (#1520) 2024-06-27 13:28:19 +00:00
dynassert Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
dynvar Added support for complex variables (#1467) 2024-06-26 10:25:32 +00:00
merge merge.Override: Fix handling of dyn.NilValue (#1530) 2024-06-27 09:47:58 +00:00
yamlloader Return `dyn.InvalidValue` instead of `dyn.NilValue` when errors happen (#1514) 2024-06-21 14:22:42 +00:00
yamlsaver Return `dyn.InvalidValue` instead of `dyn.NilValue` when errors happen (#1514) 2024-06-21 14:22:42 +00:00
kind.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
kind_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
location.go Retain location annotation when expanding globs for pipeline libraries (#1274) 2024-03-11 21:59:36 +00:00
location_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
mapping.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
mapping_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
path.go Make `Append` function to `dyn.Path` return independent slice (#1295) 2024-03-19 09:49:26 +00:00
path_string.go Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
path_string_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
path_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
pattern.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
pattern_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
value.go Use `dyn.InvalidValue` to indicate absence (#1507) 2024-06-19 15:24:57 +00:00
value_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
value_underlying.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
value_underlying_test.go Use `dyn.InvalidValue` to indicate absence (#1507) 2024-06-19 15:24:57 +00:00
visit.go Ignore `dyn.NilValue` when traversing value from `dyn.Map` (#1547) 2024-07-01 13:00:31 +00:00
visit_get.go Add `dyn.MapByPattern` to map a function to values with matching paths (#1266) 2024-03-08 14:33:01 +00:00
visit_get_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
visit_map.go Ignore `dyn.NilValue` when traversing value from `dyn.Map` (#1547) 2024-07-01 13:00:31 +00:00
visit_map_test.go Ignore `dyn.NilValue` when traversing value from `dyn.Map` (#1547) 2024-07-01 13:00:31 +00:00
visit_set.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
visit_set_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
walk.go Use `dyn.InvalidValue` to indicate absence (#1507) 2024-06-19 15:24:57 +00:00
walk_test.go Use `dyn.InvalidValue` to indicate absence (#1507) 2024-06-19 15:24:57 +00:00