mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-28 17:53:56 +00:00
parent
5a6a3d0777
commit
dbfc68cea0
@ -407,7 +407,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
|
||||
|
||||
let substs =
|
||||
Ty::substs_from_path_segment(self.db, &self.resolver, segment, typable);
|
||||
self.db.type_for_def(typable, Namespace::Types).apply_substs(substs)
|
||||
self.db.type_for_def(typable, Namespace::Types).subst(&substs)
|
||||
}
|
||||
Resolution::LocalBinding(_) => {
|
||||
// can't have a local binding in an associated item path
|
||||
@ -466,7 +466,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
|
||||
let typable: Option<TypableDef> = def.into();
|
||||
let typable = typable?;
|
||||
let substs = Ty::substs_from_path(self.db, &self.resolver, path, typable);
|
||||
let ty = self.db.type_for_def(typable, Namespace::Values).apply_substs(substs);
|
||||
let ty = self.db.type_for_def(typable, Namespace::Values).subst(&substs);
|
||||
let ty = self.insert_type_vars(ty);
|
||||
Some(ty)
|
||||
}
|
||||
|
@ -1791,6 +1791,29 @@ fn test<R>(query_response: Canonical<QueryResponse<R>>) {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bug_1030() {
|
||||
assert_snapshot_matches!(infer(r#"
|
||||
struct HashSet<T, H>;
|
||||
struct FxHasher;
|
||||
type FxHashSet<T> = HashSet<T, FxHasher>;
|
||||
|
||||
impl<T, H> HashSet<T, H> {
|
||||
fn default() -> HashSet<T, H> {}
|
||||
}
|
||||
|
||||
pub fn main_loop() {
|
||||
FxHashSet::default();
|
||||
}
|
||||
"#),
|
||||
@r###"
|
||||
[144; 146) '{}': ()
|
||||
[169; 198) '{ ...t(); }': ()
|
||||
[175; 193) 'FxHash...efault': fn default<{unknown}, {unknown}>() -> HashSet<T, H>
|
||||
[175; 195) 'FxHash...ault()': HashSet<{unknown}, {unknown}>"###
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn cross_crate_associated_method_call() {
|
||||
let (mut db, pos) = MockDatabase::with_position(
|
||||
|
Loading…
Reference in New Issue
Block a user