@@ -1437,6 +1437,9 @@ pub struct Resolver<'a> {
14371437 current_type_ascription : Vec < Span > ,
14381438
14391439 injected_crate : Option < Module < ' a > > ,
1440+
1441+ /// Only supposed to be used by rustdoc, otherwise should be false.
1442+ pub ignore_extern_prelude_feature : bool ,
14401443}
14411444
14421445/// Nothing really interesting here, it just provides memory for the rest of the crate.
@@ -1718,6 +1721,7 @@ impl<'a> Resolver<'a> {
17181721 unused_macros : FxHashSet ( ) ,
17191722 current_type_ascription : Vec :: new ( ) ,
17201723 injected_crate : None ,
1724+ ignore_extern_prelude_feature : false ,
17211725 }
17221726 }
17231727
@@ -1891,7 +1895,8 @@ impl<'a> Resolver<'a> {
18911895 if !module. no_implicit_prelude {
18921896 // `record_used` means that we don't try to load crates during speculative resolution
18931897 if record_used && ns == TypeNS && self . extern_prelude . contains ( & ident. name ) {
1894- if !self . session . features_untracked ( ) . extern_prelude {
1898+ if !self . session . features_untracked ( ) . extern_prelude &&
1899+ !self . ignore_extern_prelude_feature {
18951900 feature_err ( & self . session . parse_sess , "extern_prelude" ,
18961901 ident. span , GateIssue :: Language ,
18971902 "access to extern crates through prelude is experimental" ) . emit ( ) ;
0 commit comments