Commit 94bf64b
authored
Do not repor trivial narrowing as a change in binder (#20862)
Fixes #20816
This makes `--allow-redefinition-new` ~10% faster (or maybe more if you
have too many loops in your code). The idea is quite simple: there is no
difference between no narrowing, and narrowing to type that is a
variable declared type. This doesn't really make a difference for
regular mode, IIUC because there is a "fall through", i.e.
zero-iterations case, but this doesn't work with `bind_all = True`. As a
result we used to accept _every_ loop with an assignment in it at lest
twice with `--allow-redefinition-new` (which includes assignment to
iteration variable in for-loop).
Note that `declaration_type` may be `None` if there is a partial type,
but we already track partial types in accept loop separately, so we
don't need to report them as changed here as well.1 parent 2aafc9b commit 94bf64b
1 file changed
+16
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
392 | 392 | | |
393 | 393 | | |
394 | 394 | | |
395 | | - | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
396 | 411 | | |
397 | 412 | | |
398 | 413 | | |
| |||
0 commit comments