summaryrefslogtreecommitdiffstats
path: root/tests/ui/traits/issue-77982.rs
blob: 2331dda91680c53309ad536233d15552e259a495 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// ignore-windows different list of satisfying impls
use std::collections::HashMap;

fn what() {
    let descr = String::new();
    let mut opts = HashMap::<String, ()>::new();
    let opt = String::new();

    opts.get(opt.as_ref()); //~ ERROR type annotations needed
    //~^ ERROR type annotations needed
}

fn main() {
    let ips: Vec<_> = (0..100_000).map(|_| u32::from(0u32.into())).collect();
    //~^ ERROR type annotations needed
}

trait Foo<'a, T: ?Sized> {
    fn foo(&self) -> Box<T> {
        todo!()
    }
}

trait Bar<'a, T: ?Sized> {
    fn bar(&self) -> Box<T> {
        todo!()
    }
}

impl Foo<'static, u32> for () {}
impl<'a> Foo<'a, i16> for () {}

impl<'a> Bar<'static, u32> for &'a () {}
impl<'a> Bar<'a, i16> for &'a () {}

fn foo() {
    let _ = ().foo(); //~ ERROR type annotations needed
}

fn bar() {
    let _ = (&()).bar(); //~ ERROR type annotations needed
}