File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -348,10 +348,15 @@ pub(crate) fn generate_methods(
348
348
349
349
let rusty_name = format_ident ! ( "{}" , rusty_method_name) ;
350
350
351
- let maybe_unsafe = if UNSAFE_OBJECT_METHODS . contains ( & ( & class. name , method_name) ) {
352
- quote ! { unsafe }
351
+ let maybe_unsafe: TokenStream ;
352
+ let maybe_unsafe_reason: & str ;
353
+ if UNSAFE_OBJECT_METHODS . contains ( & ( & class. name , method_name) ) {
354
+ maybe_unsafe = quote ! { unsafe } ;
355
+ maybe_unsafe_reason = "\n # Safety\n This function bypasses Rust's static type checks \
356
+ (aliasing, thread boundaries, calls to free(), ...).";
353
357
} else {
354
- Default :: default ( )
358
+ maybe_unsafe = TokenStream :: default ( ) ;
359
+ maybe_unsafe_reason = "" ;
355
360
} ;
356
361
357
362
let method_bind_fetch = {
@@ -370,8 +375,8 @@ pub(crate) fn generate_methods(
370
375
let recover = ret_recover ( & ret_type, icall_ty) ;
371
376
372
377
let output = quote ! {
373
-
374
378
#[ doc = #doc_comment]
379
+ #[ doc = #maybe_unsafe_reason]
375
380
#[ inline]
376
381
pub #maybe_unsafe fn #rusty_name( & self #params_decl) -> #rust_ret_type {
377
382
unsafe {
You can’t perform that action at this time.
0 commit comments