You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: box_default.rs
    path of file: ./repos/rust-clippy/tests/ui
    
    the code of the file until where you have to start completion: #![warn(clippy::box_default)]
#![allow(clippy::default_constructed_unit_structs)]

#[derive(Default)]
struct ImplementsDefault;

struct OwnDefault;

impl OwnDefault {
    fn default() -> Self {
        Self
    }
}

macro_rules! outer {
    ($e: expr) => {
        $e
    };
}

fn main() {
    let _string: Box<String> = Box::new(Default::default());
    let _byte = Box::new(u8::default());
    let _vec = Box::new(Vec::<u8>::new());
    let _impl = Box::new(ImplementsDefault::default());
    let _impl2 = Box::new(<ImplementsDefault as Default>::default());
    let _impl3: Box<ImplementsDefault> = Box::new(Default::default());
    let _own = Box::new(
    
fn main() {
    let _string: Box<String> = Box::new(Default::default());
    let _byte = Box::new(u8::default());
    let _vec = Box::new(Vec::<u8>::new());
    let _impl = Box::new(ImplementsDefault::default());
    let _impl2 = Box::new(<ImplementsDefault as Default>::default());
    let _impl3: Box<ImplementsDefault> = Box::new(Default::default());
    let _own = Box::new(OwnDefault::default()); // should not lint
    let _in_macro = outer!(Box::new(String::new()));
    let _string_default = outer!(Box::new(String::from("")));
    let _vec2: Box<Vec<ImplementsDefault>> = Box::new(vec![]);
    let _vec3: Box<Vec<bool>> = Box::new(Vec::from([]));
    let _vec4: Box<_> = Box::new(Vec::from([false; 0]));
    let _more = ret_ty_fn();
    call_ty_fn(Box::new(u8::default()));
    issue_10381();

    // `Box::<Option<_>>::default()` would be valid here, but not `Box::default()` or
    // `Box::<Option<{closure@...}>::default()`
    //
    // Would have a suggestion after https://github.com/rust-lang/rust/blob/fdd030127cc68afec44a8d3f6341525dd34e50ae/compiler/rustc_middle/src/ty/diagnostics.rs#L554-L563
    let mut unnameable = Box::new(Option::default());
    let _ = unnameable.insert(|| {});
}