Update MSRV to 1.90 (#21987)

This commit is contained in:
Micha Reiser 2025-12-15 14:29:11 +01:00 committed by GitHub
parent 0b918ae4d5
commit d08e414179
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 11 additions and 18 deletions

View File

@ -5,7 +5,7 @@ resolver = "2"
[workspace.package] [workspace.package]
# Please update rustfmt.toml when bumping the Rust edition # Please update rustfmt.toml when bumping the Rust edition
edition = "2024" edition = "2024"
rust-version = "1.89" rust-version = "1.90"
homepage = "https://docs.astral.sh/ruff" homepage = "https://docs.astral.sh/ruff"
documentation = "https://docs.astral.sh/ruff" documentation = "https://docs.astral.sh/ruff"
repository = "https://github.com/astral-sh/ruff" repository = "https://github.com/astral-sh/ruff"

View File

@ -10,7 +10,7 @@ use anyhow::bail;
use clap::builder::Styles; use clap::builder::Styles;
use clap::builder::styling::{AnsiColor, Effects}; use clap::builder::styling::{AnsiColor, Effects};
use clap::builder::{TypedValueParser, ValueParserFactory}; use clap::builder::{TypedValueParser, ValueParserFactory};
use clap::{Parser, Subcommand, command}; use clap::{Parser, Subcommand};
use colored::Colorize; use colored::Colorize;
use itertools::Itertools; use itertools::Itertools;
use path_absolutize::path_dedot; use path_absolutize::path_dedot;

View File

@ -9,7 +9,7 @@ use std::sync::mpsc::channel;
use anyhow::Result; use anyhow::Result;
use clap::CommandFactory; use clap::CommandFactory;
use colored::Colorize; use colored::Colorize;
use log::{error, warn}; use log::error;
use notify::{RecursiveMode, Watcher, recommended_watcher}; use notify::{RecursiveMode, Watcher, recommended_watcher};
use args::{GlobalConfigArgs, ServerCommand}; use args::{GlobalConfigArgs, ServerCommand};

View File

@ -337,7 +337,7 @@ macro_rules! best_fitting {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::prelude::*; use crate::prelude::*;
use crate::{FormatState, SimpleFormatOptions, VecBuffer, write}; use crate::{FormatState, SimpleFormatOptions, VecBuffer};
struct TestFormat; struct TestFormat;
@ -385,8 +385,8 @@ mod tests {
#[test] #[test]
fn best_fitting_variants_print_as_lists() { fn best_fitting_variants_print_as_lists() {
use crate::Formatted;
use crate::prelude::*; use crate::prelude::*;
use crate::{Formatted, format, format_args};
// The second variant below should be selected when printing at a width of 30 // The second variant below should be selected when printing at a width of 30
let formatted_best_fitting = format!( let formatted_best_fitting = format!(

View File

@ -286,12 +286,7 @@ pub(crate) fn add_argument(argument: &str, arguments: &Arguments, tokens: &Token
/// Generic function to add a (regular) parameter to a function definition. /// Generic function to add a (regular) parameter to a function definition.
pub(crate) fn add_parameter(parameter: &str, parameters: &Parameters, source: &str) -> Edit { pub(crate) fn add_parameter(parameter: &str, parameters: &Parameters, source: &str) -> Edit {
if let Some(last) = parameters if let Some(last) = parameters.args.iter().rfind(|arg| arg.default.is_none()) {
.args
.iter()
.filter(|arg| arg.default.is_none())
.next_back()
{
// Case 1: at least one regular parameter, so append after the last one. // Case 1: at least one regular parameter, so append after the last one.
Edit::insertion(format!(", {parameter}"), last.end()) Edit::insertion(format!(", {parameter}"), last.end())
} else if !parameters.args.is_empty() { } else if !parameters.args.is_empty() {

View File

@ -146,7 +146,7 @@ fn reverse_comparison(expr: &Expr, locator: &Locator, stylist: &Stylist) -> Resu
let left = (*comparison.left).clone(); let left = (*comparison.left).clone();
// Copy the right side to the left side. // Copy the right side to the left side.
comparison.left = Box::new(comparison.comparisons[0].comparator.clone()); *comparison.left = comparison.comparisons[0].comparator.clone();
// Copy the left side to the right side. // Copy the left side to the right side.
comparison.comparisons[0].comparator = left; comparison.comparisons[0].comparator = left;

View File

@ -1247,6 +1247,7 @@ impl<'a> Generator<'a> {
self.p_bytes_repr(&bytes_literal.value, bytes_literal.flags); self.p_bytes_repr(&bytes_literal.value, bytes_literal.flags);
} }
} }
#[expect(clippy::eq_op)]
Expr::NumberLiteral(ast::ExprNumberLiteral { value, .. }) => { Expr::NumberLiteral(ast::ExprNumberLiteral { value, .. }) => {
static INF_STR: &str = "1e309"; static INF_STR: &str = "1e309";
assert_eq!(f64::MAX_10_EXP, 308); assert_eq!(f64::MAX_10_EXP, 308);

View File

@ -3,7 +3,7 @@
use std::path::{Path, PathBuf}; use std::path::{Path, PathBuf};
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use clap::{Parser, ValueEnum, command}; use clap::{Parser, ValueEnum};
use ruff_formatter::SourceCode; use ruff_formatter::SourceCode;
use ruff_python_ast::{PySourceType, PythonVersion}; use ruff_python_ast::{PySourceType, PythonVersion};

View File

@ -4711,8 +4711,7 @@ from os.<CURSOR>
let last_nonunderscore = test let last_nonunderscore = test
.completions() .completions()
.iter() .iter()
.filter(|c| !c.name.starts_with('_')) .rfind(|c| !c.name.starts_with('_'))
.next_back()
.unwrap(); .unwrap();
assert_eq!(&last_nonunderscore.name, "type_check_only"); assert_eq!(&last_nonunderscore.name, "type_check_only");

View File

@ -27,7 +27,6 @@ use std::iter::FusedIterator;
use std::panic::{AssertUnwindSafe, UnwindSafe}; use std::panic::{AssertUnwindSafe, UnwindSafe};
use std::sync::Arc; use std::sync::Arc;
use thiserror::Error; use thiserror::Error;
use tracing::error;
use ty_python_semantic::add_inferred_python_version_hint_to_diagnostic; use ty_python_semantic::add_inferred_python_version_hint_to_diagnostic;
use ty_python_semantic::lint::RuleSelection; use ty_python_semantic::lint::RuleSelection;
use ty_python_semantic::types::check_types; use ty_python_semantic::types::check_types;

View File

@ -10691,7 +10691,6 @@ pub struct UnionTypeInstance<'db> {
/// `<class 'str'>`. For `Union[int, str]`, this field is `None`, as we infer /// `<class 'str'>`. For `Union[int, str]`, this field is `None`, as we infer
/// the elements as type expressions. Use `value_expression_types` to get the /// the elements as type expressions. Use `value_expression_types` to get the
/// corresponding value expression types. /// corresponding value expression types.
#[expect(clippy::ref_option)]
#[returns(ref)] #[returns(ref)]
_value_expr_types: Option<Box<[Type<'db>]>>, _value_expr_types: Option<Box<[Type<'db>]>>,

View File

@ -1,2 +1,2 @@
[toolchain] [toolchain]
channel = "1.91" channel = "1.92"