@@ -51,7 +51,7 @@ use rustc::dep_graph::DepNode;
51
51
use rustc:: front:: map as hir_map;
52
52
use rustc:: session:: Session ;
53
53
use rustc:: lint;
54
- use rustc:: middle:: cstore:: { CrateStore , DefLike , DlDef } ;
54
+ use rustc:: middle:: cstore:: CrateStore ;
55
55
use rustc:: middle:: def:: * ;
56
56
use rustc:: middle:: def_id:: DefId ;
57
57
use rustc:: middle:: pat_util:: pat_bindings;
@@ -756,7 +756,7 @@ enum BareIdentifierPatternResolution {
756
756
/// One local scope.
757
757
#[ derive( Debug ) ]
758
758
struct Rib < ' a > {
759
- bindings : HashMap < Name , DefLike > ,
759
+ bindings : HashMap < Name , Def > ,
760
760
kind : RibKind < ' a > ,
761
761
}
762
762
@@ -1594,7 +1594,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1594
1594
1595
1595
/// Searches the current set of local scopes for labels.
1596
1596
/// Stops after meeting a closure.
1597
- fn search_label ( & self , name : Name ) -> Option < DefLike > {
1597
+ fn search_label ( & self , name : Name ) -> Option < Def > {
1598
1598
for rib in self . label_ribs . iter ( ) . rev ( ) {
1599
1599
match rib. kind {
1600
1600
NormalRibKind => {
@@ -1753,13 +1753,9 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1753
1753
seen_bindings. insert ( name) ;
1754
1754
1755
1755
// plain insert (no renaming)
1756
- function_type_rib. bindings
1757
- . insert ( name,
1758
- DlDef ( Def :: TyParam ( space,
1759
- index as u32 ,
1760
- self . ast_map
1761
- . local_def_id ( type_parameter. id ) ,
1762
- name) ) ) ;
1756
+ let def_id = self . ast_map . local_def_id ( type_parameter. id ) ;
1757
+ let def = Def :: TyParam ( space, index as u32 , def_id, name) ;
1758
+ function_type_rib. bindings . insert ( name, def) ;
1763
1759
}
1764
1760
self . type_ribs . push ( function_type_rib) ;
1765
1761
}
@@ -1948,7 +1944,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
1948
1944
1949
1945
// plain insert (no renaming, types are not currently hygienic....)
1950
1946
let name = special_names:: type_self;
1951
- self_type_rib. bindings . insert ( name, DlDef ( self_def) ) ;
1947
+ self_type_rib. bindings . insert ( name, self_def) ;
1952
1948
self . type_ribs . push ( self_type_rib) ;
1953
1949
f ( self ) ;
1954
1950
if !self . resolved {
@@ -2328,7 +2324,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
2328
2324
if !bindings_list. contains_key ( & renamed) {
2329
2325
let this = & mut * self ;
2330
2326
let last_rib = this. value_ribs . last_mut ( ) . unwrap ( ) ;
2331
- last_rib. bindings . insert ( renamed, DlDef ( def) ) ;
2327
+ last_rib. bindings . insert ( renamed, def) ;
2332
2328
bindings_list. insert ( renamed, pat_id) ;
2333
2329
} else if mode == ArgumentIrrefutableMode &&
2334
2330
bindings_list. contains_key ( & renamed) {
@@ -2869,25 +2865,11 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
2869
2865
let name = match namespace { ValueNS => ident. name , TypeNS => ident. unhygienic_name } ;
2870
2866
2871
2867
for i in ( 0 .. self . get_ribs ( namespace) . len ( ) ) . rev ( ) {
2872
- if let Some ( def_like) = self . get_ribs ( namespace) [ i] . bindings . get ( & name) . cloned ( ) {
2873
- match def_like {
2874
- DlDef ( def) => {
2875
- debug ! ( "(resolving path in local ribs) resolved `{}` to {:?} at {}" ,
2876
- name,
2877
- def,
2878
- i) ;
2879
- return Some ( LocalDef {
2880
- ribs : Some ( ( namespace, i) ) ,
2881
- def : def,
2882
- } ) ;
2883
- }
2884
- def_like => {
2885
- debug ! ( "(resolving path in local ribs) resolved `{}` to pseudo-def {:?}" ,
2886
- name,
2887
- def_like) ;
2888
- return None ;
2889
- }
2890
- }
2868
+ if let Some ( def) = self . get_ribs ( namespace) [ i] . bindings . get ( & name) . cloned ( ) {
2869
+ return Some ( LocalDef {
2870
+ ribs : Some ( ( namespace, i) ) ,
2871
+ def : def,
2872
+ } ) ;
2891
2873
}
2892
2874
2893
2875
if let ModuleRibKind ( module) = self . get_ribs ( namespace) [ i] . kind {
@@ -3230,11 +3212,11 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
3230
3212
3231
3213
ExprLoop ( _, Some ( label) ) | ExprWhile ( _, _, Some ( label) ) => {
3232
3214
self . with_label_rib ( |this| {
3233
- let def_like = DlDef ( Def :: Label ( expr. id ) ) ;
3215
+ let def = Def :: Label ( expr. id ) ;
3234
3216
3235
3217
{
3236
3218
let rib = this. label_ribs . last_mut ( ) . unwrap ( ) ;
3237
- rib. bindings . insert ( label. name , def_like ) ;
3219
+ rib. bindings . insert ( label. name , def ) ;
3238
3220
}
3239
3221
3240
3222
intravisit:: walk_expr ( this, expr) ;
@@ -3249,7 +3231,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
3249
3231
label. span ,
3250
3232
ResolutionError :: UndeclaredLabel ( & label. node . name . as_str ( ) ) )
3251
3233
}
3252
- Some ( DlDef ( def @ Def :: Label ( _) ) ) => {
3234
+ Some ( def @ Def :: Label ( _) ) => {
3253
3235
// Since this def is a label, it is never read.
3254
3236
self . record_def ( expr. id ,
3255
3237
PathResolution {
0 commit comments