//@ run-rustfix
// check-only
#![allow(dead_code)]

#[derive(Debug)]
struct Demo {
    a: String
}

trait GetString {
    fn get_a(&self) -> &String;
}

trait UseString: std::fmt::Debug + GetString {
    fn use_string(&self) {
        println!("{:?}", self.get_a()); //~ ERROR no method named `get_a` found
    }
}

trait UseString2: GetString {
    fn use_string(&self) {
        println!("{:?}", self.get_a()); //~ ERROR no method named `get_a` found
    }
}

impl GetString for Demo {
    fn get_a(&self) -> &String {
        &self.a
    }
}

impl UseString for Demo {}
impl UseString2 for Demo {}


#[cfg(test)]
mod tests {
    use crate::{Demo, UseString};

    #[test]
    fn it_works() {
        let d = Demo { a: "test".to_string() };
        d.use_string();
    }
}


fn main() {}
