You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CC: Fix maximal capability handling and expand aliases (#22341)
## 1. Fix various issues with maximal capabilities
The subsumes check mistakenly allowed any capability to subsume `cap`,
since `cap` is expanded
as `caps.cap`, and by the path subcapturing rule `caps.cap <: caps`,
where the capture set of
`caps` is empty. This allowed quite a few hidden errors to go through.
This commit fixes the
subcapturing issue and all downstream issues caused by that fix.
## 2. Expand aliases when mapping explicit types in Setup
This is necessary because the compiler is free in previous phases to
dealias or not.
Therefore, capture checking should not depend on aliasing. The main
difference is that
now arguments to type aliases are not necessarily boxed. They are boxed
only if they need
boxing in the dealiased type.
0 commit comments