databricks-cli/libs/dyn
Pieter Noordhuis f54e790a3b
Ensure every variable reference is passed to lookup function (#1176)
## Changes

References to keys that themselves are also variable references were
shortcircuited in the previous approach. This meant that certain fields
were resolved even if the lookup function would have instructed to skip
resolution.

To fix this we separate the memoization of resolved variable references
from the memoization of lookups. Now, every variable reference is passed
through the lookup function.

## Tests

Before this change, the new test failed with:
```
=== RUN   TestResolveWithSkipEverything
    [...]/libs/dyn/dynvar/resolve_test.go:208: 
        	Error Trace:	[...]/libs/dyn/dynvar/resolve_test.go:208
        	Error:      	Not equal: 
        	            	expected: "${d} ${c} ${c} ${d}"
        	            	actual  : "${b} ${a} ${a} ${b}"
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1 +1 @@
        	            	-${d} ${c} ${c} ${d}
        	            	+${b} ${a} ${a} ${b}
        	Test:       	TestResolveWithSkipEverything
```
2024-02-06 15:01:49 +00:00
..
convert Fix dynamic representation of zero values in maps and slices (#1154) 2024-01-31 14:25:13 +00:00
dynvar Ensure every variable reference is passed to lookup function (#1176) 2024-02-06 15:01:49 +00:00
merge Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
yamlloader Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
yamlsaver Added `databricks bundle generate job` command (#1043) 2024-01-17 14:26:33 +00:00
kind.go Define constant for the invalid `dyn.Value` (#1101) 2024-01-05 13:02:04 +00:00
kind_test.go Define constant for the invalid `dyn.Value` (#1101) 2024-01-05 13:02:04 +00:00
location.go Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
location_test.go Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
path.go Add functionality to visit values in `dyn.Value` tree (#1142) 2024-01-24 18:38:46 +00:00
path_string.go Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
path_string_test.go Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
path_test.go Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
value.go Harden `dyn.Value` equality check (#1173) 2024-02-05 16:54:41 +00:00
value_test.go Define constant for the invalid `dyn.Value` (#1101) 2024-01-05 13:02:04 +00:00
value_underlying.go Consolidate functions to convert `dyn.Value` to native types (#1100) 2024-01-05 12:06:12 +00:00
value_underlying_test.go Consolidate functions to convert `dyn.Value` to native types (#1100) 2024-01-05 12:06:12 +00:00
visit.go Add functionality to visit values in `dyn.Value` tree (#1142) 2024-01-24 18:38:46 +00:00
visit_get.go Add functionality to visit values in `dyn.Value` tree (#1142) 2024-01-24 18:38:46 +00:00
visit_get_test.go Add functionality to visit values in `dyn.Value` tree (#1142) 2024-01-24 18:38:46 +00:00
visit_map.go Add functionality to visit values in `dyn.Value` tree (#1142) 2024-01-24 18:38:46 +00:00
visit_map_test.go Harden `dyn.Value` equality check (#1173) 2024-02-05 16:54:41 +00:00
visit_set.go Add functionality to visit values in `dyn.Value` tree (#1142) 2024-01-24 18:38:46 +00:00
visit_set_test.go Add functionality to visit values in `dyn.Value` tree (#1142) 2024-01-24 18:38:46 +00:00
walk.go Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
walk_test.go Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00