mirror of
https://github.com/rust-lang/rust
synced 2024-10-14 20:46:49 +00:00
Don't use raw parameter types in find_builder_fn
This commit is contained in:
parent
0395fa387a
commit
18fdf59bf5
|
@ -34,8 +34,8 @@
|
|||
use rustc_middle::ty::{self, GenericArgKind, Ty, TyCtxt, TypeVisitableExt};
|
||||
use rustc_span::def_id::DefIdSet;
|
||||
use rustc_span::symbol::{kw, sym, Ident};
|
||||
use rustc_span::Symbol;
|
||||
use rustc_span::{edit_distance, ExpnKind, FileName, MacroKind, Span};
|
||||
use rustc_span::{Symbol, DUMMY_SP};
|
||||
use rustc_trait_selection::infer::InferCtxtExt;
|
||||
use rustc_trait_selection::traits::error_reporting::on_unimplemented::OnUnimplementedNote;
|
||||
use rustc_trait_selection::traits::error_reporting::on_unimplemented::TypeErrCtxtExt as _;
|
||||
|
@ -1597,7 +1597,11 @@ fn find_builder_fn(&self, err: &mut Diagnostic, rcvr_ty: Ty<'tcx>) {
|
|||
.filter(|item| matches!(item.kind, ty::AssocKind::Fn) && !item.fn_has_self_parameter)
|
||||
.filter_map(|item| {
|
||||
// Only assoc fns that return `Self`, `Option<Self>` or `Result<Self, _>`.
|
||||
let ret_ty = self.tcx.fn_sig(item.def_id).skip_binder().output();
|
||||
let ret_ty = self
|
||||
.tcx
|
||||
.fn_sig(item.def_id)
|
||||
.instantiate(self.tcx, self.fresh_args_for_item(DUMMY_SP, item.def_id))
|
||||
.output();
|
||||
let ret_ty = self.tcx.instantiate_bound_regions_with_erased(ret_ty);
|
||||
let ty::Adt(def, args) = ret_ty.kind() else {
|
||||
return None;
|
||||
|
|
|
@ -4,6 +4,11 @@ error[E0599]: no function or associated item named `new_undirected` found for st
|
|||
LL | let ug = Graph::<i32, i32>::new_undirected();
|
||||
| ^^^^^^^^^^^^^^ function or associated item not found in `Graph<i32, i32>`
|
||||
|
|
||||
note: if you're trying to build a new `issue_30123_aux::Graph<i32, i32>`, consider using `issue_30123_aux::Graph::<N, E>::new` which returns `issue_30123_aux::Graph<_, _>`
|
||||
--> $DIR/auxiliary/issue-30123-aux.rs:14:5
|
||||
|
|
||||
LL | pub fn new() -> Self {
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
= note: the function or associated item was found for
|
||||
- `issue_30123_aux::Graph<N, E, Undirected>`
|
||||
|
||||
|
|
Loading…
Reference in a new issue