Merge "Update mockall to 0.13.1" into main
diff --git a/crates/mockall/.android-checksum.json b/crates/mockall/.android-checksum.json
index b87a534..22d4f6c 100644
--- a/crates/mockall/.android-checksum.json
+++ b/crates/mockall/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"dc10d9c9b5bd0a9c2675dd95056cbf1e87cefa2949050178f894d56c1d334717","Android.bp":"3a8ba7ebb026eef9b590ddfe624187ad7a5e6d5799454f731eb8f8638858ced2","Cargo.lock":"e4509c62cc6a24ed42b4194df50570903fce055535663c1df67bc45f5dbb3679","Cargo.toml":"361ad14be093d664a6ba0029bae6a8f0168863035f45de61cd3f959507e2e64f","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"6b5826b96c0bd71ab1c5be4637f29c5bbb37369f6a65b4fe136b70c563ac7759","METADATA":"a606a79578df98faaa537f89cfc7e5b402d66c0479a444773a8c144523171c4b","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"0952521809cc6b25360d2feaad75bd8af07f6df6ac9e7d7dbdca7b6a1f35323a","cargo_embargo.json":"9a4b9e47683e1a6fc764b578f222c6271932aeb74af7bf217d239d47d3908f30","src/examples.rs":"b1f78397b7b749c8823290eed8d14f4561f88ba8c14a4a1b34c7d3b9114d7977","src/lib.rs":"c03ec4de8092c1899c454ea0e097e7497d1cc733a79ab3be74366b1a5c4fe737"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"287d43b6b773b53c1e250678c42f291beee9609c8fc057a335d4d76aa3ddb244","Android.bp":"236a27b31ef12a784ad7152dbf039ec9f91ac6799c67325b16ba967ed635a656","Cargo.toml":"a4c2597dabec68e89c075b14ae94edec7a70165591da3a3c301721ad76ae22ec","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"6b5826b96c0bd71ab1c5be4637f29c5bbb37369f6a65b4fe136b70c563ac7759","METADATA":"2039fa76ae02ee8b0b4c39872195d65e60eb013feba897be80a0bafa225b26da","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"b74eeee33f28deaa8735d8052afc9abb68714cfba8544a68104aea7abb7e20f1","cargo_embargo.json":"9a4b9e47683e1a6fc764b578f222c6271932aeb74af7bf217d239d47d3908f30","src/examples.rs":"b1f78397b7b749c8823290eed8d14f4561f88ba8c14a4a1b34c7d3b9114d7977","src/lib.rs":"048cf4bd319a335f0a211a29639c0ee475ac964e3cdd24bd5be19560e71150b4"}}
\ No newline at end of file
diff --git a/crates/mockall/.cargo-checksum.json b/crates/mockall/.cargo-checksum.json
index 389e819..bacd202 100644
--- a/crates/mockall/.cargo-checksum.json
+++ b/crates/mockall/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.lock":"a5dc7da98f75b2ce371f5061d43cdc5e5eec5553fbc0b1f639c48010b33bef0a","Cargo.toml":"b9ad36882e9e1ba059f20d6383b14f0d43a71ebc3e3377f0f9aeca3a71256cee","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"a6ba0ec436e84b1517c6371beb6db11eab6a8e4a39d895be8584fb2c65303b5a","README.md":"8007e913a12b76eba567b1052d91325246c757d2dab8842f68df9202b9157f37","src/examples.rs":"e409a2e3e30ddfe20d2eafd922116d306169c0b3db6b5bd89964c786d743a924","src/lib.rs":"14baee6939ae7136d2ff57d5223b945559bbf57b1e73eff2af8865c230193f60"},"package":"43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48"}
\ No newline at end of file
+{"files":{"Cargo.toml":"767b1b5a26e33421cd3570866af7ef875ecffbef5951c825ca9329a471f55932","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"a6ba0ec436e84b1517c6371beb6db11eab6a8e4a39d895be8584fb2c65303b5a","README.md":"5e9cf5df381680b492510e9a552d0ef14917b6bcce6d3f29e4aee427df4b8e81","src/examples.rs":"e409a2e3e30ddfe20d2eafd922116d306169c0b3db6b5bd89964c786d743a924","src/lib.rs":"9b24ef9fd14bb7104ad4ab31cf19f402950091ca8295d93230289199f49e7f3b"},"package":"39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2"}
\ No newline at end of file
diff --git a/crates/mockall/Android.bp b/crates/mockall/Android.bp
index 07e8e6d..9884edc 100644
--- a/crates/mockall/Android.bp
+++ b/crates/mockall/Android.bp
@@ -18,14 +18,13 @@
     host_supported: true,
     crate_name: "mockall",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.12.1",
+    cargo_pkg_version: "0.13.1",
     crate_root: "src/lib.rs",
     edition: "2021",
     rustlibs: [
         "libcfg_if",
         "libdowncast",
         "libfragile",
-        "liblazy_static",
         "libpredicates",
         "libpredicates_tree",
     ],
diff --git a/crates/mockall/Cargo.lock b/crates/mockall/Cargo.lock
deleted file mode 100644
index 83f8848..0000000
--- a/crates/mockall/Cargo.lock
+++ /dev/null
@@ -1,374 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "anstyle"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
-
-[[package]]
-name = "async-trait"
-version = "0.1.73"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "downcast"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1"
-
-[[package]]
-name = "either"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
-
-[[package]]
-name = "fragile"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
-
-[[package]]
-name = "futures"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
-
-[[package]]
-name = "futures-task"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
-
-[[package]]
-name = "futures-util"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "itertools"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "memchr"
-version = "2.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
-
-[[package]]
-name = "mockall"
-version = "0.12.1"
-dependencies = [
- "async-trait",
- "cfg-if",
- "downcast",
- "fragile",
- "futures",
- "lazy_static",
- "mockall_derive",
- "mockall_double",
- "predicates",
- "predicates-tree",
- "serde",
- "serde_derive",
- "serde_json",
- "tracing",
-]
-
-[[package]]
-name = "mockall_derive"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
-dependencies = [
- "cfg-if",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "mockall_double"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1ca96e5ac35256ae3e13536edd39b172b88f41615e1d7b653c8ad24524113e8"
-dependencies = [
- "cfg-if",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "predicates"
-version = "3.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0"
-dependencies = [
- "anstyle",
- "itertools",
- "predicates-core",
-]
-
-[[package]]
-name = "predicates-core"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
-
-[[package]]
-name = "predicates-tree"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
-dependencies = [
- "predicates-core",
- "termtree",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.66"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
-
-[[package]]
-name = "serde"
-version = "1.0.188"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.188"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.106"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cc66a619ed80bf7a0f6b17dd063a84b88f6dea1813737cf469aef1d081142c2"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "termtree"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
-
-[[package]]
-name = "tracing"
-version = "0.1.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
-dependencies = [
- "cfg-if",
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
diff --git a/crates/mockall/Cargo.toml b/crates/mockall/Cargo.toml
index a2275fe..35602f3 100644
--- a/crates/mockall/Cargo.toml
+++ b/crates/mockall/Cargo.toml
@@ -11,15 +11,21 @@
 
 [package]
 edition = "2021"
-rust-version = "1.60"
+rust-version = "1.71"
 name = "mockall"
-version = "0.12.1"
+version = "0.13.1"
 authors = ["Alan Somers <[email protected]>"]
+build = false
 exclude = [
     "examples/*",
     "tests/*",
     "tools/*",
 ]
+autolib = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = """
 A powerful mock object library for Rust.
 """
@@ -42,7 +48,7 @@
 
 [[package.metadata.release.pre-release-replacements]]
 file = "../README.md"
-replace = "mockall = \"{{version}}\""
+replace = 'mockall = "{{version}}"'
 search = 'mockall = "[a-z0-9\.-]+"'
 
 [[package.metadata.release.pre-release-replacements]]
@@ -55,10 +61,9 @@
 replace = "{{date}}"
 search = "ReleaseDate"
 
-[[example]]
-name = "serde"
-crate-type = ["lib"]
-path = "examples/serde.rs"
+[lib]
+name = "mockall"
+path = "src/lib.rs"
 
 [dependencies.cfg-if]
 version = "1.0"
@@ -69,11 +74,8 @@
 [dependencies.fragile]
 version = "2.0"
 
-[dependencies.lazy_static]
-version = "1.1"
-
 [dependencies.mockall_derive]
-version = "=0.12.1"
+version = "=0.13.1"
 
 [dependencies.predicates]
 version = "3.0.0"
@@ -85,6 +87,9 @@
 [dev-dependencies.async-trait]
 version = "0.1.38"
 
+[dev-dependencies.auto_enums]
+version = "0.8.5"
+
 [dev-dependencies.futures]
 version = "0.3.7"
 
@@ -92,16 +97,16 @@
 version = "^0.3.1"
 
 [dev-dependencies.serde]
-version = "1.0"
+version = "1.0.113"
 
 [dev-dependencies.serde_derive]
-version = "1.0"
+version = "1.0.113"
 
 [dev-dependencies.serde_json]
 version = "1.0"
 
 [dev-dependencies.tracing]
-version = "0.1.32"
+version = "0.1.35"
 
 [features]
 nightly = [
diff --git a/crates/mockall/METADATA b/crates/mockall/METADATA
index e823863..52455ec 100644
--- a/crates/mockall/METADATA
+++ b/crates/mockall/METADATA
@@ -1,17 +1,17 @@
 name: "mockall"
 description: "()"
 third_party {
-  version: "0.12.1"
+  version: "0.13.1"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 4
-    day: 25
+    year: 2025
+    month: 1
+    day: 14
   }
   homepage: "https://crates.io/crates/mockall"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/mockall/mockall-0.12.1.crate"
-    version: "0.12.1"
+    value: "https://static.crates.io/crates/mockall/mockall-0.13.1.crate"
+    version: "0.13.1"
   }
 }
diff --git a/crates/mockall/README.md b/crates/mockall/README.md
index 91d2039..6284a09 100644
--- a/crates/mockall/README.md
+++ b/crates/mockall/README.md
@@ -29,7 +29,7 @@
 
 ```toml
 [dev-dependencies]
-mockall = "0.12.1"
+mockall = "0.13.1"
 ```
 
 Then use it like this:
@@ -62,7 +62,7 @@
 
 # Minimum Supported Rust Version (MSRV)
 
-Mockall is supported on Rust 1.64.0 and higher.  Mockall's MSRV will not be
+Mockall is supported on Rust 1.71.0 and higher.  Mockall's MSRV will not be
 changed in the future without bumping the major or minor version.
 
 # License
diff --git a/crates/mockall/src/lib.rs b/crates/mockall/src/lib.rs
index 742efb8..88b33dc 100644
--- a/crates/mockall/src/lib.rs
+++ b/crates/mockall/src/lib.rs
@@ -305,7 +305,7 @@
 //! specify the order by using a [`Sequence`].  Any expectations may be added to
 //! the same sequence.  They don't even need to come from the same object.
 //!
-//! ```should_panic(expected = "Method sequence violation")
+//! ```should_panic
 //! # use mockall::*;
 //! #[automock]
 //! trait Foo {
@@ -740,14 +740,14 @@
 //! ## Generic traits and structs
 //!
 //! Mocking generic structs and generic traits is not a problem.  The mock
-//! struct will be generic, too.  The same restrictions apply as with mocking
-//! generic methods: each generic parameter must be `'static`, and generic
-//! lifetime parameters are not allowed.
+//! struct will be generic, too.  As with generic methods, lifetime parameters
+//! are not allowed.  However, as long as the generic parameters are not used by
+//! any static methods, then the parameters need not be `'static'`.
 //!
 //! ```
 //! # use mockall::*;
 //! #[automock]
-//! trait Foo<T: 'static> {
+//! trait Foo<T> {
 //!     fn foo(&self, t: T) -> i32;
 //! }
 //!
@@ -899,7 +899,8 @@
 //! ### Generic static methods
 //!
 //! Mocking static methods of generic structs or traits, whether or not the
-//! methods themselves are generic, should work seamlessly.
+//! methods themselves are generic, should work seamlessly as long as the
+//! generic parameter is `'static`
 //!
 //! ```
 //! # use mockall::*;
@@ -1161,10 +1162,6 @@
 #[doc(hidden)]
 pub use fragile::Fragile;
 
-/// For mocking static methods
-#[doc(hidden)]
-pub use lazy_static::lazy_static;
-
 pub use predicates::{
     boolean::PredicateBooleanExt,
     prelude::{
@@ -1276,7 +1273,7 @@
 /// # Limitations
 ///
 /// `#[automock]` can't handle everything.  There are some cases where
-/// you will need to use [`mock`] instead:
+/// you will need to use [`mock!`] instead:
 /// * Mocking a struct that has multiple `impl` blocks, including
 ///   structs that implement traits.
 /// * Mocking a struct or trait defined in another crate.
@@ -1292,17 +1289,17 @@
 /// can't be mocked.  The downsides of using this attribute are:
 ///
 /// * Mockall can't tell if a parameter isn't `'static`, so you must annotate
-/// such methods with the `#[mockall::concretize]` attribute.
+///   such methods with the `#[mockall::concretize]` attribute.
 /// * Generic methods will share expectations for all argument types.  That is,
 ///   you won't be able to do `my_mock.expect_foo::<i32>(...)`.
 /// * It can't be used on methods with a closure argument (though this may be
-/// fixable).
+///   fixable).
 /// * Concretized methods' expectations may only be matched with `.withf` or
-/// `.withf_st`, not `.with`.
+///   `.withf_st`, not `.with`.
 /// * It only works for parameters that can be turned into a trait object.
-/// (may be fixable).
+///   (may be fixable).
 /// * Mockall needs to know how to turn the function argument into a trait
-/// object.  Given a generic parameter `T`, currently supported patterns are:
+///   object.  Given a generic parameter `T`, currently supported patterns are:
 ///   - `T`
 ///   - `&T`
 ///   - `&mut T`
@@ -1341,7 +1338,7 @@
 
 /// Manually mock a structure.
 ///
-/// Sometimes `automock` can't be used.  In those cases you can use `mock!`,
+/// Sometimes [`automock`] can't be used.  In those cases you can use `mock!`,
 /// which basically involves repeating the struct's or trait's definitions.
 ///
 /// The format is:
@@ -1371,7 +1368,7 @@
 /// }
 /// # fn main() {}
 /// ```
-/// Mocking an unsupported `#[derive(X)]` attribute, e.g. `Clone`, is
+/// Mocking an unsupported `#[derive(X)]` attribute, e.g. [`Clone`], is
 /// similar.
 /// ```
 /// # use mockall_derive::mock;
@@ -1395,8 +1392,8 @@
 /// ```
 /// # use mockall_derive::mock;
 /// mock!{
-///     pub Rc<T: 'static> {}
-///     impl<T: 'static> AsRef<T> for Rc<T> {
+///     pub Rc<T> {}
+///     impl<T> AsRef<T> for Rc<T> {
 ///         fn as_ref(&self) -> &T;
 ///     }
 /// }
@@ -1406,8 +1403,8 @@
 /// ```compile_fail
 /// # use mockall_derive::mock;
 /// mock!{
-///     pub Rc<Q: 'static> {}
-///     impl<T: 'static> AsRef<T> for Rc<T> {
+///     pub Rc<Q> {}
+///     impl<T> AsRef<T> for Rc<T> {
 ///         fn as_ref(&self) -> &T;
 ///     }
 /// }
@@ -1484,7 +1481,7 @@
 
 #[doc(hidden)]
 pub struct DebugPrint<'a, T: Debug>(pub &'a T);
-impl<'a, T> Debug for DebugPrint<'a, T> where T: Debug {
+impl<T> Debug for DebugPrint<'_, T> where T: Debug {
     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         Debug::fmt(self.0, f)
     }
@@ -1506,13 +1503,13 @@
 }
 #[doc(hidden)]
 pub trait ViaNothing { fn debug_string(&self) -> NothingPrint; }
-impl<'a, T> ViaNothing for ArgPrinter<'a, T> {
+impl<T> ViaNothing for ArgPrinter<'_, T> {
     fn debug_string(&self) -> NothingPrint {
         NothingPrint
     }
 }
 
-// Though it's not entirely correct, we treat usize::max_value() as
+// Though it's not entirely correct, we treat usize::MAX as
 // approximately infinity.
 #[derive(Debug)]
 #[doc(hidden)]
@@ -1521,7 +1518,7 @@
 impl Default for TimesRange {
     fn default() -> TimesRange {
         // By default, allow any number of calls
-        TimesRange(0..usize::max_value())
+        TimesRange(0..usize::MAX)
     }
 }
 
@@ -1540,13 +1537,13 @@
 
 impl From<RangeFrom<usize>> for TimesRange {
     fn from(r: RangeFrom<usize>) -> TimesRange {
-        TimesRange(r.start..usize::max_value())
+        TimesRange(r.start..usize::MAX)
     }
 }
 
 impl From<RangeFull> for TimesRange {
     fn from(_: RangeFull) -> TimesRange {
-        TimesRange(0..usize::max_value())
+        TimesRange(0..usize::MAX)
     }
 }
 
@@ -1605,7 +1602,7 @@
     }
 
     pub fn any(&mut self) {
-        self.range.0 = 0..usize::max_value();
+        self.range.0 = 0..usize::MAX;
     }
 
     /// Return how many times this expectation has been called
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index f0d27ae..f3d7a7c 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -287,7 +287,7 @@
  "mls-rs-core",
  "mls-rs-crypto-traits",
  "mockall",
- "mockall_derive 0.13.1",
+ "mockall_derive",
  "moveit",
  "named-lock",
  "nix 0.28.0",
@@ -3324,15 +3324,14 @@
 
 [[package]]
 name = "mockall"
-version = "0.12.1"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48"
+checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2"
 dependencies = [
  "cfg-if",
  "downcast",
  "fragile",
- "lazy_static",
- "mockall_derive 0.12.1",
+ "mockall_derive",
  "predicates",
  "predicates-tree",
 ]
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index 5964333..7a9a033 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -201,7 +201,7 @@
 mls-rs-codec-derive = "=0.1.1"
 mls-rs-core = "=0.18.0"
 mls-rs-crypto-traits = "=0.10.0"
-mockall = "=0.12.1"
+mockall = "=0.13.1"
 mockall_derive = "=0.13.1"
 moveit = "=0.6.0"
 named-lock = "=0.3.0"