@@ -125,7 +125,6 @@ fn add_missing_impl_members_inner(
125125
126126 if let IgnoreAssocItems :: HiddenDocAttrPresent = ignore_items {
127127 // Relax condition for local crates.
128-
129128 let db = ctx. db ( ) ;
130129 if trait_. module ( db) . krate ( ) . origin ( db) . is_local ( ) {
131130 ign_item = IgnoreAssocItems :: No ;
@@ -1987,6 +1986,7 @@ impl AnotherTrait<i32> for () {
19871986
19881987 #[ test]
19891988 fn doc_hidden_default_impls_ignored ( ) {
1989+ // doc(hidden) attr is ignored trait and impl both belong to the local crate.
19901990 check_assist (
19911991 add_missing_default_members,
19921992 r#"
@@ -2025,7 +2025,7 @@ impl Trait for Foo {
20252025 }
20262026
20272027 #[ test]
2028- fn doc_hidden_default_impls_extern_crates ( ) {
2028+ fn doc_hidden_default_impls_lang_crates ( ) {
20292029 // Not applicable because Eq has a single method and this has a #[doc(hidden)] attr set.
20302030 check_assist_not_applicable (
20312031 add_missing_default_members,
@@ -2037,4 +2037,115 @@ impl E$0q for Foo { /* $0 */ }
20372037"# ,
20382038 )
20392039 }
2040+
2041+ #[ test]
2042+ fn doc_hidden_default_impls_lib_crates ( ) {
2043+ check_assist (
2044+ add_missing_default_members,
2045+ r#"
2046+ //- /main.rs crate:a deps:b
2047+ struct B;
2048+ impl b::Exte$0rnTrait for B {}
2049+ //- /lib.rs crate:b new_source_root:library
2050+ pub trait ExternTrait {
2051+ #[doc(hidden)]
2052+ fn hidden_default() -> Option<()> {
2053+ todo!()
2054+ }
2055+
2056+ fn unhidden_default() -> Option<()> {
2057+ todo!()
2058+ }
2059+
2060+ fn unhidden_nondefault() -> Option<()>;
2061+ }
2062+ "# ,
2063+ r#"
2064+ struct B;
2065+ impl b::ExternTrait for B {
2066+ $0fn unhidden_default() -> Option<()> {
2067+ todo!()
2068+ }
2069+ }
2070+ "# ,
2071+ )
2072+ }
2073+
2074+ #[ test]
2075+ fn doc_hidden_default_impls_local_crates ( ) {
2076+ check_assist (
2077+ add_missing_default_members,
2078+ r#"
2079+ trait LocalTrait {
2080+ #[doc(hidden)]
2081+ fn no_skip_default() -> Option<()> {
2082+ todo!()
2083+ }
2084+ fn no_skip_default_2() -> Option<()> {
2085+ todo!()
2086+ }
2087+ }
2088+
2089+ struct B;
2090+ impl Loc$0alTrait for B {}
2091+ "# ,
2092+ r#"
2093+ trait LocalTrait {
2094+ #[doc(hidden)]
2095+ fn no_skip_default() -> Option<()> {
2096+ todo!()
2097+ }
2098+ fn no_skip_default_2() -> Option<()> {
2099+ todo!()
2100+ }
2101+ }
2102+
2103+ struct B;
2104+ impl LocalTrait for B {
2105+ $0fn no_skip_default() -> Option<()> {
2106+ todo!()
2107+ }
2108+
2109+ fn no_skip_default_2() -> Option<()> {
2110+ todo!()
2111+ }
2112+ }
2113+ "# ,
2114+ )
2115+ }
2116+
2117+ #[ test]
2118+ fn doc_hidden_default_impls_workspace_crates ( ) {
2119+ check_assist (
2120+ add_missing_default_members,
2121+ r#"
2122+ //- /lib.rs crate:b new_source_root:local
2123+ trait LocalTrait {
2124+ #[doc(hidden)]
2125+ fn no_skip_default() -> Option<()> {
2126+ todo!()
2127+ }
2128+ fn no_skip_default_2() -> Option<()> {
2129+ todo!()
2130+ }
2131+ }
2132+
2133+ //- /main.rs crate:a deps:b
2134+ struct B;
2135+ impl b::Loc$0alTrait for B {}
2136+ "# ,
2137+ r#"
2138+ struct B;
2139+ impl b::LocalTrait for B {
2140+ $0fn no_skip_default() -> Option<()> {
2141+ todo!()
2142+ }
2143+
2144+ fn no_skip_default_2() -> Option<()> {
2145+ todo!()
2146+ }
2147+ }
2148+ "# ,
2149+ )
2150+ }
20402151}
0 commit comments