// run-rustfix
#![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>,
    bad2: Rc<std::path::Path>,
    bad3: Rc<[u8]>,
    bad4: Rc<std::ffi::OsStr>,
    // does not trigger lint
    good1: Rc<RefCell<String>>,
}

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

fn main() {}