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");
}