about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2014-07-02 13:27:14 -0700
committerAlex Crichton <alex@alexcrichton.com>2014-07-03 12:54:51 -0700
commit8297edd54976d06f4753bc18684614516d156243 (patch)
tree5ff34ecfe75c64afb258f4df78e1b5d64abd5b12 /src/rustllvm/ExecutionEngineWrapper.cpp
parent704f11d3d8a066eb5e8bb869af07fa33de530cc8 (diff)
downloadrust-8297edd54976d06f4753bc18684614516d156243.tar.gz
rust-8297edd54976d06f4753bc18684614516d156243.zip
librustc: Have the kind checker check sub-bounds in trait casts.
This can break code that looked like:

    struct S<T> {
        val: T,
    }
    trait Gettable<T> {
        ...
    }
    impl<T: Copy> Gettable<T> for S<T> {
        ...
    }
    let t: Box<S<String>> = box S {
        val: "one".to_string(),
    };
    let a = t as Box<Gettable<String>>;
    //                        ^ note no `Copy` bound

Change this code to:

    impl<T> Gettable<T> for S<T> {
    //   ^ remove `Copy` bound
        ...
    }

Closes #14061.

[breaking-change]
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions