Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
effects: Do not over-taint :terminates in abstract cycle (#49119)
We already infer non-termination as part of the conservative effects we assume at the point in the call-graph that recursion is detected. As a result, it should be sound to allow this to propagate through the Effects system naturally rather than eagerly marking our callers as non-terminating. Doing this is important to avoid tainting non-termination from purely abstract cycles, where inference is forced to analyze methods that do not correspond to real calls at runtime, such as `Base._return_type`. Resolves #48983.
- Loading branch information