mirror of
https://github.com/nushell/nushell.git
synced 2025-05-30 14:50:02 +02:00
bump the rust toolchain to 1.83.0 (#15148)
# Description This PR bumps the rust toolchain to 1.83.0 and fixes a clippy lint. We do this because Rust 1.85.0 was released today, and we try and stay 2 versions behind. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. -->
This commit is contained in:
parent
4a967d19a9
commit
2f6b4c5e9b
@ -10,7 +10,7 @@ homepage = "https://www.nushell.sh"
|
|||||||
license = "MIT"
|
license = "MIT"
|
||||||
name = "nu"
|
name = "nu"
|
||||||
repository = "https://github.com/nushell/nushell"
|
repository = "https://github.com/nushell/nushell"
|
||||||
rust-version = "1.82.0"
|
rust-version = "1.83.0"
|
||||||
version = "0.102.1"
|
version = "0.102.1"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
@ -77,7 +77,9 @@ impl Command for Cd {
|
|||||||
if let Ok(path) = nu_path::canonicalize_with(path_no_whitespace, &cwd) {
|
if let Ok(path) = nu_path::canonicalize_with(path_no_whitespace, &cwd) {
|
||||||
if !path.is_dir() {
|
if !path.is_dir() {
|
||||||
return Err(shell_error::io::IoError::new(
|
return Err(shell_error::io::IoError::new(
|
||||||
shell_error::io::ErrorKind::NotADirectory,
|
shell_error::io::ErrorKind::Std(
|
||||||
|
std::io::ErrorKind::NotADirectory,
|
||||||
|
),
|
||||||
v.span,
|
v.span,
|
||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
@ -104,7 +106,7 @@ impl Command for Cd {
|
|||||||
};
|
};
|
||||||
if !path.is_dir() {
|
if !path.is_dir() {
|
||||||
return Err(shell_error::io::IoError::new(
|
return Err(shell_error::io::IoError::new(
|
||||||
shell_error::io::ErrorKind::NotADirectory,
|
shell_error::io::ErrorKind::Std(std::io::ErrorKind::NotADirectory),
|
||||||
v.span,
|
v.span,
|
||||||
path,
|
path,
|
||||||
)
|
)
|
||||||
|
@ -151,7 +151,7 @@ impl Command for Open {
|
|||||||
// At least under windows this check ensures that we don't get a
|
// At least under windows this check ensures that we don't get a
|
||||||
// permission denied error on directories
|
// permission denied error on directories
|
||||||
return Err(ShellError::Io(IoError::new(
|
return Err(ShellError::Io(IoError::new(
|
||||||
shell_error::io::ErrorKind::IsADirectory,
|
shell_error::io::ErrorKind::Std(std::io::ErrorKind::IsADirectory),
|
||||||
arg_span,
|
arg_span,
|
||||||
PathBuf::from(path),
|
PathBuf::from(path),
|
||||||
)));
|
)));
|
||||||
|
@ -424,7 +424,9 @@ fn open_file(path: &Path, span: Span, append: bool) -> Result<File, ShellError>
|
|||||||
// A TOCTOU problem exists here, which may cause wrong error message to be shown
|
// A TOCTOU problem exists here, which may cause wrong error message to be shown
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
if path.is_dir() {
|
if path.is_dir() {
|
||||||
Err(nu_protocol::shell_error::io::ErrorKind::IsADirectory)
|
Err(nu_protocol::shell_error::io::ErrorKind::Std(
|
||||||
|
std::io::ErrorKind::IsADirectory,
|
||||||
|
))
|
||||||
} else {
|
} else {
|
||||||
std::fs::File::create(path).map_err(|err| err.kind().into())
|
std::fs::File::create(path).map_err(|err| err.kind().into())
|
||||||
}
|
}
|
||||||
|
@ -405,7 +405,7 @@ impl From<TestRow> for Value {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'r> TryFrom<&rusqlite::Row<'r>> for TestRow {
|
impl TryFrom<&rusqlite::Row<'_>> for TestRow {
|
||||||
type Error = rusqlite::Error;
|
type Error = rusqlite::Error;
|
||||||
|
|
||||||
fn try_from(row: &rusqlite::Row) -> Result<Self, Self::Error> {
|
fn try_from(row: &rusqlite::Row) -> Result<Self, Self::Error> {
|
||||||
|
@ -419,7 +419,7 @@ fn set_dir_read_only(directory: &AbsolutePath, read_only: bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(windows))]
|
#[cfg(not(windows))]
|
||||||
impl<'a> Drop for Cleanup<'a> {
|
impl Drop for Cleanup<'_> {
|
||||||
/// Restores write permissions to the given directory so that the Playground can be successfully
|
/// Restores write permissions to the given directory so that the Playground can be successfully
|
||||||
/// cleaned up.
|
/// cleaned up.
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
|
@ -87,7 +87,7 @@ impl StatefulWidget for TableWidget<'_> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// todo: refactoring these to methods as they have quite a bit in common.
|
// todo: refactoring these to methods as they have quite a bit in common.
|
||||||
impl<'a> TableWidget<'a> {
|
impl TableWidget<'_> {
|
||||||
// header at the top; header is always 1 line
|
// header at the top; header is always 1 line
|
||||||
fn render_table_horizontal(self, area: Rect, buf: &mut Buffer, state: &mut TableWidgetState) {
|
fn render_table_horizontal(self, area: Rect, buf: &mut Buffer, state: &mut TableWidgetState) {
|
||||||
let padding_l = self.config.column_padding_left as u16;
|
let padding_l = self.config.column_padding_left as u16;
|
||||||
|
@ -132,11 +132,7 @@ pub struct IoError {
|
|||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Diagnostic)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Diagnostic)]
|
||||||
pub enum ErrorKind {
|
pub enum ErrorKind {
|
||||||
Std(std::io::ErrorKind),
|
Std(std::io::ErrorKind),
|
||||||
// TODO: in Rust 1.83 this can be std::io::ErrorKind::NotADirectory
|
|
||||||
NotADirectory,
|
|
||||||
NotAFile,
|
NotAFile,
|
||||||
// TODO: in Rust 1.83 this can be std::io::ErrorKind::IsADirectory
|
|
||||||
IsADirectory,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Error, Diagnostic)]
|
#[derive(Debug, Clone, PartialEq, Eq, Error, Diagnostic)]
|
||||||
@ -321,9 +317,7 @@ impl Display for ErrorKind {
|
|||||||
let (first, rest) = msg.split_at(1);
|
let (first, rest) = msg.split_at(1);
|
||||||
write!(f, "{}{}", first.to_uppercase(), rest)
|
write!(f, "{}{}", first.to_uppercase(), rest)
|
||||||
}
|
}
|
||||||
ErrorKind::NotADirectory => write!(f, "Not a directory"),
|
|
||||||
ErrorKind::NotAFile => write!(f, "Not a file"),
|
ErrorKind::NotAFile => write!(f, "Not a file"),
|
||||||
ErrorKind::IsADirectory => write!(f, "Is a directory"),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -357,9 +351,7 @@ impl Diagnostic for IoError {
|
|||||||
std::io::ErrorKind::Other => code.push_str("other"),
|
std::io::ErrorKind::Other => code.push_str("other"),
|
||||||
kind => code.push_str(&kind.to_string().to_lowercase().replace(" ", "_")),
|
kind => code.push_str(&kind.to_string().to_lowercase().replace(" ", "_")),
|
||||||
},
|
},
|
||||||
ErrorKind::NotADirectory => code.push_str("not_a_directory"),
|
|
||||||
ErrorKind::NotAFile => code.push_str("not_a_file"),
|
ErrorKind::NotAFile => code.push_str("not_a_file"),
|
||||||
ErrorKind::IsADirectory => code.push_str("is_a_directory"),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Some(Box::new(code))
|
Some(Box::new(code))
|
||||||
|
@ -302,7 +302,7 @@ impl<'a> MapSerializer<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> serde::ser::SerializeStruct for MapSerializer<'a> {
|
impl serde::ser::SerializeStruct for MapSerializer<'_> {
|
||||||
type Ok = Value;
|
type Ok = Value;
|
||||||
type Error = Error;
|
type Error = Error;
|
||||||
|
|
||||||
@ -320,7 +320,7 @@ impl<'a> serde::ser::SerializeStruct for MapSerializer<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> serde::ser::SerializeMap for MapSerializer<'a> {
|
impl serde::ser::SerializeMap for MapSerializer<'_> {
|
||||||
type Ok = Value;
|
type Ok = Value;
|
||||||
type Error = Error;
|
type Error = Error;
|
||||||
|
|
||||||
@ -351,7 +351,7 @@ impl<'a> serde::ser::SerializeMap for MapSerializer<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> serde::ser::SerializeStructVariant for MapSerializer<'a> {
|
impl serde::ser::SerializeStructVariant for MapSerializer<'_> {
|
||||||
type Ok = Value;
|
type Ok = Value;
|
||||||
type Error = Error;
|
type Error = Error;
|
||||||
|
|
||||||
@ -385,7 +385,7 @@ impl<'a> SeqSerializer<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> serde::ser::SerializeSeq for SeqSerializer<'a> {
|
impl serde::ser::SerializeSeq for SeqSerializer<'_> {
|
||||||
type Ok = Value;
|
type Ok = Value;
|
||||||
type Error = Error;
|
type Error = Error;
|
||||||
|
|
||||||
@ -402,7 +402,7 @@ impl<'a> serde::ser::SerializeSeq for SeqSerializer<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> serde::ser::SerializeTuple for SeqSerializer<'a> {
|
impl serde::ser::SerializeTuple for SeqSerializer<'_> {
|
||||||
type Ok = Value;
|
type Ok = Value;
|
||||||
type Error = Error;
|
type Error = Error;
|
||||||
|
|
||||||
@ -419,7 +419,7 @@ impl<'a> serde::ser::SerializeTuple for SeqSerializer<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> serde::ser::SerializeTupleStruct for SeqSerializer<'a> {
|
impl serde::ser::SerializeTupleStruct for SeqSerializer<'_> {
|
||||||
type Ok = Value;
|
type Ok = Value;
|
||||||
type Error = Error;
|
type Error = Error;
|
||||||
|
|
||||||
@ -436,7 +436,7 @@ impl<'a> serde::ser::SerializeTupleStruct for SeqSerializer<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> serde::ser::SerializeTupleVariant for SeqSerializer<'a> {
|
impl serde::ser::SerializeTupleVariant for SeqSerializer<'_> {
|
||||||
type Ok = Value;
|
type Ok = Value;
|
||||||
type Error = Error;
|
type Error = Error;
|
||||||
|
|
||||||
|
@ -16,4 +16,4 @@ profile = "default"
|
|||||||
# use in nushell, we may opt to use the bleeding edge stable version of rust.
|
# use in nushell, we may opt to use the bleeding edge stable version of rust.
|
||||||
# I believe rust is on a 6 week release cycle and nushell is on a 4 week release cycle.
|
# I believe rust is on a 6 week release cycle and nushell is on a 4 week release cycle.
|
||||||
# So, every two nushell releases, this version number should be bumped by one.
|
# So, every two nushell releases, this version number should be bumped by one.
|
||||||
channel = "1.82.0"
|
channel = "1.83.0"
|
||||||
|
@ -78,9 +78,9 @@ fn run_interactive_stderr(xdg_config_home: impl AsRef<Path>) -> String {
|
|||||||
.output()
|
.output()
|
||||||
.expect("Should have outputted");
|
.expect("Should have outputted");
|
||||||
|
|
||||||
return String::from_utf8_lossy(&child_output.stderr)
|
String::from_utf8_lossy(&child_output.stderr)
|
||||||
.trim()
|
.trim()
|
||||||
.to_string();
|
.to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_config_path_helper(
|
fn test_config_path_helper(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user