/src/test/compile-fail/auxiliary/svh-uta-base.rs

https://gitlab.com/alx741/rust · Rust · 32 lines · 12 code · 5 blank · 15 comment · 2 complexity · 446bc186d88a1cac1100e3cbe23d2652 MD5 · raw file

  1. // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
  2. // file at the top-level directory of this distribution and at
  3. // http://rust-lang.org/COPYRIGHT.
  4. //
  5. // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
  6. // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
  7. // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
  8. // option. This file may not be copied, modified, or distributed
  9. // except according to those terms.
  10. //! "compile-fail/svh-uta-trait.rs" is checking that we detect a
  11. //! change from `use foo::TraitB` to use `foo::TraitB` in the hash
  12. //! (SVH) computation (#14132), since that will affect method
  13. //! resolution.
  14. //!
  15. //! This is the upstream crate.
  16. #![crate_name = "uta"]
  17. mod traits {
  18. pub trait TraitA { fn val(&self) -> isize { 2 } }
  19. pub trait TraitB { fn val(&self) -> isize { 3 } }
  20. }
  21. impl traits::TraitA for () {}
  22. impl traits::TraitB for () {}
  23. pub fn foo<T>(_: isize) -> isize {
  24. use traits::TraitA;
  25. let v = ();
  26. v.val()
  27. }