Auto merge of #18162 - ChayimFriedman2:gat-object-safe, r=Veykril
fix: Consider lifetime GATs object unsafe Fixes #18156.
This commit is contained in:
commit
5bc2e652a7
@ -349,7 +349,7 @@ fn object_safety_violation_for_assoc_item<F>(
|
||||
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(())
|
||||
|
@ -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])],
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user