This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +33
-0
lines changed
compiler/rustc_middle/src/ty Expand file tree Collapse file tree 3 files changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -414,6 +414,11 @@ impl<'tcx> TyCtxt<'tcx> {
414
414
continue ;
415
415
} ;
416
416
417
+ if self . def_kind ( item_id) != DefKind :: AssocFn {
418
+ self . dcx ( ) . span_delayed_bug ( self . def_span ( item_id) , "drop is not a function" ) ;
419
+ continue ;
420
+ }
421
+
417
422
if let Some ( old_item_id) = dtor_candidate {
418
423
self . dcx ( )
419
424
. struct_span_err ( self . def_span ( item_id) , "multiple drop impls found" )
Original file line number Diff line number Diff line change
1
+ //@ check-fail
2
+ struct Foo ;
3
+
4
+ impl Drop for Foo { //~ ERROR: not all trait items implemented
5
+ const SPLOK : u32 = 0 ; //~ ERROR: not a member of trait
6
+ }
7
+
8
+ const X : Foo = Foo ;
9
+
10
+ fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ error[E0438]: const `SPLOK` is not a member of trait `Drop`
2
+ --> $DIR/nonsense-drop-impl-issue-139278.rs:5:5
3
+ |
4
+ LL | const SPLOK: u32 = 0;
5
+ | ^^^^^^^^^^^^^^^^^^^^^ not a member of trait `Drop`
6
+
7
+ error[E0046]: not all trait items implemented, missing: `drop`
8
+ --> $DIR/nonsense-drop-impl-issue-139278.rs:4:1
9
+ |
10
+ LL | impl Drop for Foo {
11
+ | ^^^^^^^^^^^^^^^^^ missing `drop` in implementation
12
+ |
13
+ = help: implement the missing item: `fn drop(&mut self) { todo!() }`
14
+
15
+ error: aborting due to 2 previous errors
16
+
17
+ Some errors have detailed explanations: E0046, E0438.
18
+ For more information about an error, try `rustc --explain E0046`.
You can’t perform that action at this time.
0 commit comments