Preserve span of self var in Receiver
diff --git a/gen/write.rs b/gen/write.rs
index 2cb8b51..a8e3fd4 100644
--- a/gen/write.rs
+++ b/gen/write.rs
@@ -51,7 +51,7 @@
         if let Api::RustFunction(efn) = api {
             if let Some(receiver) = &efn.sig.receiver {
                 methods_for_type
-                    .entry(&receiver.ident)
+                    .entry(&receiver.ty)
                     .or_insert_with(Vec::new)
                     .push(efn);
             }
@@ -372,7 +372,7 @@
         if receiver.mutability.is_none() {
             write!(out, "const ");
         }
-        write!(out, "{} &self", receiver.ident);
+        write!(out, "{} &self", receiver.ty);
     }
     for (i, arg) in efn.args.iter().enumerate() {
         if i > 0 || efn.receiver.is_some() {
@@ -396,7 +396,7 @@
     write_return_type(out, &efn.ret);
     match &efn.receiver {
         None => write!(out, "(*{}$)(", efn.ident),
-        Some(receiver) => write!(out, "({}::*{}$)(", receiver.ident, efn.ident),
+        Some(receiver) => write!(out, "({}::*{}$)(", receiver.ty, efn.ident),
     }
     for (i, arg) in efn.args.iter().enumerate() {
         if i > 0 {
@@ -413,7 +413,7 @@
     write!(out, " = ");
     match &efn.receiver {
         None => write!(out, "{}", efn.ident),
-        Some(receiver) => write!(out, "&{}::{}", receiver.ident, efn.ident),
+        Some(receiver) => write!(out, "&{}::{}", receiver.ty, efn.ident),
     }
     writeln!(out, ";");
     write!(out, "  ");
@@ -539,7 +539,7 @@
         if receiver.mutability.is_none() {
             write!(out, "const ");
         }
-        write!(out, "{} &self", receiver.ident);
+        write!(out, "{} &self", receiver.ty);
         needs_comma = true;
     }
     for arg in &sig.args {
@@ -572,7 +572,7 @@
     }
     let local_name = match &efn.sig.receiver {
         None => efn.ident.to_string(),
-        Some(receiver) => format!("{}::{}", receiver.ident, efn.ident),
+        Some(receiver) => format!("{}::{}", receiver.ty, efn.ident),
     };
     let invoke = mangle::extern_fn(&out.namespace, efn);
     let indirect_call = false;