Skip to content

Commit

Permalink
Remove use of unwrap() from save-analysis
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnTitor committed Feb 24, 2020
1 parent 79cd224 commit f85b0c4
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 15 deletions.
19 changes: 11 additions & 8 deletions src/librustc_save_analysis/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -533,14 +533,17 @@ impl<'l, 'tcx> SaveContext<'l, 'tcx> {
match self.tables.expr_ty_adjusted(&hir_node).kind {
ty::Adt(def, _) if !def.is_enum() => {
let variant = &def.non_enum_variant();
let index = self.tcx.find_field_index(ident, variant).unwrap();
filter!(self.span_utils, ident.span);
let span = self.span_from_span(ident.span);
return Some(Data::RefData(Ref {
kind: RefKind::Variable,
span,
ref_id: id_from_def_id(variant.fields[index].did),
}));
if let Some(index) = self.tcx.find_field_index(ident, variant) {
filter!(self.span_utils, ident.span);
let span = self.span_from_span(ident.span);
return Some(Data::RefData(Ref {
kind: RefKind::Variable,
span,
ref_id: id_from_def_id(variant.fields[index].did),
}));
}

None
}
ty::Tuple(..) => None,
_ => {
Expand Down
2 changes: 2 additions & 0 deletions src/test/ui/assign-to-method.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// compile-flags: -Zsave-analysis

struct Cat {
meows : usize,

Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/assign-to-method.stderr
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
error[E0615]: attempted to take value of method `speak` on type `Cat`
--> $DIR/assign-to-method.rs:20:8
--> $DIR/assign-to-method.rs:22:8
|
LL | nyan.speak = || println!("meow");
| ^^^^^
|
= help: methods are immutable and cannot be assigned to

error[E0615]: attempted to take value of method `speak` on type `Cat`
--> $DIR/assign-to-method.rs:21:8
--> $DIR/assign-to-method.rs:23:8
|
LL | nyan.speak += || println!("meow");
| ^^^^^
Expand Down
2 changes: 2 additions & 0 deletions src/test/ui/issues/issue-3763.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// compile-flags: -Zsave-analysis

mod my_mod {
pub struct MyStruct {
priv_field: isize
Expand Down
10 changes: 5 additions & 5 deletions src/test/ui/issues/issue-3763.stderr
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
error[E0616]: field `priv_field` of struct `my_mod::MyStruct` is private
--> $DIR/issue-3763.rs:15:19
--> $DIR/issue-3763.rs:17:19
|
LL | let _woohoo = (&my_struct).priv_field;
| ^^^^^^^^^^^^^^^^^^^^^^^

error[E0616]: field `priv_field` of struct `my_mod::MyStruct` is private
--> $DIR/issue-3763.rs:18:19
--> $DIR/issue-3763.rs:20:19
|
LL | let _woohoo = (Box::new(my_struct)).priv_field;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0624]: method `happyfun` is private
--> $DIR/issue-3763.rs:21:18
--> $DIR/issue-3763.rs:23:18
|
LL | (&my_struct).happyfun();
| ^^^^^^^^

error[E0624]: method `happyfun` is private
--> $DIR/issue-3763.rs:23:27
--> $DIR/issue-3763.rs:25:27
|
LL | (Box::new(my_struct)).happyfun();
| ^^^^^^^^

error[E0616]: field `priv_field` of struct `my_mod::MyStruct` is private
--> $DIR/issue-3763.rs:24:16
--> $DIR/issue-3763.rs:26:16
|
LL | let nope = my_struct.priv_field;
| ^^^^^^^^^^^^^^^^^^^^
Expand Down

0 comments on commit f85b0c4

Please sign in to comment.