Invalidate knowledge of types that include expr, but not expr itself. For example, when expr is foo.bar, invalidate foo.bar.baz. It is overly conservative: it invalidates globally, including in code paths unreachable from here.
(self, expr: BindableExpression)
| 542 | self.allow_jump(i) |
| 543 | |
| 544 | def invalidate_dependencies(self, expr: BindableExpression) -> None: |
| 545 | """Invalidate knowledge of types that include expr, but not expr itself. |
| 546 | |
| 547 | For example, when expr is foo.bar, invalidate foo.bar.baz. |
| 548 | |
| 549 | It is overly conservative: it invalidates globally, including |
| 550 | in code paths unreachable from here. |
| 551 | """ |
| 552 | key = literal_hash(expr) |
| 553 | assert key is not None |
| 554 | for dep in self.dependencies.get(key, set()): |
| 555 | self._cleanse_key(dep) |
| 556 | |
| 557 | def allow_jump(self, index: int) -> None: |
| 558 | # self.frames and self.options_on_return have different lengths |
no test coverage detected