You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following doesn't compile, but I believe it should:
use std::borrow::{ToOwned,Cow};fnmain(){assert_send(Cow::Borrowed("foo"));}fnassert_send<T:Send>(_:T){}
Error:
cow.rs:4:3: 4:14 error: the trait `core::marker::Send` is not implemented for the type `<str as collections::borrow::ToOwned>::Owned` [E0277]
cow.rs:4 assert_send(Cow::Borrowed("foo"));
^~~~~~~~~~~
cow.rs:4:3: 4:14 note: `<str as collections::borrow::ToOwned>::Owned` cannot be sent between threads safely
cow.rs:4 assert_send(Cow::Borrowed("foo"));
^~~~~~~~~~~
error: aborting due to previous error
Even though <str as ToOwned>::Owned == String, and String: Send. In fact, this compiles:
Cow<'static, str> should be Send, because the old definition that didn't use assoc types was Send. Probably the code that detects builtin bounds wasn't updated to handle associated types. cc @nikomatsakis@flaper87
The following doesn't compile, but I believe it should:
Error:
Even though
<str as ToOwned>::Owned == String
, andString: Send
. In fact, this compiles:rustc 1.0.0-nightly (522d09dfe 2015-02-19) (built 2015-02-20)
The text was updated successfully, but these errors were encountered: