mirror of
https://github.com/zaphar/ucg.git
synced 2025-07-22 18:19:54 -04:00
FEATURE: handle ENPTY specially. in copy expressions.
This commit is contained in:
parent
b797f099b4
commit
5e07f24d91
@ -12,6 +12,7 @@ let nestedtpl = {
|
||||
},
|
||||
scalar = 1,
|
||||
list = [1, 2, 3, 4],
|
||||
maybe_val = NULL,
|
||||
};
|
||||
|
||||
assert |
|
||||
@ -23,6 +24,9 @@ assert |
|
||||
assert |
|
||||
nestedtpl.scalar == 1;
|
||||
|;
|
||||
assert |
|
||||
nestedtpl.maybe_val == NULL;
|
||||
|;
|
||||
assert |
|
||||
nestedtpl.inner.field == "value";
|
||||
|;
|
||||
@ -46,6 +50,7 @@ let nestedcopy = nestedtpl{
|
||||
},
|
||||
field2 = 2,
|
||||
},
|
||||
maybe_val = "some val",
|
||||
};
|
||||
|
||||
let deepnestedcopy = nestedcopy{
|
||||
@ -65,4 +70,19 @@ assert |
|
||||
|;
|
||||
assert |
|
||||
deepnestedcopy.inner.inner.field4 == 4;
|
||||
|;
|
||||
assert |
|
||||
deepnestedcopy.maybe_val == "some val";
|
||||
|;
|
||||
|
||||
let base_maybe = {
|
||||
real = "A real value",
|
||||
};
|
||||
|
||||
let copy_maybe = base_maybe{
|
||||
real = NULL,
|
||||
};
|
||||
|
||||
assert |
|
||||
copy_maybe.real == NULL;
|
||||
|;
|
@ -877,7 +877,10 @@ impl<'a> Builder<'a> {
|
||||
// overriding field here.
|
||||
// Ensure that the new type matches the old type.
|
||||
let src_val = v.get().clone();
|
||||
if src_val.1.type_equal(&expr_result) {
|
||||
if src_val.1.type_equal(&expr_result)
|
||||
|| src_val.1.is_empty()
|
||||
|| expr_result.is_empty()
|
||||
{
|
||||
v.insert((src_val.0, expr_result));
|
||||
} else {
|
||||
self.pop_val();
|
||||
|
Loading…
x
Reference in New Issue
Block a user