Reject unrecognized idents in receiver's type
diff --git a/syntax/check.rs b/syntax/check.rs
index fa51ed3..f6e46fd 100644
--- a/syntax/check.rs
+++ b/syntax/check.rs
@@ -141,6 +141,14 @@
fn check_api_fn(cx: &mut Check, efn: &ExternFn) {
if let Some(receiver) = &efn.receiver {
+ if !cx.types.structs.contains_key(&receiver.ty)
+ && !cx.types.cxx.contains(&receiver.ty)
+ && !cx.types.rust.contains(&receiver.ty)
+ {
+ let span = span_for_receiver_error(receiver);
+ cx.error(span, "unrecognized receiver type");
+ }
+
if receiver.lifetime.is_some() {
let span = span_for_receiver_error(receiver);
cx.error(span, "references with explicit lifetimes are not supported");