@@ -121,7 +121,7 @@ use syntax::attr;
121
121
use syntax:: attr:: AttrMetaMethods ;
122
122
use syntax:: codemap:: { self , Span , Spanned } ;
123
123
use syntax:: errors:: DiagnosticBuilder ;
124
- use syntax:: parse:: token:: { self , InternedString } ;
124
+ use syntax:: parse:: token:: { self , InternedString , special_idents } ;
125
125
use syntax:: ptr:: P ;
126
126
use syntax:: util:: lev_distance:: find_best_match_for_name;
127
127
@@ -2839,8 +2839,10 @@ fn check_expr_with_unifier<'a, 'tcx, F>(fcx: &FnCtxt<'a, 'tcx>,
2839
2839
method_ty
2840
2840
}
2841
2841
Err ( error) => {
2842
- method:: report_error ( fcx, method_name. span , expr_t,
2843
- method_name. node , Some ( rcvr) , error) ;
2842
+ if method_name. node != special_idents:: invalid. name {
2843
+ method:: report_error ( fcx, method_name. span , expr_t,
2844
+ method_name. node , Some ( rcvr) , error) ;
2845
+ }
2844
2846
fcx. write_error ( expr. id ) ;
2845
2847
fcx. tcx ( ) . types . err
2846
2848
}
@@ -2938,6 +2940,11 @@ fn check_expr_with_unifier<'a, 'tcx, F>(fcx: &FnCtxt<'a, 'tcx>,
2938
2940
None => { }
2939
2941
}
2940
2942
2943
+ if field. node == special_idents:: invalid. name {
2944
+ fcx. write_error ( expr. id ) ;
2945
+ return ;
2946
+ }
2947
+
2941
2948
if method:: exists ( fcx, field. span , field. node , expr_t, expr. id ) {
2942
2949
fcx. type_error_struct ( field. span ,
2943
2950
|actual| {
@@ -3788,8 +3795,9 @@ pub fn resolve_ty_and_def_ufcs<'a, 'b, 'tcx>(fcx: &FnCtxt<'b, 'tcx>,
3788
3795
Some ( ( Some ( ty) , slice:: ref_slice ( item_segment) , def) )
3789
3796
}
3790
3797
Err ( error) => {
3791
- method:: report_error ( fcx, span, ty,
3792
- item_name, None , error) ;
3798
+ if item_name != special_idents:: invalid. name {
3799
+ method:: report_error ( fcx, span, ty, item_name, None , error) ;
3800
+ }
3793
3801
fcx. write_error ( node_id) ;
3794
3802
None
3795
3803
}
0 commit comments