Add upgrade conversion from WeakPtr to SharedPtr
diff --git a/gen/src/write.rs b/gen/src/write.rs
index 359eb22..4e802da 100644
--- a/gen/src/write.rs
+++ b/gen/src/write.rs
@@ -1806,6 +1806,17 @@
     writeln!(out, "}}");
     writeln!(
         out,
+        "void cxxbridge1$weak_ptr${}$upgrade(const ::std::weak_ptr<{}>& weak, ::std::shared_ptr<{}> *shared) noexcept {{",
+        instance, inner, inner,
+    );
+    writeln!(
+        out,
+        "  ::new (shared) ::std::shared_ptr<{}>(weak.lock());",
+        inner,
+    );
+    writeln!(out, "}}");
+    writeln!(
+        out,
         "void cxxbridge1$weak_ptr${}$drop(::std::weak_ptr<{}> *self) noexcept {{",
         instance, inner,
     );