Skip to content

Misleading error with Drop and lifetime parameters #17858

@bnoordhuis

Description

@bnoordhuis
struct S<'a>(&'a T); struct T; impl<'a> Drop for S<'a> { fn drop(&mut self) {} } fn main() { let _ = S(&T); }
$ rustc -v rustc 0.12.0-nightly (b5ba2f551 2014-10-06 20:27:14 +0000) $ rustc dtor.rs dtor.rs:5:1: 7:2 error: cannot implement a destructor on a structure with type parameters [E0141] dtor.rs:5 impl<'a> Drop for S<'a> { dtor.rs:6 fn drop(&mut self) {} dtor.rs:7 } dtor.rs:5:1: 7:2 note: use "#[unsafe_destructor]" on the implementation to force the compiler to allow this dtor.rs:5 impl<'a> Drop for S<'a> { dtor.rs:6 fn drop(&mut self) {} dtor.rs:7 } error: aborting due to previous error 

It's not clear to me why this program gets rejected.

Metadata

Metadata

Assignees

Labels

A-diagnosticsArea: Messages for errors, warnings, and lints

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions