Skip to content

Commit

Permalink
Add a test for unsafe_code lint.
Browse files Browse the repository at this point in the history
  • Loading branch information
crlf0710 committed Oct 14, 2021
1 parent 9475e60 commit c76c620
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/test/ui/lint/unsafe_code/auxiliary/forge_unsafe_block.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// force-host
// no-prefer-dynamic

#![crate_type = "proc-macro"]

extern crate proc_macro;

use proc_macro::{Delimiter, Group, Ident, Span, TokenStream, TokenTree};

#[proc_macro]
pub fn forge_unsafe_block(input: TokenStream) -> TokenStream {
let mut output = TokenStream::new();
output.extend(Some(TokenTree::from(Ident::new("unsafe", Span::call_site()))));
output.extend(Some(TokenTree::from(Group::new(Delimiter::Brace, input))));
output
}
16 changes: 16 additions & 0 deletions src/test/ui/lint/unsafe_code/forge_unsafe_block.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// check-pass
// aux-build:forge_unsafe_block.rs

#[macro_use]
extern crate forge_unsafe_block;

unsafe fn foo() {}

#[forbid(unsafe_code)]
fn main() {
// `forbid` doesn't work for non-user-provided unsafe blocks.
// see `UnsafeCode::check_expr`.
forge_unsafe_block! {
foo();
}
}

0 comments on commit c76c620

Please sign in to comment.