]> git.lizzy.rs Git - rust.git/commitdiff
core: Remove use of deprecated `drop`
authorErick Tryzelaar <erick.tryzelaar@gmail.com>
Wed, 1 May 2013 01:03:09 +0000 (18:03 -0700)
committerErick Tryzelaar <erick.tryzelaar@gmail.com>
Wed, 1 May 2013 14:49:40 +0000 (07:49 -0700)
src/libcore/core.rc
src/libcore/pipes.rs

index f9a56f613d54276c7acb56b484abd6cf50e28a1d..7ccf5cb6a9125e65018e59aa2212a0fa29163e3c 100644 (file)
@@ -63,7 +63,6 @@ they contained the following prologue:
 #[warn(vecs_implicitly_copyable)];
 #[deny(non_camel_case_types)];
 #[allow(deprecated_mutable_fields)];
-#[allow(deprecated_drop)];
 
 // Make core testable by not duplicating lang items. See #2912
 #[cfg(test)] extern mod realcore(name = "core", vers = "0.7-pre");
index 95b24d20a4bc20a113795627962fd9005cea8a59..82dc598c750eb6c3beb19f7d7b346f49fdc70b7b 100644 (file)
@@ -86,6 +86,7 @@
 use either::{Either, Left, Right};
 use kinds::Owned;
 use libc;
+use ops::Drop;
 use option::{None, Option, Some};
 use unstable::intrinsics;
 use ptr;
@@ -395,11 +396,13 @@ pub fn try_recv<T:Owned,Tbuffer:Owned>(p: RecvPacketBuffered<T, Tbuffer>)
     let p_ = p.unwrap();
     let p = unsafe { &*p_ };
 
-    #[unsafe_destructor]
     struct DropState<'self> {
         p: &'self PacketHeader,
+    }
 
-        drop {
+    #[unsafe_destructor]
+    impl<'self> Drop for DropState<'self> {
+        fn finalize(&self) {
             unsafe {
                 if task::failing() {
                     self.p.state = Terminated;
@@ -411,7 +414,7 @@ struct DropState<'self> {
                 }
             }
         }
-    };
+    }
 
     let _drop_state = DropState { p: &p.header };