about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2013-01-11 20:10:51 -0800
committerTim Chevalier <chevalier@alum.wellesley.edu>2013-01-11 20:10:51 -0800
commit847d30db661eb7e3e476b135fce86c92b862f035 (patch)
tree0d87114e00de4fd3221cd566b9689e07dd87daaa /src/libcore
parent5b9cbbbb85e3f4221818e9fda7fedcece166115e (diff)
parentea937dca8995311c6ee8d73e0c45dab3d4c1a4f4 (diff)
downloadrust-847d30db661eb7e3e476b135fce86c92b862f035.tar.gz
rust-847d30db661eb7e3e476b135fce86c92b862f035.zip
Merge pull request #4445 from apasel422/notop
Allow logical negation operator (!) to be overloaded
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/core.rc2
-rw-r--r--src/libcore/ops.rs6
-rw-r--r--src/libcore/prelude.rs2
3 files changed, 7 insertions, 3 deletions
diff --git a/src/libcore/core.rc b/src/libcore/core.rc
index f8658b8e46e..81b9077fb3e 100644
--- a/src/libcore/core.rc
+++ b/src/libcore/core.rc
@@ -172,7 +172,7 @@ pub mod util;
 
 pub use kinds::{Const, Copy, Owned, Durable};
 pub use ops::{Drop};
-pub use ops::{Add, Sub, Mul, Div, Modulo, Neg};
+pub use ops::{Add, Sub, Mul, Div, Modulo, Neg, Not};
 pub use ops::{BitAnd, BitOr, BitXor};
 pub use ops::{Shl, Shr, Index};
 
diff --git a/src/libcore/ops.rs b/src/libcore/ops.rs
index 22c363ba9c0..36293d6a1c0 100644
--- a/src/libcore/ops.rs
+++ b/src/libcore/ops.rs
@@ -48,6 +48,11 @@ pub trait Neg<Result> {
     pure fn neg(&self) -> Result;
 }
 
+#[lang="not"]
+pub trait Not<Result> {
+    pure fn not(&self) -> Result;
+}
+
 #[lang="bitand"]
 pub trait BitAnd<RHS,Result> {
     pure fn bitand(&self, rhs: &RHS) -> Result;
@@ -77,4 +82,3 @@ pub trait Shr<RHS,Result> {
 pub trait Index<Index,Result> {
     pure fn index(&self, index: Index) -> Result;
 }
-
diff --git a/src/libcore/prelude.rs b/src/libcore/prelude.rs
index f2f6659278d..de23feceea5 100644
--- a/src/libcore/prelude.rs
+++ b/src/libcore/prelude.rs
@@ -4,7 +4,7 @@
 
 pub use kinds::{Const, Copy, Owned, Durable};
 pub use ops::{Drop};
-pub use ops::{Add, Sub, Mul, Div, Modulo, Neg};
+pub use ops::{Add, Sub, Mul, Div, Modulo, Neg, Not};
 pub use ops::{BitAnd, BitOr, BitXor};
 pub use ops::{Shl, Shr, Index};
 pub use option::{Option, Some, None};