Skip to content

Commit 86f60bb

Browse files
committed
Added fnptr and closure creation tests in macro test
1 parent 34df9bf commit 86f60bb

6 files changed

Lines changed: 86 additions & 47 deletions

File tree

data/results/test_metadata.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fns-closures, 8, 9, 9, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 6, 6, 20, 136
99
fnv_minimal, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 135
1010
inline-ex, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 13
1111
libc-ex, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 1, 12, 15
12-
macro_test, 0, 16, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 162
12+
macro_test, 0, 18, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 196
1313
num_cpus_minimal, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 24, 37
1414
parsing-ex, 0, 7, 13, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 146
1515
permissions-ex, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 10, 3, 10, 17

data/results/top10_all.csv

Lines changed: 45 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,9 @@ syn, syn::item::parsing::parse_impl_item_fn, syn::attr::parse_inner, [FnPtrCreat
214214
syn, syn::item::parsing::parse_impl_item_fn, syn::stmt::parsing::parse_within, [FnPtrCreation], data/packages/syn/src, item.rs, 2833, 32
215215
syn, syn::item::parsing::parse, syn::attr::parse_outer, [FnPtrCreation], data/packages/syn/src, item.rs, 2848, 35
216216
syn, syn::item::parsing::parse, syn::attr::parse_outer, [FnPtrCreation], data/packages/syn/src, item.rs, 2910, 35
217-
syn, syn::parse, syn::parse::parse, [FnPtrCreation], data/packages/syn/src, lib.rs, 904, 25
218-
syn, syn::parse2, syn::parse::parse, [FnPtrCreation], data/packages/syn/src, lib.rs, 922, 26
219-
syn, syn::parse_str, syn::parse::parse, [FnPtrCreation], data/packages/syn/src, lib.rs, 952, 29
217+
syn, syn::parse, syn::parse::parse, [FnPtrCreation], data/packages/syn/src, lib.rs, 905, 25
218+
syn, syn::parse2, syn::parse::parse, [FnPtrCreation], data/packages/syn/src, lib.rs, 923, 26
219+
syn, syn::parse_str, syn::parse::parse, [FnPtrCreation], data/packages/syn/src, lib.rs, 953, 29
220220
syn, syn::lit::parse, syn::parse::parse, [FnPtrCreation], data/packages/syn/src, lit.rs, 184, 24
221221
syn, syn::lookahead::peek, syn::token::peek, [FnPtrCreation], data/packages/syn/src, lookahead.rs, 105, 24
222222
syn, syn::mac::parse_body, syn::parse::parse, [FnPtrCreation], data/packages/syn/src, mac.rs, 139, 29
@@ -393,7 +393,7 @@ syn, syn::expr::Token, syn::token::Dot, [FnPtrCreation], data/packages/syn/src,
393393
syn, syn::expr::Token, syn::token::DotDot, [FnPtrCreation], data/packages/syn/src, expr.rs, 3088, 59
394394
syn, syn::expr::Token, syn::token::PathSep, [FnPtrCreation], data/packages/syn/src, expr.rs, 3091, 86
395395
syn, syn::expr::Token, syn::token::Question, [FnPtrCreation], data/packages/syn/src, expr.rs, 3096, 29
396-
syn, syn::expr::Token, syn::token::DotDot, [FnPtrCreation], data/packages/syn/src, expr.rs, 3899, 20
396+
syn, syn::expr::Token, syn::token::DotDot, [FnPtrCreation], data/packages/syn/src, expr.rs, 3942, 20
397397
syn, syn::generics::Token, syn::token::Lt, [FnPtrCreation], data/packages/syn/src, generics.rs, 538, 27
398398
syn, syn::generics::Token, syn::token::Gt, [FnPtrCreation], data/packages/syn/src, generics.rs, 546, 30
399399
syn, syn::generics::Token, syn::token::Gt, [FnPtrCreation], data/packages/syn/src, generics.rs, 580, 30
@@ -7004,38 +7004,43 @@ serde, serde::de::impls::atomic_impl, core::sync::atomic::new, [FnPtrCreation],
70047004
serde, serde::de::impls::atomic_impl, core::sync::atomic::new, [FnPtrCreation], data/packages/serde/src/de, impls.rs, 3143, 0
70057005
serde, serde::de::impls::atomic_impl, core::sync::atomic::new, [FnPtrCreation], data/packages/serde/src/de, impls.rs, 3143, 0
70067006
autocfg, autocfg::error::fmt, std::io::error::fmt, std::io, data/packages/autocfg/src, error.rs, 32, 38
7007-
autocfg, autocfg::new, std::env::var_os, std::env, data/packages/autocfg/src, lib.rs, 172, 14
7008-
autocfg, autocfg::with_dir, std::env::var_os, std::env, data/packages/autocfg/src, lib.rs, 190, 21
7009-
autocfg, autocfg::with_dir, std::fs::is_dir, std::fs, data/packages/autocfg/src, lib.rs, 195, 17
7010-
autocfg, autocfg::with_dir, std::fs::permissions, std::fs, data/packages/autocfg/src, lib.rs, 195, 34
7011-
autocfg, autocfg::with_dir, std::fs::readonly, std::fs, data/packages/autocfg/src, lib.rs, 195, 48
7012-
autocfg, autocfg::with_dir, std::io::stdio::stderr, std::io, data/packages/autocfg/src, lib.rs, 216, 16
7013-
autocfg, autocfg::with_dir, std::io::stdio::write_all, std::io, data/packages/autocfg/src, lib.rs, 216, 25
7014-
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 277, 13
7015-
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 278, 13
7016-
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 279, 13
7017-
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 280, 13
7018-
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 281, 13
7019-
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 282, 13
7020-
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 285, 20
7021-
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 285, 36
7022-
autocfg, autocfg::probe_fmt, std::process::args, std::process, data/packages/autocfg/src, lib.rs, 288, 16
7023-
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 290, 16
7024-
autocfg, autocfg::probe_fmt, std::process::piped, std::process, data/packages/autocfg/src, lib.rs, 290, 31
7025-
autocfg, autocfg::probe_fmt, std::process::stdin, std::process, data/packages/autocfg/src, lib.rs, 290, 25
7026-
autocfg, autocfg::probe_fmt, std::process::wait, std::process, data/packages/autocfg/src, lib.rs, 297, 20
7027-
autocfg, autocfg::probe_fmt, std::process::success, std::process, data/packages/autocfg/src, lib.rs, 298, 33
7028-
autocfg, autocfg::dir_contains_target, std::path::to_str, std::path, data/packages/autocfg/src, lib.rs, 519, 16
7029-
autocfg, autocfg::dir_contains_target, std::path::from, std::path, data/packages/autocfg/src, lib.rs, 522, 39
7030-
autocfg, autocfg::dir_contains_target, CLOSURE::data::packages::autocfg::src::lib::522::36, [ClosureCreation], data/packages/autocfg/src, lib.rs, 522, 36
7031-
autocfg, autocfg::dir_contains_target, std::path::push, std::path, data/packages/autocfg/src, lib.rs, 523, 33
7032-
autocfg, autocfg::dir_contains_target, std::path::to_str, std::path, data/packages/autocfg/src, lib.rs, 526, 21
7033-
autocfg, autocfg::dir_contains_target, CLOSURE::data::packages::autocfg::src::lib::519::34, [ClosureCreation], data/packages/autocfg/src, lib.rs, 519, 34
7034-
autocfg, autocfg::dir_contains_target, CLOSURE::data::packages::autocfg::src::lib::518::18, [ClosureCreation], data/packages/autocfg/src, lib.rs, 518, 18
7035-
autocfg, autocfg::rustflags, std::env::var, std::env, data/packages/autocfg/src, lib.rs, 539, 19
7036-
autocfg, autocfg::rustflags, std::env::var_os, std::env, data/packages/autocfg/src, lib.rs, 556, 18
7037-
autocfg, autocfg::rustflags, std::env::var_os, std::env, data/packages/autocfg/src, lib.rs, 557, 44
7038-
autocfg, autocfg::rustflags, std::env::var, std::env, data/packages/autocfg/src, lib.rs, 559, 31
7007+
autocfg, autocfg::new, std::env::var_os, std::env, data/packages/autocfg/src, lib.rs, 173, 14
7008+
autocfg, autocfg::with_dir, std::env::var_os, std::env, data/packages/autocfg/src, lib.rs, 191, 21
7009+
autocfg, autocfg::with_dir, std::fs::is_dir, std::fs, data/packages/autocfg/src, lib.rs, 196, 17
7010+
autocfg, autocfg::with_dir, std::fs::permissions, std::fs, data/packages/autocfg/src, lib.rs, 196, 34
7011+
autocfg, autocfg::with_dir, std::fs::readonly, std::fs, data/packages/autocfg/src, lib.rs, 196, 48
7012+
autocfg, autocfg::with_dir, std::io::stdio::stderr, std::io, data/packages/autocfg/src, lib.rs, 218, 16
7013+
autocfg, autocfg::with_dir, std::io::stdio::write_all, std::io, data/packages/autocfg/src, lib.rs, 218, 25
7014+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 310, 13
7015+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 311, 13
7016+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 312, 13
7017+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 313, 13
7018+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 314, 13
7019+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 315, 13
7020+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 318, 20
7021+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 318, 37
7022+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 322, 20
7023+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 322, 36
7024+
autocfg, autocfg::probe_fmt, std::process::args, std::process, data/packages/autocfg/src, lib.rs, 325, 16
7025+
autocfg, autocfg::probe_fmt, std::process::arg, std::process, data/packages/autocfg/src, lib.rs, 327, 16
7026+
autocfg, autocfg::probe_fmt, std::process::piped, std::process, data/packages/autocfg/src, lib.rs, 327, 31
7027+
autocfg, autocfg::probe_fmt, std::process::stdin, std::process, data/packages/autocfg/src, lib.rs, 327, 25
7028+
autocfg, autocfg::probe_fmt, std::process::wait, std::process, data/packages/autocfg/src, lib.rs, 334, 20
7029+
autocfg, autocfg::probe_fmt, std::process::success, std::process, data/packages/autocfg/src, lib.rs, 335, 33
7030+
autocfg, autocfg::probe_fmt, std::path::join, std::path, data/packages/autocfg/src, lib.rs, 339, 44
7031+
autocfg, autocfg::probe_fmt, std::path::set_extension, std::path, data/packages/autocfg/src, lib.rs, 340, 21
7032+
autocfg, autocfg::probe_fmt, std::fs::remove_file, std::fs, data/packages/autocfg/src, lib.rs, 341, 24
7033+
autocfg, autocfg::dir_contains_target, std::path::to_str, std::path, data/packages/autocfg/src, lib.rs, 565, 16
7034+
autocfg, autocfg::dir_contains_target, std::path::from, std::path, data/packages/autocfg/src, lib.rs, 568, 39
7035+
autocfg, autocfg::dir_contains_target, CLOSURE::data::packages::autocfg::src::lib::568::36, [ClosureCreation], data/packages/autocfg/src, lib.rs, 568, 36
7036+
autocfg, autocfg::dir_contains_target, std::path::push, std::path, data/packages/autocfg/src, lib.rs, 569, 33
7037+
autocfg, autocfg::dir_contains_target, std::path::to_str, std::path, data/packages/autocfg/src, lib.rs, 572, 21
7038+
autocfg, autocfg::dir_contains_target, CLOSURE::data::packages::autocfg::src::lib::565::34, [ClosureCreation], data/packages/autocfg/src, lib.rs, 565, 34
7039+
autocfg, autocfg::dir_contains_target, CLOSURE::data::packages::autocfg::src::lib::564::18, [ClosureCreation], data/packages/autocfg/src, lib.rs, 564, 18
7040+
autocfg, autocfg::rustflags, std::env::var, std::env, data/packages/autocfg/src, lib.rs, 585, 19
7041+
autocfg, autocfg::rustflags, std::env::var_os, std::env, data/packages/autocfg/src, lib.rs, 602, 18
7042+
autocfg, autocfg::rustflags, std::env::var_os, std::env, data/packages/autocfg/src, lib.rs, 603, 44
7043+
autocfg, autocfg::rustflags, std::env::var, std::env, data/packages/autocfg/src, lib.rs, 605, 31
70397044
autocfg, autocfg::rustc::new, std::env::var_os, std::env, data/packages/autocfg/src, rustc.rs, 19, 19
70407045
autocfg, autocfg::rustc::command, std::process::new, std::process, data/packages/autocfg/src, rustc.rs, 34, 26
70417046
autocfg, autocfg::rustc::command, std::process::arg, std::process, data/packages/autocfg/src, rustc.rs, 36, 20
@@ -7044,10 +7049,10 @@ autocfg, autocfg::rustc::get_rustc_wrapper, std::env::var_os, std::env, data/pac
70447049
autocfg, autocfg::rustc::get_rustc_wrapper, std::env::var_os, std::env, data/packages/autocfg/src, rustc.rs, 81, 27
70457050
autocfg, autocfg::rustc::get_rustc_wrapper, std::ffi::os_str::new, std::ffi, data/packages/autocfg/src, rustc.rs, 83, 22
70467051
autocfg, autocfg::version::from_command, std::process::success, std::process, data/packages/autocfg/src, version.rs, 30, 26
7047-
autocfg, autocfg::dir_contains_target, std::path::from, [FnPtrCreation], data/packages/autocfg/src, lib.rs, 521, 25
7048-
autocfg, autocfg::rustflags, alloc::string::to_string, [FnPtrCreation], data/packages/autocfg/src, lib.rs, 543, 32
7049-
autocfg, autocfg::rustflags, core::str::trim, [FnPtrCreation], data/packages/autocfg/src, lib.rs, 564, 21
7050-
autocfg, autocfg::rustflags, alloc::string::to_string, [FnPtrCreation], data/packages/autocfg/src, lib.rs, 566, 21
7052+
autocfg, autocfg::dir_contains_target, std::path::from, [FnPtrCreation], data/packages/autocfg/src, lib.rs, 567, 25
7053+
autocfg, autocfg::rustflags, alloc::string::to_string, [FnPtrCreation], data/packages/autocfg/src, lib.rs, 589, 32
7054+
autocfg, autocfg::rustflags, core::str::trim, [FnPtrCreation], data/packages/autocfg/src, lib.rs, 610, 21
7055+
autocfg, autocfg::rustflags, alloc::string::to_string, [FnPtrCreation], data/packages/autocfg/src, lib.rs, 612, 21
70517056
autocfg, autocfg::rustc::try_version, std::process::new, std::process, data/packages/autocfg/src, rustc.rs, 56, 16
70527057
autocfg, autocfg::rustc::try_version, std::process::args, std::process, data/packages/autocfg/src, rustc.rs, 56, 16
70537058
autocfg, autocfg::rustc::try_version, std::process::new, std::process, data/packages/autocfg/src, rustc.rs, 58, 12

data/results/top10_metadata.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
crate, effects, macros, macro LoC, conditional blocks, conditional LoC, skipped calls, skipped call LoC, skipped fn pointers, skipped pointers LoC, skipped other, skipped other LoC, unsafe traits, unsafe trait LoC, unsafe impls, unsafe impl LoC, public fns, public fns with effects, public total effects, audited fns, audited LoC, total LoC
22
rand, 28, 178, 1175, 44, 3183, 0, 0, 0, 0, 105, 105, 0, 0, 0, 0, 65, 35, 475, 62, 1005, 13342
3-
syn, 565, 2338, 7041, 56, 413, 0, 0, 0, 0, 48, 103, 0, 0, 3, 3, 787, 550, 13786, 814, 10714, 64157
3+
syn, 565, 2338, 7041, 56, 413, 0, 0, 0, 0, 48, 103, 0, 0, 3, 3, 787, 550, 13786, 814, 10759, 64203
44
rand_core, 2, 17, 17, 3, 309, 0, 0, 0, 0, 11, 62, 0, 0, 0, 0, 22, 0, 0, 1, 5, 1658
55
libc, 6361, 750, 43614, 4, 126, 0, 0, 0, 0, 16, 16, 0, 0, 2, 2, 6393, 6294, 6328, 6301, 12489, 124852
6-
cfg-if, 0, 8, 107, 1, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241
6+
cfg-if, 0, 8, 120, 1, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256
77
quote, 1, 75, 2448, 0, 0, 0, 0, 0, 0, 15, 15, 0, 0, 0, 0, 108, 1, 1, 1, 3, 4262
88
proc-macro2, 7, 94, 275, 76, 664, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 58, 1, 1, 7, 35, 5551
99
unicode-xid, 0, 4, 4, 5, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1687
1010
serde, 40, 1971, 4718, 12, 99, 0, 0, 0, 0, 401, 435, 0, 0, 0, 0, 81, 24, 119, 108, 909, 27551
11-
autocfg, 51, 53, 92, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 22, 368, 32, 317, 956
11+
autocfg, 56, 53, 92, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 23, 459, 33, 337, 1002

data/results/top10_patterns.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ quote, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
88
proc-macro2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0
99
unicode-xid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
1010
serde, 0, 0, 0, 31, 0, 2, 0, 0, 1, 0, 0, 1, 5, 0
11-
autocfg, 3, 0, 0, 4, 0, 0, 0, 9, 1, 3, 3, 0, 4, 24
11+
autocfg, 3, 0, 0, 4, 0, 0, 0, 9, 1, 4, 3, 0, 6, 26

data/results/top10_summary.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
crate, effects
22
libc, 6361
33
syn, 565
4-
autocfg, 51
4+
autocfg, 56
55
serde, 40
66
rand, 28
77
proc-macro2, 7

data/test-packages/macro_test/src/main.rs

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,40 @@ macro_rules! simulate_ffi {
150150
// Execute the function
151151
call_fn()
152152
};
153+
}
154+
155+
unsafe fn add_one(x: i32) -> i32 {
156+
x + 1
157+
}
158+
159+
macro_rules! fn_ptr_creation {
160+
() => {
161+
fn test_ptr() {
162+
let f: unsafe fn(i32) -> i32 = add_one;
163+
unsafe {
164+
let _ = f(10);
165+
}
166+
}
167+
168+
test_ptr();
169+
};
170+
}
171+
172+
macro_rules! closure_creation {
173+
() => {
174+
fn test_closure() {
175+
let x = 100;
176+
let c = |y: i32| x + y;
177+
let _ = c(23);
178+
}
179+
180+
test_closure();
181+
};
182+
}
183+
184+
153185

154-
}fn main() {
186+
fn main() {
155187
my_unsafe_fn!();
156188
unsafe_block_ex!();
157189
my_unsafe_ffi!();
@@ -160,4 +192,6 @@ macro_rules! simulate_ffi {
160192
test_logging!();
161193
file_operations!();
162194
simulate_ffi!();
195+
fn_ptr_direct();
196+
closure_direct();
163197
}

0 commit comments

Comments
 (0)