mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 17:24:06 +00:00
parent
88c743def3
commit
d429039e7b
@ -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 {
|
||||
|
26
src/test/run-pass/issue-19037.rs
Normal file
26
src/test/run-pass/issue-19037.rs
Normal file
@ -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() {}
|
Loading…
Reference in New Issue
Block a user