databricks-cli/libs/dyn
shreyas-goenka 8ed9964482
Track multiple locations associated with a `dyn.Value` (#1510)
## Changes
This PR changes the location metadata associated with a `dyn.Value` to a
slice of locations. This will allow us to keep track of location
metadata across merges and overrides.

The convention is to treat the first location in the slice as the
primary location. Also, the semantics are the same as before if there's
only one location associated with a value, that is:
1. For complex values (maps, sequences) the location of the v1 is
primary in Merge(v1, v2)
2. For primitive values the location of v2 is primary in Merge(v1, v2)

## Tests
Modifying existing merge unit tests. Other existing unit tests and
integration tests pass.

---------

Co-authored-by: Pieter Noordhuis <pieter.noordhuis@databricks.com>
2024-07-16 11:27:27 +00:00
..
convert Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +00:00
dynassert Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
dynvar Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +00:00
merge Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +00:00
yamlloader Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +00:00
yamlsaver Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +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 Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +00:00
pattern_test.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
value.go Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +00:00
value_test.go Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +00:00
value_underlying.go Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
value_underlying_test.go Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +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 Track multiple locations associated with a `dyn.Value` (#1510) 2024-07-16 11:27:27 +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