diff --git a/src/test/run-pass/issue-23649-1.rs b/src/test/run-pass/issue-23649-1.rs new file mode 100644 index 0000000000000..a631898d8682a --- /dev/null +++ b/src/test/run-pass/issue-23649-1.rs @@ -0,0 +1,21 @@ +// Copyright 2015 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use std::mem; + +pub struct X([u8]); + +fn _f(x: &X) -> usize { match *x { X(ref x) => { x.len() } } } + +fn main() { + let b: &[u8] = &[11; 42]; + let v: &X = unsafe { mem::transmute(b) }; + assert_eq!(_f(v), 42); +} diff --git a/src/test/run-pass/issue-23649-2.rs b/src/test/run-pass/issue-23649-2.rs new file mode 100644 index 0000000000000..018c0690f8ba7 --- /dev/null +++ b/src/test/run-pass/issue-23649-2.rs @@ -0,0 +1,18 @@ +// Copyright 2015 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use std::collections::HashMap; +use std::path::{Path, PathBuf}; + +fn main() { + let m: HashMap = HashMap::new(); + let k = Path::new("foo"); + println!("{:?}", m.get(k)); +} diff --git a/src/test/run-pass/issue-23649-3.rs b/src/test/run-pass/issue-23649-3.rs new file mode 100644 index 0000000000000..4aa6c53ef9e23 --- /dev/null +++ b/src/test/run-pass/issue-23649-3.rs @@ -0,0 +1,14 @@ +// Copyright 2015 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[derive(PartialEq)] +struct Slice { slice: [u8] } + +fn main() {}