]> git.lizzy.rs Git - rust.git/commit
Enforce object safety
authorNick Cameron <ncameron@mozilla.com>
Wed, 1 Oct 2014 03:43:39 +0000 (16:43 +1300)
committerNick Cameron <ncameron@mozilla.com>
Thu, 30 Oct 2014 02:51:21 +0000 (15:51 +1300)
commit8d8d8d4e5292c2fa4a622d981a5f85fd3d8f34d0
tree3b1f9fe8b1999b641dd7c1f023c52310768c3209
parent15dd90b6475c7a44c9b95044c91519d9464bbcc4
Enforce object safety

closes #17670

[breaking-change]

Traits must be object-safe if they are to be used in trait objects. This might require splitting a trait into object-safe and non-object-safe parts.

Some standard library traits in std::io have been split - Reader has new traits BytesReader (for the bytes method) and AsRefReader (for by_ref), Writer has new trait AsRefWriter (for by_ref). All these new traits have blanket impls, so any type which implements Reader or Writer (respectively) will have an implmentation of the new traits. To fix your code, you just need to `use` the new trait.
src/librustc/middle/typeck/check/method.rs
src/librustc/middle/typeck/check/mod.rs
src/librustc/middle/typeck/check/vtable.rs