diff options
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/inputs/nil_coalesing.yue | 5 | ||||
| -rw-r--r-- | spec/outputs/nil_coalesing.lua | 25 |
2 files changed, 30 insertions, 0 deletions
diff --git a/spec/inputs/nil_coalesing.yue b/spec/inputs/nil_coalesing.yue index facd64c..76915c7 100644 --- a/spec/inputs/nil_coalesing.yue +++ b/spec/inputs/nil_coalesing.yue | |||
| @@ -39,5 +39,10 @@ do | |||
| 39 | do | 39 | do |
| 40 | a = 1 ?? 2 ?? 3 | 40 | a = 1 ?? 2 ?? 3 |
| 41 | 41 | ||
| 42 | do | ||
| 43 | a.b.c ??= 1 | ||
| 44 | a = b.x ?? c.x ?? d.x | ||
| 45 | a.c ??= 1 | ||
| 46 | |||
| 42 | nil | 47 | nil |
| 43 | 48 | ||
diff --git a/spec/outputs/nil_coalesing.lua b/spec/outputs/nil_coalesing.lua index b434671..e1547df 100644 --- a/spec/outputs/nil_coalesing.lua +++ b/spec/outputs/nil_coalesing.lua | |||
| @@ -153,4 +153,29 @@ do | |||
| 153 | end | 153 | end |
| 154 | end | 154 | end |
| 155 | end | 155 | end |
| 156 | do | ||
| 157 | local _obj_0 = a.b | ||
| 158 | if _obj_0.c == nil then | ||
| 159 | _obj_0.c = 1 | ||
| 160 | end | ||
| 161 | local a | ||
| 162 | do | ||
| 163 | local _exp_0 = b.x | ||
| 164 | if _exp_0 ~= nil then | ||
| 165 | a = _exp_0 | ||
| 166 | else | ||
| 167 | do | ||
| 168 | local _exp_1 = c.x | ||
| 169 | if _exp_1 ~= nil then | ||
| 170 | a = _exp_1 | ||
| 171 | else | ||
| 172 | a = d.x | ||
| 173 | end | ||
| 174 | end | ||
| 175 | end | ||
| 176 | end | ||
| 177 | if a.c == nil then | ||
| 178 | a.c = 1 | ||
| 179 | end | ||
| 180 | end | ||
| 156 | return nil | 181 | return nil |
