THRIFT-5741: use rust 1.65 (#2870)
* use rust 1.65
* fix clippy
* fix alert
* fix protocol
* fix one more dereference
* fix more lint
* fix over-fix
* fix match &*server_type {
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c5d66f6..7dfc14f 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -285,7 +285,7 @@
needs: compiler
runs-on: ubuntu-20.04
env:
- TOOLCHAIN_VERSION: 1.61.0
+ TOOLCHAIN_VERSION: 1.65.0
steps:
- uses: actions/checkout@v4
diff --git a/LANGUAGES.md b/LANGUAGES.md
index 6cb6018..236007f 100644
--- a/LANGUAGES.md
+++ b/LANGUAGES.md
@@ -319,7 +319,7 @@
<td align=left><a href="https://github.com/apache/thrift/blob/master/lib/rs/README.md">Rust</a></td>
<!-- Since -----------------><td>0.11.0</td>
<!-- Build Systems ---------><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cred.png" alt=""/></td>
-<!-- Language Levels -------><td>1.61.0</td><td>1.xx.x</td>
+<!-- Language Levels -------><td>1.65.0</td><td>1.xx.x</td>
<!-- Field types -----------><td><img src="/doc/images/cred.png" alt=""/></td>
<!-- Low-Level Transports --><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cred.png" alt=""/></td>
<!-- Transport Wrappers ----><td><img src="/doc/images/cgrn.png" alt="Yes"/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cred.png" alt=""/></td><td><img src="/doc/images/cred.png" alt=""/></td>
diff --git a/build/docker/README.md b/build/docker/README.md
index abf0823..9c9175f 100644
--- a/build/docker/README.md
+++ b/build/docker/README.md
@@ -191,6 +191,6 @@
| python | 2.7.12 | 2.7.15 | |
| python3 | 3.5.2 | 3.6.8 | |
| ruby | 2.3.1p112 | 2.5.1p57 | |
-| rust | 1.61.0 | 1.61.0 | |
+| rust | 1.65.0 | 1.65.0 | |
| smalltalk | | | Not in CI |
| swift | | 5.1.4 | |
diff --git a/build/docker/old/ubuntu-disco/Dockerfile b/build/docker/old/ubuntu-disco/Dockerfile
index 43f4a00..d2f397a 100644
--- a/build/docker/old/ubuntu-disco/Dockerfile
+++ b/build/docker/old/ubuntu-disco/Dockerfile
@@ -254,7 +254,7 @@
ruby-bundler
# Rust dependencies
-RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.61.0 -y
+RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.65.0 -y
ENV PATH /root/.cargo/bin:$PATH
# Swift on Linux for cross tests
diff --git a/build/docker/old/ubuntu-xenial/Dockerfile b/build/docker/old/ubuntu-xenial/Dockerfile
index 7351085..37df80f 100644
--- a/build/docker/old/ubuntu-xenial/Dockerfile
+++ b/build/docker/old/ubuntu-xenial/Dockerfile
@@ -249,7 +249,7 @@
ruby-bundler
# Rust dependencies
-RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.61.0 -y
+RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.65.0 -y
# Locale(s) for cpp unit tests
RUN apt-get install -y --no-install-recommends \
diff --git a/build/docker/ubuntu-bionic/Dockerfile b/build/docker/ubuntu-bionic/Dockerfile
index 57a8aee..00c7de3 100644
--- a/build/docker/ubuntu-bionic/Dockerfile
+++ b/build/docker/ubuntu-bionic/Dockerfile
@@ -254,7 +254,7 @@
ruby-bundler
# Rust dependencies
-RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.61.0 -y
+RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.65.0 -y
ENV PATH /root/.cargo/bin:$PATH
# Swift on Linux for cross tests
diff --git a/build/docker/ubuntu-focal/Dockerfile b/build/docker/ubuntu-focal/Dockerfile
index a6121fa..1039e45 100644
--- a/build/docker/ubuntu-focal/Dockerfile
+++ b/build/docker/ubuntu-focal/Dockerfile
@@ -241,7 +241,7 @@
ruby-bundler
# Rust dependencies
-RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.61.0 -y
+RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.65.0 -y
ENV PATH /root/.cargo/bin:$PATH
# Swift on Linux for cross tests
diff --git a/build/docker/ubuntu-jammy/Dockerfile b/build/docker/ubuntu-jammy/Dockerfile
index bbb46d7..d45070f 100644
--- a/build/docker/ubuntu-jammy/Dockerfile
+++ b/build/docker/ubuntu-jammy/Dockerfile
@@ -241,7 +241,7 @@
ruby-bundler
# Rust dependencies
-RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.61.0 -y
+RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.65.0 -y
ENV PATH /root/.cargo/bin:$PATH
# Swift on Linux for cross tests
diff --git a/lib/rs/README.md b/lib/rs/README.md
index 010bb17..51aa63e 100644
--- a/lib/rs/README.md
+++ b/lib/rs/README.md
@@ -177,7 +177,7 @@
##### Thrift 0.14.0
-* **[THRIFT-5158]** - Rust library and generator now support Rust 2021 only. Required rust 1.61.0 or higher
+* **[THRIFT-5158]** - Rust library and generator now support Rust 2021 only. Required rust 1.65.0 or higher
The Rust `thrift` library was updated to Rust 2021 via `cargo fix --edition`.
All test code in the repo was updated as well. The code generator was also updated
diff --git a/lib/rs/src/protocol/binary.rs b/lib/rs/src/protocol/binary.rs
index 5da8018..b4b51f6 100644
--- a/lib/rs/src/protocol/binary.rs
+++ b/lib/rs/src/protocol/binary.rs
@@ -59,7 +59,7 @@
pub transport: T, // FIXME: shouldn't be public
}
-impl<'a, T> TBinaryInputProtocol<T>
+impl<T> TBinaryInputProtocol<T>
where
T: TReadTransport,
{
@@ -861,7 +861,7 @@
set_readable_bytes!(i_prot, &[0x01]);
let read_bool = assert_success!(i_prot.read_bool());
- assert_eq!(read_bool, true);
+ assert!(read_bool);
}
#[test]
@@ -871,7 +871,7 @@
set_readable_bytes!(i_prot, &[0x00]);
let read_bool = assert_success!(i_prot.read_bool());
- assert_eq!(read_bool, false);
+ assert!(!read_bool);
}
#[test]
@@ -881,7 +881,7 @@
set_readable_bytes!(i_prot, &[0xAC]);
let read_bool = assert_success!(i_prot.read_bool());
- assert_eq!(read_bool, true);
+ assert!(read_bool);
}
#[test]
diff --git a/lib/rs/src/protocol/compact.rs b/lib/rs/src/protocol/compact.rs
index a1aa253..c0c4372 100644
--- a/lib/rs/src/protocol/compact.rs
+++ b/lib/rs/src/protocol/compact.rs
@@ -2461,7 +2461,7 @@
}
);
let read_value_1 = assert_success!(i_prot.read_bool());
- assert_eq!(read_value_1, true);
+ assert!(read_value_1);
assert_success!(i_prot.read_field_end());
let read_ident_2 = assert_success!(i_prot.read_field_begin());
@@ -2473,7 +2473,7 @@
}
);
let read_value_2 = assert_success!(i_prot.read_bool());
- assert_eq!(read_value_2, false);
+ assert!(!read_value_2);
assert_success!(i_prot.read_field_end());
let read_ident_3 = assert_success!(i_prot.read_field_begin());
@@ -2485,7 +2485,7 @@
}
);
let read_value_3 = assert_success!(i_prot.read_bool());
- assert_eq!(read_value_3, true);
+ assert!(read_value_3);
assert_success!(i_prot.read_field_end());
let read_ident_4 = assert_success!(i_prot.read_field_begin());
@@ -2497,7 +2497,7 @@
}
);
let read_value_4 = assert_success!(i_prot.read_bool());
- assert_eq!(read_value_4, false);
+ assert!(!read_value_4);
assert_success!(i_prot.read_field_end());
let read_ident_5 = assert_success!(i_prot.read_field_begin());
@@ -2774,16 +2774,16 @@
assert_eq!(&rcvd_ident, &map_ident);
// key 1
let b = assert_success!(i_prot.read_bool());
- assert_eq!(b, true);
+ assert!(b);
// val 1
let b = assert_success!(i_prot.read_bool());
- assert_eq!(b, false);
+ assert!(!b);
// key 2
let b = assert_success!(i_prot.read_bool());
- assert_eq!(b, false);
+ assert!(!b);
// val 2
let b = assert_success!(i_prot.read_bool());
- assert_eq!(b, true);
+ assert!(b);
// map end
assert_success!(i_prot.read_map_end());
}
diff --git a/lib/rs/src/server/multiplexed.rs b/lib/rs/src/server/multiplexed.rs
index f6811a4..85126b7 100644
--- a/lib/rs/src/server/multiplexed.rs
+++ b/lib/rs/src/server/multiplexed.rs
@@ -197,7 +197,7 @@
#[test]
fn should_split_name_into_proper_separator_and_service_call() {
let ident_name = "foo:bar_call";
- let (serv, call) = split_ident_name(&ident_name);
+ let (serv, call) = split_ident_name(ident_name);
assert_eq!(serv, Some("foo"));
assert_eq!(call, "bar_call");
}
@@ -205,7 +205,7 @@
#[test]
fn should_return_full_ident_if_no_separator_exists() {
let ident_name = "bar_call";
- let (serv, call) = split_ident_name(&ident_name);
+ let (serv, call) = split_ident_name(ident_name);
assert_eq!(serv, None);
assert_eq!(call, "bar_call");
}
@@ -311,8 +311,8 @@
p.process(&mut i, &mut o).unwrap();
// service 1 should have been invoked, not service 2
- assert_eq!(atm_1.load(Ordering::Relaxed), true);
- assert_eq!(atm_2.load(Ordering::Relaxed), false);
+ assert!(atm_1.load(Ordering::Relaxed));
+ assert!(!atm_2.load(Ordering::Relaxed));
}
#[test]
@@ -344,8 +344,8 @@
p.process(&mut i, &mut o).unwrap();
// service 2 should have been invoked, not service 1
- assert_eq!(atm_1.load(Ordering::Relaxed), false);
- assert_eq!(atm_2.load(Ordering::Relaxed), true);
+ assert!(!atm_1.load(Ordering::Relaxed));
+ assert!(atm_2.load(Ordering::Relaxed));
}
fn build_objects() -> (
diff --git a/lib/rs/test/src/bin/kitchen_sink_server.rs b/lib/rs/test/src/bin/kitchen_sink_server.rs
index 1abd07c..6595d63 100644
--- a/lib/rs/test/src/bin/kitchen_sink_server.rs
+++ b/lib/rs/test/src/bin/kitchen_sink_server.rs
@@ -93,7 +93,7 @@
let (i_protocol_factory, o_protocol_factory): (
Box<dyn TInputProtocolFactory>,
Box<dyn TOutputProtocolFactory>,
- ) = match &*protocol {
+ ) = match protocol {
"binary" => (
Box::new(TBinaryInputProtocolFactory::new()),
Box::new(TBinaryOutputProtocolFactory::new()),
@@ -117,7 +117,7 @@
// different processor) this isn't possible.
//
// Since what I'm doing is uncommon I'm just going to duplicate the code
- match &*service {
+ match service {
"part" => run_meal_server(
socket,
r_transport_factory,
diff --git a/rust-toolchain b/rust-toolchain
index 91951fd..902c741 100644
--- a/rust-toolchain
+++ b/rust-toolchain
@@ -1 +1 @@
-1.61.0
+1.65.0
diff --git a/test/rs/src/bin/test_server.rs b/test/rs/src/bin/test_server.rs
index 3e622d5..aa8191c 100644
--- a/test/rs/src/bin/test_server.rs
+++ b/test/rs/src/bin/test_server.rs
@@ -81,7 +81,7 @@
let (i_transport_factory, o_transport_factory): (
Box<dyn TReadTransportFactory>,
Box<dyn TWriteTransportFactory>,
- ) = match &*transport {
+ ) = match transport {
"buffered" => (
Box::new(TBufferedReadTransportFactory::new()),
Box::new(TBufferedWriteTransportFactory::new()),
@@ -98,7 +98,7 @@
let (i_protocol_factory, o_protocol_factory): (
Box<dyn TInputProtocolFactory>,
Box<dyn TOutputProtocolFactory>,
- ) = match &*protocol {
+ ) = match protocol {
"binary" | "multi" | "multi:binary" => (
Box::new(TBinaryInputProtocolFactory::new()),
Box::new(TBinaryOutputProtocolFactory::new()),
@@ -114,7 +114,7 @@
let test_processor = ThriftTestSyncProcessor::new(ThriftTestSyncHandlerImpl {});
- match &*server_type {
+ match server_type {
"simple" | "thread-pool" => {
if protocol == "multi" || protocol == "multic" {
let second_service_processor =