Handle unrecognized type names in checking signature for mutable return type
diff --git a/syntax/check.rs b/syntax/check.rs
index 5d02fa8..b9c5370 100644
--- a/syntax/check.rs
+++ b/syntax/check.rs
@@ -521,7 +521,10 @@
if receiver.mutable {
return;
}
- let resolve = cx.types.resolve(&receiver.ty);
+ let resolve = match cx.types.try_resolve(&receiver.ty) {
+ Some(resolve) => resolve,
+ None => return,
+ };
if !resolve.generics.lifetimes.is_empty() {
return;
}
@@ -536,9 +539,11 @@
fn visit_type(&mut self, ty: &'t Type) {
self.found |= match ty {
Type::Ref(ty) => ty.mutable,
- Type::Ident(ident) => {
- let resolve = self.cx.types.resolve(ident);
- !resolve.generics.lifetimes.is_empty()
+ Type::Ident(ident) if Atom::from(&ident.rust).is_none() => {
+ match self.cx.types.try_resolve(ident) {
+ Some(resolve) => !resolve.generics.lifetimes.is_empty(),
+ None => true,
+ }
}
_ => false,
};