Fix const in methods with shared reference receivers
diff --git a/gen/write.rs b/gen/write.rs
index 05c646a..631be52 100644
--- a/gen/write.rs
+++ b/gen/write.rs
@@ -371,6 +371,9 @@
     let mangled = mangle::extern_fn(&out.namespace, efn);
     write!(out, "{}(", mangled);
     if let Some(receiver) = &efn.receiver {
+        if receiver.mutability.is_none() {
+            write!(out, "const ");
+        }
         write!(out, "{} *self$", receiver.ident);
     }
     for (i, arg) in efn.args.iter().enumerate() {
@@ -535,6 +538,9 @@
     write!(out, "{}(", link_name);
     let mut needs_comma = false;
     if let Some(receiver) = &sig.receiver {
+        if receiver.mutability.is_none() {
+            write!(out, "const ");
+        }
         write!(out, "{} &self$", receiver.ident);
         needs_comma = true;
     }
@@ -598,6 +604,11 @@
         write!(out, "void *extern$");
     }
     write!(out, ")");
+    if let Some(receiver) = &sig.receiver {
+        if receiver.mutability.is_none() {
+            write!(out, " const");
+        }
+    }
     if !sig.throws {
         write!(out, " noexcept");
     }