fn struct_lint_level_impl(
    sess: &Session,
    lint: &'static Lint,
    level: Level,
    src: LintLevelSource,
    span: Option<MultiSpan>,
    msg: impl Into<DiagnosticMessage>,
    decorate: Box<dyn for<'a, 'b> FnOnce(&'b mut DiagnosticBuilder<'a, ()>) -> &'b mut DiagnosticBuilder<'a, ()> + '_>
)