@@ -92,8 +92,7 @@ use std::cell::{Cell, RefCell};
9292use std:: fmt;
9393use std:: mem:: replace;
9494
95- use resolve_imports:: { Target , ImportDirective , ImportResolution } ;
96- use resolve_imports:: Shadowable ;
95+ use resolve_imports:: { ImportDirective , ImportResolution } ;
9796
9897// NB: This module needs to be declared first so diagnostics are
9998// registered before they are used.
@@ -951,6 +950,7 @@ bitflags! {
951950 // Variants are considered `PUBLIC`, but some of them live in private enums.
952951 // We need to track them to prohibit reexports like `pub use PrivEnum::Variant`.
953952 const PRIVATE_VARIANT = 1 << 2 ,
953+ const PRELUDE = 1 << 3 ,
954954 }
955955}
956956
@@ -1291,10 +1291,10 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
12911291 name) ;
12921292 return Indeterminate ;
12931293 }
1294- Success ( ( target , used_proxy) ) => {
1294+ Success ( ( binding , used_proxy) ) => {
12951295 // Check to see whether there are type bindings, and, if
12961296 // so, whether there is a module within.
1297- if let Some ( module_def) = target . binding . module ( ) {
1297+ if let Some ( module_def) = binding. module ( ) {
12981298 search_module = module_def;
12991299
13001300 // Keep track of the closest private module used
@@ -1390,7 +1390,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
13901390 debug ! ( "(resolving module path for import) indeterminate; bailing" ) ;
13911391 return Indeterminate ;
13921392 }
1393- Success ( ( target , _) ) => match target . binding . module ( ) {
1393+ Success ( ( binding , _) ) => match binding. module ( ) {
13941394 Some ( containing_module) => {
13951395 search_module = containing_module;
13961396 start_index = 1 ;
@@ -1424,7 +1424,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
14241424 name : Name ,
14251425 namespace : Namespace ,
14261426 record_used : bool )
1427- -> ResolveResult < ( Target < ' a > , bool ) > {
1427+ -> ResolveResult < ( NameBinding < ' a > , bool ) > {
14281428 debug ! ( "(resolving item in lexical scope) resolving `{}` in namespace {:?} in `{}`" ,
14291429 name,
14301430 namespace,
@@ -1446,10 +1446,10 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
14461446 debug ! ( "(resolving item in lexical scope) indeterminate higher scope; bailing" ) ;
14471447 return Indeterminate ;
14481448 }
1449- Success ( ( target , used_reexport) ) => {
1449+ Success ( ( binding , used_reexport) ) => {
14501450 // We found the module.
14511451 debug ! ( "(resolving item in lexical scope) found name in module, done" ) ;
1452- return Success ( ( target , used_reexport) ) ;
1452+ return Success ( ( binding , used_reexport) ) ;
14531453 }
14541454 }
14551455
@@ -1543,7 +1543,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
15431543 }
15441544
15451545 /// 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
15471547 /// the name.
15481548 ///
15491549 /// The boolean returned on success is an indicator of whether this lookup
@@ -1554,7 +1554,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
15541554 namespace : Namespace ,
15551555 allow_private_imports : bool ,
15561556 record_used : bool )
1557- -> ResolveResult < ( Target < ' a > , bool ) > {
1557+ -> ResolveResult < ( NameBinding < ' a > , bool ) > {
15581558 debug ! ( "(resolving name in module) resolving `{}` in `{}`" ,
15591559 name,
15601560 module_to_string( & * module_) ) ;
@@ -1570,7 +1570,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
15701570 self . used_crates . insert ( krate) ;
15711571 }
15721572 }
1573- return Success ( ( Target :: new ( module_ , binding, Shadowable :: Never ) , false ) ) ;
1573+ return Success ( ( binding, false ) ) ;
15741574 }
15751575
15761576 // Check the list of resolved imports.
@@ -1580,12 +1580,12 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
15801580 debug ! ( "(resolving name in module) import unresolved; bailing out" ) ;
15811581 return Indeterminate ;
15821582 }
1583- if let Some ( target ) = import_resolution. target . clone ( ) {
1583+ if let Some ( binding ) = import_resolution. binding . clone ( ) {
15841584 debug ! ( "(resolving name in module) resolved to import" ) ;
15851585 if record_used {
15861586 self . record_import_use ( name, namespace, & import_resolution) ;
15871587 }
1588- return Success ( ( target , true ) ) ;
1588+ return Success ( ( binding , true ) ) ;
15891589 }
15901590 }
15911591 Some ( ..) | None => { } // Continue.
@@ -2616,11 +2616,11 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
26162616 -> BareIdentifierPatternResolution {
26172617 let module = self . current_module ;
26182618 match self . resolve_item_in_lexical_scope ( module, name, ValueNS , true ) {
2619- Success ( ( target , _) ) => {
2619+ Success ( ( binding , _) ) => {
26202620 debug ! ( "(resolve bare identifier pattern) succeeded in finding {} at {:?}" ,
26212621 name,
2622- & target . binding) ;
2623- match target . binding . def ( ) {
2622+ & binding) ;
2623+ match binding. def ( ) {
26242624 None => {
26252625 panic ! ( "resolved name in the value namespace to a set of name bindings \
26262626 with no def?!") ;
@@ -2776,7 +2776,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
27762776 let module = self . current_module ;
27772777 let name = identifier. unhygienic_name ;
27782778 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) ,
27802780 Failed ( Some ( ( span, msg) ) ) => {
27812781 resolve_error ( self , span, ResolutionError :: FailedToResolve ( & * msg) ) ;
27822782 None
@@ -2914,7 +2914,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
29142914 let name = segments. last ( ) . unwrap ( ) . identifier . name ;
29152915 let result = self . resolve_name_in_module ( containing_module, name, namespace, false , true ) ;
29162916 let def = match result {
2917- Success ( ( Target { binding, .. } , _) ) => {
2917+ Success ( ( binding, _) ) => {
29182918 let ( def, lp) = binding. def_and_lp ( ) ;
29192919 ( def, last_private. or ( lp) )
29202920 }
@@ -2970,7 +2970,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
29702970
29712971 let name = segments. last ( ) . unwrap ( ) . identifier . name ;
29722972 match self . resolve_name_in_module ( containing_module, name, namespace, false , true ) {
2973- Success ( ( Target { binding, .. } , _) ) => {
2973+ Success ( ( binding, _) ) => {
29742974 let ( def, lp) = binding. def_and_lp ( ) ;
29752975 Some ( ( def, last_private. or ( lp) ) )
29762976 }
@@ -3008,12 +3008,12 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
30083008 }
30093009
30103010 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 ( ) {
30173017 return Some ( LocalDef :: from_def ( def) ) ;
30183018 }
30193019 }
@@ -3455,11 +3455,11 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
34553455 // Look for imports.
34563456 for ( & ( _, ns) , import) in search_module. import_resolutions . borrow ( ) . iter ( ) {
34573457 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 ,
34603460 None => continue ,
34613461 } ;
3462- let did = match target . binding . def ( ) {
3462+ let did = match binding. def ( ) {
34633463 Some ( Def :: Trait ( trait_def_id) ) => trait_def_id,
34643464 Some ( ..) | None => continue ,
34653465 } ;
0 commit comments