about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-09-14 06:15:52 -0700
committerbors <bors@rust-lang.org>2013-09-14 06:15:52 -0700
commit9792ec6da72ff2bac2c8624c8ad433ed708774e4 (patch)
tree99a6e56416890163f93beec8b10db63276d329f3 /src
parent55b43fa26e02d1f7cf96a8d1ab172fbfd34050bd (diff)
parent298f06f267383ecfa4e461f6cfbc12a4366d391d (diff)
downloadrust-9792ec6da72ff2bac2c8624c8ad433ed708774e4.tar.gz
rust-9792ec6da72ff2bac2c8624c8ad433ed708774e4.zip
auto merge of #9174 : thestinger/rust/bot, r=catamorphism
An expression such as `bottom == not_bottom` or `not_bottom == bottom`
already compiled, but this fixes the case where both sides are `bottom`.
Diffstat (limited to 'src')
-rw-r--r--src/librustc/middle/ty.rs2
-rw-r--r--src/test/run-fail/binop-fail-3.rs13
2 files changed, 14 insertions, 1 deletions
diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs
index e4b459bc34b..9abee133290 100644
--- a/src/librustc/middle/ty.rs
+++ b/src/librustc/middle/ty.rs
@@ -4326,7 +4326,7 @@ pub fn is_binopable(cx: ctxt, ty: t, op: ast::BinOp) -> bool {
     /*char*/    [f, f, f, f,     t,   t,  f,   f],
     /*int*/     [t, t, t, t,     t,   t,  t,   f],
     /*float*/   [t, t, t, f,     t,   t,  f,   f],
-    /*bot*/     [t, t, t, t,     f,   f,  t,   t],
+    /*bot*/     [t, t, t, t,     t,   t,  t,   t],
     /*raw ptr*/ [f, f, f, f,     t,   t,  f,   f]];
 
     return tbl[tycat(cx, ty)][opcat(op)];
diff --git a/src/test/run-fail/binop-fail-3.rs b/src/test/run-fail/binop-fail-3.rs
new file mode 100644
index 00000000000..150544f16af
--- /dev/null
+++ b/src/test/run-fail/binop-fail-3.rs
@@ -0,0 +1,13 @@
+// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// error-pattern:quux
+fn foo() -> ! { fail!("quux"); }
+fn main() { foo() == foo(); }