<pre> type quux = rec(int bar); fn g(&int i) { } fn f(@@quux foo) { g(foo.bar); } fn main() {} </pre> Yields <pre> rt: 8994:main:main: upcall fail 'non-exhaustive match failure', ../src/comp/middle/alias.rs:546 </pre> It is hitting a non-exhaustive match because only one of the boxes around foo is being pulled away.