Commit fb3ae01
authored
inference correctness: fields and globals can revert to undef (#53750)
Particularly under precompilation, fields and globals can revert to
being undef, which is heavily relied upon by many `__init__` methods in
the ecosystem (because JLL emits this pattern, so we cannot simply
disallow it).
While here, also fix and improve several places where we compute or use
the isdefined check poorly.1 parent 13d4f0e commit fb3ae01
File tree
5 files changed
+86
-116
lines changed- base/compiler
- src
- test/compiler
5 files changed
+86
-116
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2603 | 2603 | | |
2604 | 2604 | | |
2605 | 2605 | | |
| 2606 | + | |
2606 | 2607 | | |
2607 | 2608 | | |
2608 | 2609 | | |
2609 | 2610 | | |
2610 | 2611 | | |
2611 | 2612 | | |
2612 | 2613 | | |
2613 | | - | |
2614 | | - | |
2615 | | - | |
2616 | | - | |
2617 | | - | |
2618 | | - | |
2619 | | - | |
2620 | | - | |
2621 | 2614 | | |
2622 | | - | |
| 2615 | + | |
| 2616 | + | |
| 2617 | + | |
2623 | 2618 | | |
2624 | | - | |
2625 | | - | |
2626 | 2619 | | |
2627 | 2620 | | |
2628 | 2621 | | |
| |||
2819 | 2812 | | |
2820 | 2813 | | |
2821 | 2814 | | |
| 2815 | + | |
2822 | 2816 | | |
2823 | 2817 | | |
2824 | | - | |
| 2818 | + | |
2825 | 2819 | | |
2826 | 2820 | | |
2827 | 2821 | | |
| |||
2840 | 2834 | | |
2841 | 2835 | | |
2842 | 2836 | | |
2843 | | - | |
2844 | | - | |
2845 | 2837 | | |
2846 | 2838 | | |
2847 | | - | |
| 2839 | + | |
| 2840 | + | |
| 2841 | + | |
| 2842 | + | |
| 2843 | + | |
| 2844 | + | |
| 2845 | + | |
2848 | 2846 | | |
2849 | 2847 | | |
2850 | 2848 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
301 | 301 | | |
302 | 302 | | |
303 | 303 | | |
304 | | - | |
305 | | - | |
| 304 | + | |
306 | 305 | | |
307 | 306 | | |
308 | 307 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
392 | 392 | | |
393 | 393 | | |
394 | 394 | | |
395 | | - | |
396 | | - | |
397 | | - | |
398 | | - | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
| 395 | + | |
403 | 396 | | |
404 | 397 | | |
405 | 398 | | |
406 | 399 | | |
407 | 400 | | |
408 | | - | |
| 401 | + | |
409 | 402 | | |
410 | 403 | | |
411 | 404 | | |
| |||
431 | 424 | | |
432 | 425 | | |
433 | 426 | | |
434 | | - | |
435 | | - | |
436 | | - | |
| 427 | + | |
| 428 | + | |
437 | 429 | | |
438 | 430 | | |
439 | 431 | | |
| |||
990 | 982 | | |
991 | 983 | | |
992 | 984 | | |
993 | | - | |
| 985 | + | |
994 | 986 | | |
995 | 987 | | |
996 | 988 | | |
| |||
1000 | 992 | | |
1001 | 993 | | |
1002 | 994 | | |
1003 | | - | |
| 995 | + | |
1004 | 996 | | |
1005 | 997 | | |
1006 | 998 | | |
1007 | 999 | | |
1008 | 1000 | | |
1009 | 1001 | | |
1010 | | - | |
1011 | | - | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
1012 | 1005 | | |
1013 | 1006 | | |
1014 | 1007 | | |
| |||
1247 | 1240 | | |
1248 | 1241 | | |
1249 | 1242 | | |
1250 | | - | |
1251 | | - | |
1252 | | - | |
1253 | | - | |
1254 | | - | |
1255 | | - | |
1256 | | - | |
1257 | | - | |
1258 | | - | |
1259 | | - | |
1260 | | - | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
1261 | 1248 | | |
1262 | 1249 | | |
1263 | 1250 | | |
1264 | 1251 | | |
1265 | | - | |
1266 | | - | |
| 1252 | + | |
| 1253 | + | |
1267 | 1254 | | |
1268 | 1255 | | |
1269 | | - | |
1270 | | - | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
1271 | 1259 | | |
1272 | 1260 | | |
1273 | 1261 | | |
| |||
2439 | 2427 | | |
2440 | 2428 | | |
2441 | 2429 | | |
2442 | | - | |
2443 | | - | |
| 2430 | + | |
| 2431 | + | |
| 2432 | + | |
2444 | 2433 | | |
2445 | 2434 | | |
2446 | 2435 | | |
2447 | | - | |
2448 | | - | |
2449 | | - | |
2450 | | - | |
2451 | | - | |
2452 | | - | |
2453 | | - | |
2454 | | - | |
2455 | | - | |
2456 | | - | |
2457 | | - | |
2458 | | - | |
2459 | | - | |
2460 | | - | |
| 2436 | + | |
| 2437 | + | |
| 2438 | + | |
| 2439 | + | |
2461 | 2440 | | |
2462 | 2441 | | |
2463 | 2442 | | |
| |||
2486 | 2465 | | |
2487 | 2466 | | |
2488 | 2467 | | |
2489 | | - | |
| 2468 | + | |
2490 | 2469 | | |
2491 | 2470 | | |
2492 | 2471 | | |
2493 | | - | |
| 2472 | + | |
2494 | 2473 | | |
2495 | 2474 | | |
2496 | 2475 | | |
| |||
3125 | 3104 | | |
3126 | 3105 | | |
3127 | 3106 | | |
3128 | | - | |
| 3107 | + | |
3129 | 3108 | | |
3130 | 3109 | | |
3131 | 3110 | | |
| |||
3198 | 3177 | | |
3199 | 3178 | | |
3200 | 3179 | | |
3201 | | - | |
| 3180 | + | |
3202 | 3181 | | |
3203 | | - | |
| 3182 | + | |
3204 | 3183 | | |
3205 | 3184 | | |
3206 | 3185 | | |
| |||
3216 | 3195 | | |
3217 | 3196 | | |
3218 | 3197 | | |
3219 | | - | |
| 3198 | + | |
3220 | 3199 | | |
3221 | 3200 | | |
3222 | 3201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3188 | 3188 | | |
3189 | 3189 | | |
3190 | 3190 | | |
| 3191 | + | |
3191 | 3192 | | |
3192 | 3193 | | |
3193 | | - | |
3194 | | - | |
3195 | | - | |
3196 | | - | |
3197 | | - | |
3198 | | - | |
3199 | | - | |
3200 | | - | |
3201 | | - | |
3202 | | - | |
3203 | | - | |
| 3194 | + | |
| 3195 | + | |
| 3196 | + | |
3204 | 3197 | | |
3205 | | - | |
3206 | | - | |
| 3198 | + | |
| 3199 | + | |
| 3200 | + | |
3207 | 3201 | | |
3208 | 3202 | | |
3209 | 3203 | | |
| |||
5461 | 5455 | | |
5462 | 5456 | | |
5463 | 5457 | | |
5464 | | - | |
| 5458 | + | |
5465 | 5459 | | |
5466 | 5460 | | |
5467 | 5461 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
249 | 249 | | |
250 | 250 | | |
251 | 251 | | |
252 | | - | |
| 252 | + | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
263 | 263 | | |
264 | 264 | | |
265 | 265 | | |
266 | 266 | | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
273 | 273 | | |
274 | 274 | | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
283 | 283 | | |
284 | 284 | | |
285 | | - | |
286 | | - | |
| 285 | + | |
| 286 | + | |
287 | 287 | | |
288 | 288 | | |
289 | 289 | | |
290 | 290 | | |
291 | | - | |
| 291 | + | |
292 | 292 | | |
293 | 293 | | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
298 | 298 | | |
299 | 299 | | |
300 | 300 | | |
| |||
904 | 904 | | |
905 | 905 | | |
906 | 906 | | |
907 | | - | |
| 907 | + | |
908 | 908 | | |
909 | 909 | | |
910 | 910 | | |
| |||
996 | 996 | | |
997 | 997 | | |
998 | 998 | | |
999 | | - | |
| 999 | + | |
1000 | 1000 | | |
1001 | 1001 | | |
1002 | 1002 | | |
| |||
0 commit comments