diff options
| author | Li Jin <dragon-fly@qq.com> | 2022-11-22 09:53:46 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2022-11-22 09:53:46 +0800 |
| commit | 8d36b240cd0800bd5584d52cb5d19d0ae5371357 (patch) | |
| tree | 9016aa87a946851a854452af838ad745e478365e /spec | |
| parent | 1b0bf8554e84bcd4d68dd2131838ea9c923ed694 (diff) | |
| download | yuescript-8d36b240cd0800bd5584d52cb5d19d0ae5371357.tar.gz yuescript-8d36b240cd0800bd5584d52cb5d19d0ae5371357.tar.bz2 yuescript-8d36b240cd0800bd5584d52cb5d19d0ae5371357.zip | |
fix optimization case from issue #115.
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/inputs/assign.yue | 4 | ||||
| -rw-r--r-- | spec/outputs/assign.lua | 27 |
2 files changed, 17 insertions, 14 deletions
diff --git a/spec/inputs/assign.yue b/spec/inputs/assign.yue index 8c7848d..8ae5cac 100644 --- a/spec/inputs/assign.yue +++ b/spec/inputs/assign.yue | |||
| @@ -85,4 +85,8 @@ do | |||
| 85 | do | 85 | do |
| 86 | {a} = :b = c.d = e = tab | 86 | {a} = :b = c.d = e = tab |
| 87 | 87 | ||
| 88 | do | ||
| 89 | val = 123 | ||
| 90 | a = b = c = val | ||
| 91 | |||
| 88 | nil | 92 | nil |
diff --git a/spec/outputs/assign.lua b/spec/outputs/assign.lua index e638c47..d939769 100644 --- a/spec/outputs/assign.lua +++ b/spec/outputs/assign.lua | |||
| @@ -135,23 +135,22 @@ return _(function() | |||
| 135 | local d = 0 | 135 | local d = 0 |
| 136 | end | 136 | end |
| 137 | do | 137 | do |
| 138 | local a | 138 | local a = f() |
| 139 | local b | 139 | local b = a |
| 140 | local c | 140 | local c = a |
| 141 | local d | 141 | local d = a |
| 142 | do | ||
| 143 | local _tmp_0 = f() | ||
| 144 | a = _tmp_0 | ||
| 145 | b = _tmp_0 | ||
| 146 | c = _tmp_0 | ||
| 147 | d = _tmp_0 | ||
| 148 | end | ||
| 149 | end | 142 | end |
| 150 | do | 143 | do |
| 151 | local a = tab[1] | ||
| 152 | local b = tab.b | ||
| 153 | c.d = tab | ||
| 154 | local e = tab | 144 | local e = tab |
| 145 | local a = e[1] | ||
| 146 | local b = e.b | ||
| 147 | c.d = e | ||
| 148 | end | ||
| 149 | do | ||
| 150 | local val = 123 | ||
| 151 | local a = val | ||
| 152 | local b = val | ||
| 153 | local c = val | ||
| 155 | end | 154 | end |
| 156 | return nil | 155 | return nil |
| 157 | end) | 156 | end) |
