Commit 3661037
fix: generate tmp variables for safe navigation on binary/ternary/unary expressions (#16)
needs_temporary_in_safe_access() in expand_safe_reads was missing match
arms for IrExpression::Binary, Ternary, Not, and Unary. When a safe
property read like (pipeBind(...) || fallback)?.name had a Binary
receiver, the function fell through to `_ => false` instead of recursing
into operands to detect the pipe binding. This caused the pipe to be
evaluated twice with inflated binding slot indices.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent cf75ff7 commit 3661037
3 files changed
Lines changed: 46 additions & 0 deletions
File tree
- crates/oxc_angular_compiler
- src/pipeline/phases
- tests
- snapshots
Lines changed: 14 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
177 | 191 | | |
178 | 192 | | |
179 | 193 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1156 | 1156 | | |
1157 | 1157 | | |
1158 | 1158 | | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
1159 | 1173 | | |
1160 | 1174 | | |
1161 | 1175 | | |
| |||
Lines changed: 18 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
0 commit comments