//@ compile-flags: --document-private-items //@ set exported_id = "$.index[?(@.name=='exported')].id" //@ is "$.index[?(@.name=='exported')].attrs" '["macro_export"]' //@ is "$.index[?(@.name=='exported')].visibility" '"public"' #[macro_export] macro_rules! exported { () => {}; } //@ set not_exported_id = "$.index[?(@.name=='not_exported')].id" //@ is "$.index[?(@.name=='not_exported')].attrs" [] //@ is "$.index[?(@.name=='not_exported')].visibility" '"crate"' macro_rules! not_exported { () => {}; } //@ set module_id = "$.index[?(@.name=='module')].id" pub mod module { //@ set exported_from_mod_id = "$.index[?(@.name=='exported_from_mod')].id" //@ is "$.index[?(@.name=='exported_from_mod')].attrs" '["macro_export"]' //@ is "$.index[?(@.name=='exported_from_mod')].visibility" '"public"' #[macro_export] macro_rules! exported_from_mod { () => {}; } //@ set not_exported_from_mod_id = "$.index[?(@.name=='not_exported_from_mod')].id" //@ is "$.index[?(@.name=='not_exported_from_mod')].attrs" [] //@ is "$.index[?(@.name=='not_exported_from_mod')].visibility" '"crate"' macro_rules! not_exported_from_mod { () => {}; } } // The non-exported macro's are left in place, but the #[macro_export]'d ones // are moved to the crate root. //@ is "$.index[?(@.name=='module')].inner.module.items[*]" $not_exported_from_mod_id //@ ismany "$.index[?(@.name=='macro_export')].inner.module.items[*]" $exported_id $not_exported_id $module_id $exported_from_mod_id