@@ -92,8 +92,7 @@ use std::cell::{Cell, RefCell};
92
92
use std:: fmt;
93
93
use std:: mem:: replace;
94
94
95
- use resolve_imports:: { Target , ImportDirective , ImportResolution } ;
96
- use resolve_imports:: Shadowable ;
95
+ use resolve_imports:: { ImportDirective , ImportResolution } ;
97
96
98
97
// NB: This module needs to be declared first so diagnostics are
99
98
// registered before they are used.
@@ -951,6 +950,7 @@ bitflags! {
951
950
// Variants are considered `PUBLIC`, but some of them live in private enums.
952
951
// We need to track them to prohibit reexports like `pub use PrivEnum::Variant`.
953
952
const PRIVATE_VARIANT = 1 << 2 ,
953
+ const PRELUDE = 1 << 3 ,
954
954
}
955
955
}
956
956
@@ -1291,10 +1291,10 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1291
1291
name) ;
1292
1292
return Indeterminate ;
1293
1293
}
1294
- Success ( ( target , used_proxy) ) => {
1294
+ Success ( ( binding , used_proxy) ) => {
1295
1295
// Check to see whether there are type bindings, and, if
1296
1296
// so, whether there is a module within.
1297
- if let Some ( module_def) = target . binding . module ( ) {
1297
+ if let Some ( module_def) = binding. module ( ) {
1298
1298
search_module = module_def;
1299
1299
1300
1300
// Keep track of the closest private module used
@@ -1390,7 +1390,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1390
1390
debug ! ( "(resolving module path for import) indeterminate; bailing" ) ;
1391
1391
return Indeterminate ;
1392
1392
}
1393
- Success ( ( target , _) ) => match target . binding . module ( ) {
1393
+ Success ( ( binding , _) ) => match binding. module ( ) {
1394
1394
Some ( containing_module) => {
1395
1395
search_module = containing_module;
1396
1396
start_index = 1 ;
@@ -1424,7 +1424,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1424
1424
name : Name ,
1425
1425
namespace : Namespace ,
1426
1426
record_used : bool )
1427
- -> ResolveResult < ( Target < ' a > , bool ) > {
1427
+ -> ResolveResult < ( NameBinding < ' a > , bool ) > {
1428
1428
debug ! ( "(resolving item in lexical scope) resolving `{}` in namespace {:?} in `{}`" ,
1429
1429
name,
1430
1430
namespace,
@@ -1446,10 +1446,10 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1446
1446
debug ! ( "(resolving item in lexical scope) indeterminate higher scope; bailing" ) ;
1447
1447
return Indeterminate ;
1448
1448
}
1449
- Success ( ( target , used_reexport) ) => {
1449
+ Success ( ( binding , used_reexport) ) => {
1450
1450
// We found the module.
1451
1451
debug ! ( "(resolving item in lexical scope) found name in module, done" ) ;
1452
- return Success ( ( target , used_reexport) ) ;
1452
+ return Success ( ( binding , used_reexport) ) ;
1453
1453
}
1454
1454
}
1455
1455
@@ -1543,7 +1543,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1543
1543
}
1544
1544
1545
1545
/// Attempts to resolve the supplied name in the given module for the
1546
- /// given namespace. If successful, returns the target corresponding to
1546
+ /// given namespace. If successful, returns the binding corresponding to
1547
1547
/// the name.
1548
1548
///
1549
1549
/// The boolean returned on success is an indicator of whether this lookup
@@ -1554,7 +1554,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1554
1554
namespace : Namespace ,
1555
1555
allow_private_imports : bool ,
1556
1556
record_used : bool )
1557
- -> ResolveResult < ( Target < ' a > , bool ) > {
1557
+ -> ResolveResult < ( NameBinding < ' a > , bool ) > {
1558
1558
debug ! ( "(resolving name in module) resolving `{}` in `{}`" ,
1559
1559
name,
1560
1560
module_to_string( & * module_) ) ;
@@ -1570,7 +1570,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1570
1570
self . used_crates . insert ( krate) ;
1571
1571
}
1572
1572
}
1573
- return Success ( ( Target :: new ( module_ , binding, Shadowable :: Never ) , false ) ) ;
1573
+ return Success ( ( binding, false ) ) ;
1574
1574
}
1575
1575
1576
1576
// Check the list of resolved imports.
@@ -1580,12 +1580,12 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1580
1580
debug ! ( "(resolving name in module) import unresolved; bailing out" ) ;
1581
1581
return Indeterminate ;
1582
1582
}
1583
- if let Some ( target ) = import_resolution. target . clone ( ) {
1583
+ if let Some ( binding ) = import_resolution. binding . clone ( ) {
1584
1584
debug ! ( "(resolving name in module) resolved to import" ) ;
1585
1585
if record_used {
1586
1586
self . record_import_use ( name, namespace, & import_resolution) ;
1587
1587
}
1588
- return Success ( ( target , true ) ) ;
1588
+ return Success ( ( binding , true ) ) ;
1589
1589
}
1590
1590
}
1591
1591
Some ( ..) | None => { } // Continue.
@@ -2616,11 +2616,11 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
2616
2616
-> BareIdentifierPatternResolution {
2617
2617
let module = self . current_module ;
2618
2618
match self . resolve_item_in_lexical_scope ( module, name, ValueNS , true ) {
2619
- Success ( ( target , _) ) => {
2619
+ Success ( ( binding , _) ) => {
2620
2620
debug ! ( "(resolve bare identifier pattern) succeeded in finding {} at {:?}" ,
2621
2621
name,
2622
- & target . binding) ;
2623
- match target . binding . def ( ) {
2622
+ & binding) ;
2623
+ match binding. def ( ) {
2624
2624
None => {
2625
2625
panic ! ( "resolved name in the value namespace to a set of name bindings \
2626
2626
with no def?!") ;
@@ -2776,7 +2776,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
2776
2776
let module = self . current_module ;
2777
2777
let name = identifier. unhygienic_name ;
2778
2778
match self . resolve_item_in_lexical_scope ( module, name, namespace, record_used) {
2779
- Success ( ( target , _) ) => target . binding . def ( ) . map ( LocalDef :: from_def) ,
2779
+ Success ( ( binding , _) ) => binding. def ( ) . map ( LocalDef :: from_def) ,
2780
2780
Failed ( Some ( ( span, msg) ) ) => {
2781
2781
resolve_error ( self , span, ResolutionError :: FailedToResolve ( & * msg) ) ;
2782
2782
None
@@ -2914,7 +2914,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
2914
2914
let name = segments. last ( ) . unwrap ( ) . identifier . name ;
2915
2915
let result = self . resolve_name_in_module ( containing_module, name, namespace, false , true ) ;
2916
2916
let def = match result {
2917
- Success ( ( Target { binding, .. } , _) ) => {
2917
+ Success ( ( binding, _) ) => {
2918
2918
let ( def, lp) = binding. def_and_lp ( ) ;
2919
2919
( def, last_private. or ( lp) )
2920
2920
}
@@ -2970,7 +2970,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
2970
2970
2971
2971
let name = segments. last ( ) . unwrap ( ) . identifier . name ;
2972
2972
match self . resolve_name_in_module ( containing_module, name, namespace, false , true ) {
2973
- Success ( ( Target { binding, .. } , _) ) => {
2973
+ Success ( ( binding, _) ) => {
2974
2974
let ( def, lp) = binding. def_and_lp ( ) ;
2975
2975
Some ( ( def, last_private. or ( lp) ) )
2976
2976
}
@@ -3008,12 +3008,12 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
3008
3008
}
3009
3009
3010
3010
if let AnonymousModuleRibKind ( module) = self . get_ribs ( namespace) [ i] . kind {
3011
- if let Success ( ( target , _) ) = self . resolve_name_in_module ( module,
3012
- ident. unhygienic_name ,
3013
- namespace,
3014
- true ,
3015
- true ) {
3016
- if let Some ( def) = target . binding . def ( ) {
3011
+ if let Success ( ( binding , _) ) = self . resolve_name_in_module ( module,
3012
+ ident. unhygienic_name ,
3013
+ namespace,
3014
+ true ,
3015
+ true ) {
3016
+ if let Some ( def) = binding. def ( ) {
3017
3017
return Some ( LocalDef :: from_def ( def) ) ;
3018
3018
}
3019
3019
}
@@ -3455,11 +3455,11 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
3455
3455
// Look for imports.
3456
3456
for ( & ( _, ns) , import) in search_module. import_resolutions . borrow ( ) . iter ( ) {
3457
3457
if ns != TypeNS { continue }
3458
- let target = match import. target {
3459
- Some ( ref target ) => target ,
3458
+ let binding = match import. binding {
3459
+ Some ( ref binding ) => binding ,
3460
3460
None => continue ,
3461
3461
} ;
3462
- let did = match target . binding . def ( ) {
3462
+ let did = match binding. def ( ) {
3463
3463
Some ( Def :: Trait ( trait_def_id) ) => trait_def_id,
3464
3464
Some ( ..) | None => continue ,
3465
3465
} ;
0 commit comments