mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-30 13:51:37 +00:00
Add a few missing #[return_ref]
attributes (#13223)
This commit is contained in:
parent
54df960a4a
commit
599103c933
5 changed files with 11 additions and 7 deletions
|
@ -361,6 +361,7 @@ impl<'db> Type<'db> {
|
||||||
#[salsa::interned]
|
#[salsa::interned]
|
||||||
pub struct FunctionType<'db> {
|
pub struct FunctionType<'db> {
|
||||||
/// name of the function at definition
|
/// name of the function at definition
|
||||||
|
#[return_ref]
|
||||||
pub name: ast::name::Name,
|
pub name: ast::name::Name,
|
||||||
|
|
||||||
definition: Definition<'db>,
|
definition: Definition<'db>,
|
||||||
|
@ -408,6 +409,7 @@ impl<'db> FunctionType<'db> {
|
||||||
#[salsa::interned]
|
#[salsa::interned]
|
||||||
pub struct ClassType<'db> {
|
pub struct ClassType<'db> {
|
||||||
/// Name of the class at definition
|
/// Name of the class at definition
|
||||||
|
#[return_ref]
|
||||||
pub name: ast::name::Name,
|
pub name: ast::name::Name,
|
||||||
|
|
||||||
definition: Definition<'db>,
|
definition: Definition<'db>,
|
||||||
|
@ -464,6 +466,7 @@ impl<'db> ClassType<'db> {
|
||||||
#[salsa::interned]
|
#[salsa::interned]
|
||||||
pub struct UnionType<'db> {
|
pub struct UnionType<'db> {
|
||||||
/// The union type includes values in any of these types.
|
/// The union type includes values in any of these types.
|
||||||
|
#[return_ref]
|
||||||
elements: FxOrderSet<Type<'db>>,
|
elements: FxOrderSet<Type<'db>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -476,6 +479,7 @@ impl<'db> UnionType<'db> {
|
||||||
#[salsa::interned]
|
#[salsa::interned]
|
||||||
pub struct IntersectionType<'db> {
|
pub struct IntersectionType<'db> {
|
||||||
/// The intersection type includes only values in all of these types.
|
/// The intersection type includes only values in all of these types.
|
||||||
|
#[return_ref]
|
||||||
positive: FxOrderSet<Type<'db>>,
|
positive: FxOrderSet<Type<'db>>,
|
||||||
|
|
||||||
/// The intersection type does not include any value in any of these types.
|
/// The intersection type does not include any value in any of these types.
|
||||||
|
@ -483,6 +487,7 @@ pub struct IntersectionType<'db> {
|
||||||
/// Negation types aren't expressible in annotations, and are most likely to arise from type
|
/// Negation types aren't expressible in annotations, and are most likely to arise from type
|
||||||
/// narrowing along with intersections (e.g. `if not isinstance(...)`), so we represent them
|
/// narrowing along with intersections (e.g. `if not isinstance(...)`), so we represent them
|
||||||
/// directly in intersections rather than as a separate type.
|
/// directly in intersections rather than as a separate type.
|
||||||
|
#[return_ref]
|
||||||
negative: FxOrderSet<Type<'db>>,
|
negative: FxOrderSet<Type<'db>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ impl<'db> UnionBuilder<'db> {
|
||||||
pub(crate) fn add(mut self, ty: Type<'db>) -> Self {
|
pub(crate) fn add(mut self, ty: Type<'db>) -> Self {
|
||||||
match ty {
|
match ty {
|
||||||
Type::Union(union) => {
|
Type::Union(union) => {
|
||||||
self.elements.extend(&union.elements(self.db));
|
self.elements.extend(union.elements(self.db));
|
||||||
}
|
}
|
||||||
Type::Never => {}
|
Type::Never => {}
|
||||||
_ => {
|
_ => {
|
||||||
|
@ -284,7 +284,7 @@ mod tests {
|
||||||
|
|
||||||
impl<'db> UnionType<'db> {
|
impl<'db> UnionType<'db> {
|
||||||
fn elements_vec(self, db: &'db TestDb) -> Vec<Type<'db>> {
|
fn elements_vec(self, db: &'db TestDb) -> Vec<Type<'db>> {
|
||||||
self.elements(db).into_iter().collect()
|
self.elements(db).into_iter().copied().collect()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -389,11 +389,11 @@ mod tests {
|
||||||
|
|
||||||
impl<'db> IntersectionType<'db> {
|
impl<'db> IntersectionType<'db> {
|
||||||
fn pos_vec(self, db: &'db TestDb) -> Vec<Type<'db>> {
|
fn pos_vec(self, db: &'db TestDb) -> Vec<Type<'db>> {
|
||||||
self.positive(db).into_iter().collect()
|
self.positive(db).into_iter().copied().collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn neg_vec(self, db: &'db TestDb) -> Vec<Type<'db>> {
|
fn neg_vec(self, db: &'db TestDb) -> Vec<Type<'db>> {
|
||||||
self.negative(db).into_iter().collect()
|
self.negative(db).into_iter().copied().collect()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ impl Display for DisplayType<'_> {
|
||||||
}
|
}
|
||||||
// TODO functions and classes should display using a fully qualified name
|
// TODO functions and classes should display using a fully qualified name
|
||||||
Type::Class(class) => write!(f, "Literal[{}]", class.name(self.db)),
|
Type::Class(class) => write!(f, "Literal[{}]", class.name(self.db)),
|
||||||
Type::Instance(class) => f.write_str(&class.name(self.db)),
|
Type::Instance(class) => f.write_str(class.name(self.db)),
|
||||||
Type::Function(function) => write!(f, "Literal[{}]", function.name(self.db)),
|
Type::Function(function) => write!(f, "Literal[{}]", function.name(self.db)),
|
||||||
Type::Union(union) => union.display(self.db).fmt(f),
|
Type::Union(union) => union.display(self.db).fmt(f),
|
||||||
Type::Intersection(intersection) => intersection.display(self.db).fmt(f),
|
Type::Intersection(intersection) => intersection.display(self.db).fmt(f),
|
||||||
|
|
|
@ -164,7 +164,7 @@ fn lint_bad_override(context: &SemanticLintContext, class: &ast::StmtClassDef) {
|
||||||
if ty.has_decorator(db, override_ty) {
|
if ty.has_decorator(db, override_ty) {
|
||||||
let method_name = ty.name(db);
|
let method_name = ty.name(db);
|
||||||
if class_ty
|
if class_ty
|
||||||
.inherited_class_member(db, &method_name)
|
.inherited_class_member(db, method_name)
|
||||||
.is_unbound()
|
.is_unbound()
|
||||||
{
|
{
|
||||||
// TODO should have a qualname() method to support nested classes
|
// TODO should have a qualname() method to support nested classes
|
||||||
|
|
|
@ -297,7 +297,6 @@ impl Workspace {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[salsa::tracked]
|
|
||||||
impl Package {
|
impl Package {
|
||||||
pub fn root(self, db: &dyn Db) -> &SystemPath {
|
pub fn root(self, db: &dyn Db) -> &SystemPath {
|
||||||
self.root_buf(db)
|
self.root_buf(db)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue