about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-07-06 11:41:37 +0000
committerbors <bors@rust-lang.org>2014-07-06 11:41:37 +0000
commit4c0cab7f2f308e9fb71899ac8d6ac5fedef6bc9e (patch)
treef3383126d3ad3cda890a6063814bd2bf9d0badb7 /src
parentb7c4493b9f713c581b7e80f79ed61f6ff2df615b (diff)
parent1aa23b8e1cd8611d02aceb86b69ec3559b8d4c2c (diff)
downloadrust-4c0cab7f2f308e9fb71899ac8d6ac5fedef6bc9e.tar.gz
rust-4c0cab7f2f308e9fb71899ac8d6ac5fedef6bc9e.zip
auto merge of #15454 : jakub-/rust/15453, r=huonw
I forget we now have byte string literals.
Diffstat (limited to 'src')
-rw-r--r--src/librustc/middle/check_match.rs1
-rw-r--r--src/test/run-pass/byte-literals.rs7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs
index 8b5c7061a14..abc4212dbb2 100644
--- a/src/librustc/middle/check_match.rs
+++ b/src/librustc/middle/check_match.rs
@@ -563,6 +563,7 @@ pub fn constructor_arity(cx: &MatchCheckCtxt, ctor: &Constructor, ty: ty::t) ->
         ty::ty_rptr(_, ty::mt { ty: ty, .. }) => match ty::get(ty).sty {
             ty::ty_vec(_, None) => match *ctor {
                 Slice(length) => length,
+                ConstantValue(_) => 0u,
                 _ => unreachable!()
             },
             ty::ty_str => 0u,
diff --git a/src/test/run-pass/byte-literals.rs b/src/test/run-pass/byte-literals.rs
index 1e28c44206f..ac470268d31 100644
--- a/src/test/run-pass/byte-literals.rs
+++ b/src/test/run-pass/byte-literals.rs
@@ -46,6 +46,13 @@ pub fn main() {
         _ => fail!(),
     }
 
+    let buf = vec!(97u8, 98, 99, 100);
+    assert_eq!(match buf.slice(0, 3) {
+         b"def" => 1u,
+         b"abc" => 2u,
+         _ => 3u
+    }, 2);
+
     assert_eq!(BAZ, &[97u8, 92u8, 110u8]);
     assert_eq!(br"a\n", &[97u8, 92u8, 110u8]);
     assert_eq!(br"a\n", b"a\\n");