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,
|
scalar = 1,
|
||||||
list = [1, 2, 3, 4],
|
list = [1, 2, 3, 4],
|
||||||
|
maybe_val = NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
assert |
|
assert |
|
||||||
@ -23,6 +24,9 @@ assert |
|
|||||||
assert |
|
assert |
|
||||||
nestedtpl.scalar == 1;
|
nestedtpl.scalar == 1;
|
||||||
|;
|
|;
|
||||||
|
assert |
|
||||||
|
nestedtpl.maybe_val == NULL;
|
||||||
|
|;
|
||||||
assert |
|
assert |
|
||||||
nestedtpl.inner.field == "value";
|
nestedtpl.inner.field == "value";
|
||||||
|;
|
|;
|
||||||
@ -46,6 +50,7 @@ let nestedcopy = nestedtpl{
|
|||||||
},
|
},
|
||||||
field2 = 2,
|
field2 = 2,
|
||||||
},
|
},
|
||||||
|
maybe_val = "some val",
|
||||||
};
|
};
|
||||||
|
|
||||||
let deepnestedcopy = nestedcopy{
|
let deepnestedcopy = nestedcopy{
|
||||||
@ -65,4 +70,19 @@ assert |
|
|||||||
|;
|
|;
|
||||||
assert |
|
assert |
|
||||||
deepnestedcopy.inner.inner.field4 == 4;
|
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.
|
// overriding field here.
|
||||||
// Ensure that the new type matches the old type.
|
// Ensure that the new type matches the old type.
|
||||||
let src_val = v.get().clone();
|
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));
|
v.insert((src_val.0, expr_result));
|
||||||
} else {
|
} else {
|
||||||
self.pop_val();
|
self.pop_val();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user