Implemented IntoSendStr on SendStr to allow naming a

task with a `SendStr` directly
This commit is contained in:
Marvin Löbel 2013-10-05 21:23:24 +02:00
parent 49ac6baa72
commit 517298de48
3 changed files with 39 additions and 0 deletions

View File

@ -64,6 +64,11 @@ impl IntoSendStr for &'static str {
fn into_send_str(self) -> SendStr { SendStrStatic(self) }
}
impl IntoSendStr for SendStr {
#[inline]
fn into_send_str(self) -> SendStr { self }
}
/*
Section: String trait impls.
`SendStr` should behave like a normal string, so we don't derive.

View File

@ -974,6 +974,21 @@ fn test_static_named_task() {
}
}
#[test]
fn test_send_named_task() {
use rt::test::run_in_newsched_task;
do run_in_newsched_task {
let mut t = task();
t.name("ada lovelace".into_send_str());
do t.spawn {
do with_task_name |name| {
assert!(name.unwrap() == "ada lovelace");
}
}
}
}
#[test]
fn test_run_basic() {
let (po, ch) = stream::<()>();

View File

@ -0,0 +1,19 @@
// 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:task 'send name' failed at 'test'
fn main() {
let mut t = ::std::task::task();
t.name("send name".to_send_str());
do t.spawn {
fail2!("test");
}
}