[ty] Use smallvec_inline! more consistently (#22720)

This commit is contained in:
Alex Waygood
2026-01-19 13:29:01 +00:00
committed by GitHub
parent d19c962d5e
commit 9eff10c79f
2 changed files with 30 additions and 38 deletions

View File

@@ -18,7 +18,7 @@ use ruff_db::parsed::parsed_module;
use ruff_python_ast as ast;
use ruff_python_ast::name::Name;
use ruff_text_size::{Ranged, TextRange};
use smallvec::{SmallVec, smallvec};
use smallvec::{SmallVec, smallvec_inline};
use ty_module_resolver::{KnownModule, Module, ModuleName, resolve_module};
use type_ordering::union_or_intersection_elements_ordering;
@@ -5471,9 +5471,9 @@ impl<'db> Type<'db> {
| Type::TypeIs(_)
| Type::TypeGuard(_)
| Type::TypedDict(_) => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
InvalidTypeExpression::InvalidType(*self, scope_id)
],
invalid_expressions: smallvec_inline![InvalidTypeExpression::InvalidType(
*self, scope_id
)],
fallback_type: Type::unknown(),
}),
@@ -5496,33 +5496,31 @@ impl<'db> Type<'db> {
.unwrap_or(*self))
}
KnownInstanceType::Deprecated(_) => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec![InvalidTypeExpression::Deprecated],
invalid_expressions: smallvec_inline![InvalidTypeExpression::Deprecated],
fallback_type: Type::unknown(),
}),
KnownInstanceType::Field(__call__) => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec![InvalidTypeExpression::Field],
invalid_expressions: smallvec_inline![InvalidTypeExpression::Field],
fallback_type: Type::unknown(),
}),
KnownInstanceType::ConstraintSet(__call__) => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec![InvalidTypeExpression::ConstraintSet],
invalid_expressions: smallvec_inline![InvalidTypeExpression::ConstraintSet],
fallback_type: Type::unknown(),
}),
KnownInstanceType::GenericContext(__call__) => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec![InvalidTypeExpression::GenericContext],
invalid_expressions: smallvec_inline![InvalidTypeExpression::GenericContext],
fallback_type: Type::unknown(),
}),
KnownInstanceType::Specialization(__call__) => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec![InvalidTypeExpression::Specialization],
invalid_expressions: smallvec_inline![InvalidTypeExpression::Specialization],
fallback_type: Type::unknown(),
}),
KnownInstanceType::SubscriptedProtocol(_) => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
InvalidTypeExpression::Protocol
],
invalid_expressions: smallvec_inline![InvalidTypeExpression::Protocol],
fallback_type: Type::unknown(),
}),
KnownInstanceType::SubscriptedGeneric(_) => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![InvalidTypeExpression::Generic],
invalid_expressions: smallvec_inline![InvalidTypeExpression::Generic],
fallback_type: Type::unknown(),
}),
KnownInstanceType::UnionType(instance) => {
@@ -5591,7 +5589,7 @@ impl<'db> Type<'db> {
let Some(class) = nearest_enclosing_class(db, index, scope_id) else {
return Err(InvalidTypeExpressionError {
fallback_type: Type::unknown(),
invalid_expressions: smallvec::smallvec_inline![
invalid_expressions: smallvec_inline![
InvalidTypeExpression::InvalidType(*self, scope_id)
],
});
@@ -5607,35 +5605,29 @@ impl<'db> Type<'db> {
// annotated assignment statement) doesn't reach here. Using it in any other type
// expression is an error.
SpecialFormType::TypeAlias => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
InvalidTypeExpression::TypeAlias
],
invalid_expressions: smallvec_inline![InvalidTypeExpression::TypeAlias],
fallback_type: Type::unknown(),
}),
SpecialFormType::TypedDict => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
InvalidTypeExpression::TypedDict
],
invalid_expressions: smallvec_inline![InvalidTypeExpression::TypedDict],
fallback_type: Type::unknown(),
}),
SpecialFormType::Literal
| SpecialFormType::Union
| SpecialFormType::Intersection => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
invalid_expressions: smallvec_inline![
InvalidTypeExpression::RequiresArguments(*special_form)
],
fallback_type: Type::unknown(),
}),
SpecialFormType::Protocol => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
InvalidTypeExpression::Protocol
],
invalid_expressions: smallvec_inline![InvalidTypeExpression::Protocol],
fallback_type: Type::unknown(),
}),
SpecialFormType::Generic => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![InvalidTypeExpression::Generic],
invalid_expressions: smallvec_inline![InvalidTypeExpression::Generic],
fallback_type: Type::unknown(),
}),
@@ -5648,7 +5640,7 @@ impl<'db> Type<'db> {
| SpecialFormType::TypeGuard
| SpecialFormType::Unpack
| SpecialFormType::CallableTypeOf => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
invalid_expressions: smallvec_inline![
InvalidTypeExpression::RequiresOneArgument(*special_form)
],
fallback_type: Type::unknown(),
@@ -5656,7 +5648,7 @@ impl<'db> Type<'db> {
SpecialFormType::Annotated | SpecialFormType::Concatenate => {
Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
invalid_expressions: smallvec_inline![
InvalidTypeExpression::RequiresTwoArguments(*special_form)
],
fallback_type: Type::unknown(),
@@ -5665,7 +5657,7 @@ impl<'db> Type<'db> {
SpecialFormType::ClassVar | SpecialFormType::Final => {
Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
invalid_expressions: smallvec_inline![
InvalidTypeExpression::TypeQualifier(*special_form)
],
fallback_type: Type::unknown(),
@@ -5675,7 +5667,7 @@ impl<'db> Type<'db> {
SpecialFormType::ReadOnly
| SpecialFormType::NotRequired
| SpecialFormType::Required => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
invalid_expressions: smallvec_inline![
InvalidTypeExpression::TypeQualifierRequiresOneArgument(*special_form)
],
fallback_type: Type::unknown(),
@@ -5718,9 +5710,9 @@ impl<'db> Type<'db> {
"Support for `typing.TypeVarTuple` instances in type expressions"
)),
_ => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
InvalidTypeExpression::InvalidType(*self, scope_id)
],
invalid_expressions: smallvec_inline![InvalidTypeExpression::InvalidType(
*self, scope_id
)],
fallback_type: Type::unknown(),
}),
},
@@ -5734,9 +5726,9 @@ impl<'db> Type<'db> {
}
Type::NewTypeInstance(_) => Err(InvalidTypeExpressionError {
invalid_expressions: smallvec::smallvec_inline![
InvalidTypeExpression::InvalidType(*self, scope_id)
],
invalid_expressions: smallvec_inline![InvalidTypeExpression::InvalidType(
*self, scope_id
)],
fallback_type: Type::unknown(),
}),
}
@@ -10546,7 +10538,7 @@ pub(crate) struct CallableTypes<'db>(SmallVec<[CallableType<'db>; 1]>);
impl<'db> CallableTypes<'db> {
pub(crate) fn one(callable: CallableType<'db>) -> Self {
CallableTypes(smallvec![callable])
CallableTypes(smallvec_inline![callable])
}
pub(crate) fn from_elements(callables: impl IntoIterator<Item = CallableType<'db>>) -> Self {

View File

@@ -29,7 +29,7 @@ use itertools::Itertools;
use ruff_python_ast as ast;
use ruff_python_ast::{BoolOp, ExprBoolOp};
use rustc_hash::FxHashMap;
use smallvec::{SmallVec, smallvec};
use smallvec::{SmallVec, smallvec, smallvec_inline};
use std::collections::hash_map::Entry;
/// Return the type constraint that `test` (if true) would place on `symbol`, if any.
@@ -328,7 +328,7 @@ impl<'db> NarrowingConstraint<'db> {
fn replacement(constraint: Type<'db>) -> Self {
Self {
intersection_disjunct: None,
replacement_disjuncts: smallvec![constraint],
replacement_disjuncts: smallvec_inline![constraint],
}
}