@@ -281,7 +281,7 @@ impl<'a> Resolver<'a> {
281
281
parent_scope : & ParentScope < ' a > ,
282
282
finalize : Option < Finalize > ,
283
283
ribs : & [ Rib < ' a > ] ,
284
- unusable_binding : Option < & ' a NameBinding < ' a > > ,
284
+ ignore_binding : Option < & ' a NameBinding < ' a > > ,
285
285
) -> Option < LexicalScopeBinding < ' a > > {
286
286
assert ! ( ns == TypeNS || ns == ValueNS ) ;
287
287
let orig_ident = ident;
@@ -343,7 +343,7 @@ impl<'a> Resolver<'a> {
343
343
ns,
344
344
parent_scope,
345
345
finalize,
346
- unusable_binding ,
346
+ ignore_binding ,
347
347
) ;
348
348
if let Ok ( binding) = item {
349
349
// The ident resolves to an item.
@@ -356,7 +356,7 @@ impl<'a> Resolver<'a> {
356
356
parent_scope,
357
357
finalize,
358
358
finalize. is_some ( ) ,
359
- unusable_binding ,
359
+ ignore_binding ,
360
360
)
361
361
. ok ( )
362
362
. map ( LexicalScopeBinding :: Item )
@@ -375,7 +375,7 @@ impl<'a> Resolver<'a> {
375
375
parent_scope : & ParentScope < ' a > ,
376
376
finalize : Option < Finalize > ,
377
377
force : bool ,
378
- unusable_binding : Option < & ' a NameBinding < ' a > > ,
378
+ ignore_binding : Option < & ' a NameBinding < ' a > > ,
379
379
) -> Result < & ' a NameBinding < ' a > , Determinacy > {
380
380
bitflags:: bitflags! {
381
381
struct Flags : u8 {
@@ -495,7 +495,7 @@ impl<'a> Resolver<'a> {
495
495
ns,
496
496
parent_scope,
497
497
finalize,
498
- unusable_binding ,
498
+ ignore_binding ,
499
499
) ;
500
500
match binding {
501
501
Ok ( binding) => Ok ( ( binding, Flags :: MODULE | Flags :: MISC_SUGGEST_CRATE ) ) ,
@@ -517,7 +517,7 @@ impl<'a> Resolver<'a> {
517
517
adjusted_parent_scope,
518
518
!matches ! ( scope_set, ScopeSet :: Late ( ..) ) ,
519
519
finalize,
520
- unusable_binding ,
520
+ ignore_binding ,
521
521
) ;
522
522
match binding {
523
523
Ok ( binding) => {
@@ -602,7 +602,7 @@ impl<'a> Resolver<'a> {
602
602
ns,
603
603
parent_scope,
604
604
None ,
605
- unusable_binding ,
605
+ ignore_binding ,
606
606
) {
607
607
if use_prelude || this. is_builtin_macro ( binding. res ( ) ) {
608
608
result = Ok ( ( binding, Flags :: MISC_FROM_PRELUDE ) ) ;
@@ -736,19 +736,10 @@ impl<'a> Resolver<'a> {
736
736
ns : Namespace ,
737
737
parent_scope : & ParentScope < ' a > ,
738
738
finalize : Option < Finalize > ,
739
- // This binding should be ignored during in-module resolution, so that we don't get
740
- // "self-confirming" import resolutions during import validation.
741
- unusable_binding : Option < & ' a NameBinding < ' a > > ,
739
+ ignore_binding : Option < & ' a NameBinding < ' a > > ,
742
740
) -> Result < & ' a NameBinding < ' a > , Determinacy > {
743
- self . resolve_ident_in_module_ext (
744
- module,
745
- ident,
746
- ns,
747
- parent_scope,
748
- finalize,
749
- unusable_binding,
750
- )
751
- . map_err ( |( determinacy, _) | determinacy)
741
+ self . resolve_ident_in_module_ext ( module, ident, ns, parent_scope, finalize, ignore_binding)
742
+ . map_err ( |( determinacy, _) | determinacy)
752
743
}
753
744
754
745
#[ tracing:: instrument( level = "debug" , skip( self ) ) ]
@@ -759,7 +750,7 @@ impl<'a> Resolver<'a> {
759
750
ns : Namespace ,
760
751
parent_scope : & ParentScope < ' a > ,
761
752
finalize : Option < Finalize > ,
762
- unusable_binding : Option < & ' a NameBinding < ' a > > ,
753
+ ignore_binding : Option < & ' a NameBinding < ' a > > ,
763
754
) -> Result < & ' a NameBinding < ' a > , ( Determinacy , Weak ) > {
764
755
let tmp_parent_scope;
765
756
let mut adjusted_parent_scope = parent_scope;
@@ -785,7 +776,7 @@ impl<'a> Resolver<'a> {
785
776
adjusted_parent_scope,
786
777
false ,
787
778
finalize,
788
- unusable_binding ,
779
+ ignore_binding ,
789
780
)
790
781
}
791
782
@@ -797,7 +788,7 @@ impl<'a> Resolver<'a> {
797
788
ns : Namespace ,
798
789
parent_scope : & ParentScope < ' a > ,
799
790
finalize : Option < Finalize > ,
800
- unusable_binding : Option < & ' a NameBinding < ' a > > ,
791
+ ignore_binding : Option < & ' a NameBinding < ' a > > ,
801
792
) -> Result < & ' a NameBinding < ' a > , Determinacy > {
802
793
self . resolve_ident_in_module_unadjusted_ext (
803
794
module,
@@ -806,7 +797,7 @@ impl<'a> Resolver<'a> {
806
797
parent_scope,
807
798
false ,
808
799
finalize,
809
- unusable_binding ,
800
+ ignore_binding ,
810
801
)
811
802
. map_err ( |( determinacy, _) | determinacy)
812
803
}
@@ -822,7 +813,9 @@ impl<'a> Resolver<'a> {
822
813
parent_scope : & ParentScope < ' a > ,
823
814
restricted_shadowing : bool ,
824
815
finalize : Option < Finalize > ,
825
- unusable_binding : Option < & ' a NameBinding < ' a > > ,
816
+ // This binding should be ignored during in-module resolution, so that we don't get
817
+ // "self-confirming" import resolutions during import validation and checking.
818
+ ignore_binding : Option < & ' a NameBinding < ' a > > ,
826
819
) -> Result < & ' a NameBinding < ' a > , ( Determinacy , Weak ) > {
827
820
let module = match module {
828
821
ModuleOrUniformRoot :: Module ( module) => module,
@@ -834,7 +827,7 @@ impl<'a> Resolver<'a> {
834
827
parent_scope,
835
828
finalize,
836
829
finalize. is_some ( ) ,
837
- unusable_binding ,
830
+ ignore_binding ,
838
831
) ;
839
832
return binding. map_err ( |determinacy| ( determinacy, Weak :: No ) ) ;
840
833
}
@@ -874,7 +867,7 @@ impl<'a> Resolver<'a> {
874
867
parent_scope,
875
868
finalize,
876
869
finalize. is_some ( ) ,
877
- unusable_binding ,
870
+ ignore_binding ,
878
871
) ;
879
872
return binding. map_err ( |determinacy| ( determinacy, Weak :: No ) ) ;
880
873
}
@@ -891,12 +884,8 @@ impl<'a> Resolver<'a> {
891
884
// hack to avoid inconsistent resolution ICEs during import validation.
892
885
let binding = [ resolution. binding , resolution. shadowed_glob ]
893
886
. into_iter ( )
894
- . filter_map ( |binding| match ( binding, unusable_binding) {
895
- ( Some ( binding) , Some ( unusable_binding) )
896
- if ptr:: eq ( binding, unusable_binding) =>
897
- {
898
- None
899
- }
887
+ . filter_map ( |binding| match ( binding, ignore_binding) {
888
+ ( Some ( binding) , Some ( ignored) ) if ptr:: eq ( binding, ignored) => None ,
900
889
_ => binding,
901
890
} )
902
891
. next ( ) ;
@@ -943,10 +932,8 @@ impl<'a> Resolver<'a> {
943
932
}
944
933
945
934
let check_usable = |this : & mut Self , binding : & ' a NameBinding < ' a > | {
946
- if let Some ( unusable_binding) = unusable_binding {
947
- if ptr:: eq ( binding, unusable_binding) {
948
- return Err ( ( Determined , Weak :: No ) ) ;
949
- }
935
+ if let Some ( ignored) = ignore_binding && ptr:: eq ( binding, ignored) {
936
+ return Err ( ( Determined , Weak :: No ) ) ;
950
937
}
951
938
let usable = this. is_accessible_from ( binding. vis , parent_scope. module ) ;
952
939
if usable { Ok ( binding) } else { Err ( ( Determined , Weak :: No ) ) }
@@ -979,7 +966,7 @@ impl<'a> Resolver<'a> {
979
966
ns,
980
967
& single_import. parent_scope ,
981
968
None ,
982
- unusable_binding ,
969
+ ignore_binding ,
983
970
) {
984
971
Err ( Determined ) => continue ,
985
972
Ok ( binding)
@@ -1055,7 +1042,7 @@ impl<'a> Resolver<'a> {
1055
1042
ns,
1056
1043
adjusted_parent_scope,
1057
1044
None ,
1058
- unusable_binding ,
1045
+ ignore_binding ,
1059
1046
) ;
1060
1047
1061
1048
match result {
@@ -1362,9 +1349,9 @@ impl<'a> Resolver<'a> {
1362
1349
opt_ns : Option < Namespace > , // `None` indicates a module path in import
1363
1350
parent_scope : & ParentScope < ' a > ,
1364
1351
finalize : Option < Finalize > ,
1365
- unusable_binding : Option < & ' a NameBinding < ' a > > ,
1352
+ ignore_binding : Option < & ' a NameBinding < ' a > > ,
1366
1353
) -> PathResult < ' a > {
1367
- self . resolve_path_with_ribs ( path, opt_ns, parent_scope, finalize, None , unusable_binding )
1354
+ self . resolve_path_with_ribs ( path, opt_ns, parent_scope, finalize, None , ignore_binding )
1368
1355
}
1369
1356
1370
1357
crate fn resolve_path_with_ribs (
@@ -1374,7 +1361,7 @@ impl<'a> Resolver<'a> {
1374
1361
parent_scope : & ParentScope < ' a > ,
1375
1362
finalize : Option < Finalize > ,
1376
1363
ribs : Option < & PerNS < Vec < Rib < ' a > > > > ,
1377
- unusable_binding : Option < & ' a NameBinding < ' a > > ,
1364
+ ignore_binding : Option < & ' a NameBinding < ' a > > ,
1378
1365
) -> PathResult < ' a > {
1379
1366
debug ! ( "resolve_path(path={:?}, opt_ns={:?}, finalize={:?})" , path, opt_ns, finalize) ;
1380
1367
@@ -1477,7 +1464,7 @@ impl<'a> Resolver<'a> {
1477
1464
ns,
1478
1465
parent_scope,
1479
1466
finalize,
1480
- unusable_binding ,
1467
+ ignore_binding ,
1481
1468
)
1482
1469
} else if let Some ( ribs) = ribs
1483
1470
&& let Some ( TypeNS | ValueNS ) = opt_ns
@@ -1488,7 +1475,7 @@ impl<'a> Resolver<'a> {
1488
1475
parent_scope,
1489
1476
finalize,
1490
1477
& ribs[ ns] ,
1491
- unusable_binding ,
1478
+ ignore_binding ,
1492
1479
) {
1493
1480
// we found a locally-imported or available item/module
1494
1481
Some ( LexicalScopeBinding :: Item ( binding) ) => Ok ( binding) ,
@@ -1504,7 +1491,7 @@ impl<'a> Resolver<'a> {
1504
1491
parent_scope,
1505
1492
finalize,
1506
1493
finalize. is_some ( ) ,
1507
- unusable_binding ,
1494
+ ignore_binding ,
1508
1495
)
1509
1496
} ;
1510
1497
FindBindingResult :: Binding ( binding)
@@ -1577,7 +1564,7 @@ impl<'a> Resolver<'a> {
1577
1564
opt_ns,
1578
1565
parent_scope,
1579
1566
ribs,
1580
- unusable_binding ,
1567
+ ignore_binding ,
1581
1568
module,
1582
1569
i,
1583
1570
ident,
0 commit comments