diff options
| author | Jakub Bukaj <jakub@jakub.cc> | 2014-11-18 00:24:08 +0100 |
|---|---|---|
| committer | Jakub Bukaj <jakub@jakub.cc> | 2014-11-18 00:24:08 +0100 |
| commit | 2f8da7bbd0cd6cab726a6658d5d7293f428b9dd3 (patch) | |
| tree | 6a7c6bfbd55b259ea54510aa72dc32d5c0ab19a4 /src | |
| parent | da5c61d469f1ace01728d465c940577ce886b28a (diff) | |
| parent | d429039e7baae7c3c0f18ef012c861f60c769157 (diff) | |
| download | rust-2f8da7bbd0cd6cab726a6658d5d7293f428b9dd3.tar.gz rust-2f8da7bbd0cd6cab726a6658d5d7293f428b9dd3.zip | |
rollup merge of #19041: japaric/clone
Closes #19037 cc #16918 r? @aturon
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcore/clone.rs | 16 | ||||
| -rw-r--r-- | src/test/run-pass/issue-19037.rs | 26 |
2 files changed, 29 insertions, 13 deletions
diff --git a/src/libcore/clone.rs b/src/libcore/clone.rs index a495c780e02..d13daf0964a 100644 --- a/src/libcore/clone.rs +++ b/src/libcore/clone.rs @@ -23,6 +23,8 @@ the `clone` method. #![unstable] +use kinds::Sized; + /// A common trait for cloning an object. pub trait Clone { /// Returns a copy of the value. @@ -40,24 +42,12 @@ pub trait Clone { } } -impl<'a, T> Clone for &'a T { +impl<'a, Sized? T> Clone for &'a T { /// Return a shallow copy of the reference. #[inline] fn clone(&self) -> &'a T { *self } } -impl<'a, T> Clone for &'a [T] { - /// Return a shallow copy of the slice. - #[inline] - fn clone(&self) -> &'a [T] { *self } -} - -impl<'a> Clone for &'a str { - /// Return a shallow copy of the slice. - #[inline] - fn clone(&self) -> &'a str { *self } -} - macro_rules! clone_impl( ($t:ty) => { impl Clone for $t { diff --git a/src/test/run-pass/issue-19037.rs b/src/test/run-pass/issue-19037.rs new file mode 100644 index 00000000000..a6b5f4b8744 --- /dev/null +++ b/src/test/run-pass/issue-19037.rs @@ -0,0 +1,26 @@ +// Copyright 2014 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. + +struct Str([u8]); + +#[deriving(Clone)] +struct CharSplits<'a, Sep> { + string: &'a Str, + sep: Sep, + allow_trailing_empty: bool, + only_ascii: bool, + finished: bool, +} + +fn clone(s: &Str) -> &Str { + Clone::clone(&s) +} + +fn main() {} |
