antoyo / relm

Idiomatic, GTK+-based, GUI library, inspired by Elm, written in Rust
MIT License
2.42k stars 79 forks source link

Mismatched gtk-rs version causes a long compiler error #226

Open antoyo opened 4 years ago

antoyo commented 4 years ago

It gives a long and not so useful compiler error now:

error[E0277]: the trait bound `gtk::auto::window::Window: glib::object::IsA<gtk::auto::widget::Widget>` is not satisfied
   --> src/main.rs:29:6
    |
29  | impl Widget for Win {
    |      ^^^^^^ the trait `glib::object::IsA<gtk::auto::widget::Widget>` is not implemented for `gtk::auto::window::Window`
    | 
   ::: /home/bouanto/.cargo/registry/src/github.com-1ecc6299db9ec823/relm-0.19.0/src/widget.rs:31:45
    |
31  |           Self::Root: Clone + IsA<Object> + IsA<gtk::Widget>,
    |                                             ---------------- required by this bound in `relm::widget::Widget`
    |
help: trait impl with same name found
   --> /home/bouanto/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.8.2/src/object.rs:748:9
    |
748 |         unsafe impl $crate::object::IsA<$super_name> for $name { }
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `glib` are being used?

error[E0277]: the trait bound `gtk::auto::window::Window: glib::object::IsA<glib::object::Object>` is not satisfied
   --> src/main.rs:29:6
    |
29  | impl Widget for Win {
    |      ^^^^^^ the trait `glib::object::IsA<glib::object::Object>` is not implemented for `gtk::auto::window::Window`
    | 
   ::: /home/bouanto/.cargo/registry/src/github.com-1ecc6299db9ec823/relm-0.19.0/src/widget.rs:31:31
    |
31  |           Self::Root: Clone + IsA<Object> + IsA<gtk::Widget>,
    |                               ----------- required by this bound in `relm::widget::Widget`
    |
help: trait impl with same name found
   --> /home/bouanto/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.8.2/src/object.rs:748:9
    |
748 |         unsafe impl $crate::object::IsA<$super_name> for $name { }
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `glib` are being used?

error[E0277]: the trait bound `glib::object::ObjectRef: std::convert::From<gtk::auto::window::Window>` is not satisfied
  --> src/main.rs:29:6
   |
29 | impl Widget for Win {
   |      ^^^^^^ the trait `std::convert::From<gtk::auto::window::Window>` is not implemented for `glib::object::ObjectRef`
   |
   = note: required because of the requirements on the impl of `std::convert::Into<glib::object::ObjectRef>` for `gtk::auto::window::Window`