Skip to content

Commit 38c9e0f

Browse files
committed
rollup merge of rust-lang#24380: arielb1/no-enum-suggest
Fixes rust-lang#24365
2 parents 2795811 + 39543e9 commit 38c9e0f

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

src/librustc_typeck/check/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2616,8 +2616,8 @@ fn check_expr_with_unifier<'a, 'tcx, F>(fcx: &FnCtxt<'a, 'tcx>,
26162616
actual)
26172617
},
26182618
expr_t, None);
2619-
if let Some(t) = ty::ty_to_def_id(expr_t) {
2620-
suggest_field_names(t, field, tcx, vec![]);
2619+
if let ty::ty_struct(did, _) = expr_t.sty {
2620+
suggest_field_names(did, field, tcx, vec![]);
26212621
}
26222622
}
26232623

src/test/compile-fail/issue-24365.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
pub enum Attribute {
12+
Code {attr_name_idx: u16},
13+
}
14+
15+
pub enum Foo {
16+
Bar
17+
}
18+
19+
fn test(a: Foo) {
20+
println!("{}", a.b); //~ ERROR attempted access of field
21+
}
22+
23+
fn main() {
24+
let x = Attribute::Code {
25+
attr_name_idx: 42,
26+
};
27+
let z = (&x).attr_name_idx; //~ ERROR attempted access of field
28+
let y = x.attr_name_idx; //~ ERROR attempted access of field
29+
}

0 commit comments

Comments
 (0)