Fix ICE with feature self_struct_ctor
This commit is contained in:
parent
3e90a12a8a
commit
c144dc07e3
3 changed files with 23 additions and 0 deletions
|
|
@ -116,6 +116,7 @@ impl<'a, 'tcx> Visitor<'tcx> for ReachableContext<'a, 'tcx> {
|
|||
Some(Def::Local(node_id)) | Some(Def::Upvar(node_id, ..)) => {
|
||||
self.reachable_symbols.insert(node_id);
|
||||
}
|
||||
Some(Def::Err) => {} // #56202: calling `def.def_id()` would be an error
|
||||
Some(def) => {
|
||||
let def_id = def.def_id();
|
||||
if let Some(node_id) = self.tcx.hir.as_local_node_id(def_id) {
|
||||
|
|
|
|||
15
src/test/ui/issues/issue-56202.rs
Normal file
15
src/test/ui/issues/issue-56202.rs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
#![feature(self_struct_ctor)]
|
||||
|
||||
trait FooTrait {}
|
||||
|
||||
trait BarTrait {
|
||||
fn foo<T: FooTrait>(_: T) -> Self;
|
||||
}
|
||||
|
||||
struct FooStruct(u32);
|
||||
|
||||
impl BarTrait for FooStruct {
|
||||
fn foo<T: FooTrait>(_: T) -> Self {
|
||||
Self(u32::default())
|
||||
}
|
||||
}
|
||||
7
src/test/ui/issues/issue-56202.stderr
Normal file
7
src/test/ui/issues/issue-56202.stderr
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
error[E0601]: `main` function not found in crate `issue_56202`
|
||||
|
|
||||
= note: consider adding a `main` function to `$DIR/issue-56202.rs`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0601`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue