let class_def = def_class(class_id);
self.record_def(pattern.id, class_def);
}
+ Some(definition @ def_class(class_id))
+ if self.structs.contains_key(class_id) => {
+ self.record_def(pattern.id, definition);
+ }
Some(definition @ def_variant(_, variant_id))
if self.structs.contains_key(variant_id) => {
self.record_def(pattern.id, definition);
}
- _ => {
+ result => {
+ debug!("(resolving pattern) didn't find struct \
+ def: %?", result);
self.session.span_err(
path.span,
fmt!("`%s` does not name a structure",
--- /dev/null
+// xfail-fast
+extern mod struct_destructuring_cross_crate;
+
+fn main() {
+ let x = struct_destructuring_cross_crate::S { x: 1, y: 2 };
+ let struct_destructuring_cross_crate::S { x: a, y: b } = x;
+ assert a == 1;
+ assert b == 2;
+}