julia
760018d8 - inference: Fix soundness and precision issues of `MustAlias` from #63680 (#64101)

Commit
4 days ago
inference: Fix soundness and precision issues of `MustAlias` from #63680 (#64101) JuliaLang/julia#63680 made `⊑` strict for `MustAlias` and started to preserve aliases in `tmerge` and `tmeet`, which caused several problems: - `issubalias` did not compare `ssadef`, so a stale alias of an earlier definition of a slot could be accepted at a join point and then used to refine the reassigned slot, leading to a miscompile. - `narrow_mustalias` and `tmeet` could wrap an already constant field type in `MustAlias`, hiding the constant from branch folding. - With the stricter `⊑`, constant const-prop results and call-site refinements of slots holding an alias were discarded. - Finally, `InterMustAlias(::InterMustAlias; ...)` defined a method of a `Core` type on a `Core` type, which made precompilation of the `Compiler` package fail; it is replaced with the Compiler-owned `update_mustalias`. Assisted-by: Claude Code (Opus 5.5)
Author
Parents
Loading