diff options
| author | bors <bors@rust-lang.org> | 2024-09-24 08:14:00 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-09-24 08:14:00 +0000 |
| commit | 5bc2e652a75faf5e94420b72860ed8fcdd523fb6 (patch) | |
| tree | 439cc33100facbadceff80ffee8a4f31b737af04 | |
| parent | f75aebe7e7ccd56b4ac7932a872428c979360e1c (diff) | |
| parent | 393f9cc0ba2bc40700722830e14a0e659a42f96a (diff) | |
| download | rust-5bc2e652a75faf5e94420b72860ed8fcdd523fb6.tar.gz rust-5bc2e652a75faf5e94420b72860ed8fcdd523fb6.zip | |
Auto merge of #18162 - ChayimFriedman2:gat-object-safe, r=Veykril
fix: Consider lifetime GATs object unsafe Fixes #18156.
| -rw-r--r-- | src/tools/rust-analyzer/crates/hir-ty/src/object_safety.rs | 2 | ||||
| -rw-r--r-- | src/tools/rust-analyzer/crates/hir-ty/src/object_safety/tests.rs | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-ty/src/object_safety.rs b/src/tools/rust-analyzer/crates/hir-ty/src/object_safety.rs index 89bf3619a0c..a4c66268555 100644 --- a/src/tools/rust-analyzer/crates/hir-ty/src/object_safety.rs +++ b/src/tools/rust-analyzer/crates/hir-ty/src/object_safety.rs @@ -349,7 +349,7 @@ where ControlFlow::Continue(()) } else { let generic_params = db.generic_params(item.into()); - if generic_params.len_type_or_consts() > 0 { + if !generic_params.is_empty() { cb(ObjectSafetyViolation::GAT(it)) } else { ControlFlow::Continue(()) diff --git a/src/tools/rust-analyzer/crates/hir-ty/src/object_safety/tests.rs b/src/tools/rust-analyzer/crates/hir-ty/src/object_safety/tests.rs index 3dc08c4619e..c2a9117c5be 100644 --- a/src/tools/rust-analyzer/crates/hir-ty/src/object_safety/tests.rs +++ b/src/tools/rust-analyzer/crates/hir-ty/src/object_safety/tests.rs @@ -378,3 +378,16 @@ pub trait Error: core::fmt::Debug + core::fmt::Display { [("Error", vec![])], ); } + +#[test] +fn lifetime_gat_is_object_unsafe() { + check_object_safety( + r#" +//- minicore: dispatch_from_dyn +trait Foo { + type Bar<'a>; +} +"#, + [("Foo", vec![ObjectSafetyViolationKind::GAT])], + ); +} |
