#![warn(clippy::rc_buffer)]
#![allow(dead_code, unused_imports)]

use std::cell::RefCell;
use std::ffi::OsString;
use std::path::PathBuf;
use std::rc::Rc;

struct S {
    // triggers lint
    bad1: Rc<str>,
    //~^ rc_buffer
    bad2: Rc<std::path::Path>,
    //~^ rc_buffer
    bad3: Rc<[u8]>,
    //~^ rc_buffer
    bad4: Rc<std::ffi::OsStr>,
    //~^ rc_buffer
    // does not trigger lint
    good1: Rc<RefCell<String>>,
}

// triggers lint
fn func_bad1(_: Rc<str>) {}
//~^ rc_buffer
fn func_bad2(_: Rc<std::path::Path>) {}
//~^ rc_buffer
fn func_bad3(_: Rc<[u8]>) {}
//~^ rc_buffer
fn func_bad4(_: Rc<std::ffi::OsStr>) {}
//~^ rc_buffer
// does not trigger lint
fn func_good1(_: Rc<RefCell<String>>) {}

fn main() {}
