-
Notifications
You must be signed in to change notification settings - Fork 32
/
issue-39018.rs
59 lines (54 loc) · 1.45 KB
/
issue-39018.rs
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
pub fn main() {
let x = "Hello " + "World!";
//~^ ERROR cannot add
// Make sure that the span outputs a warning
// for not having an implementation for std::ops::Add
// that won't output for the above string concatenation
let y = World::Hello + World::Goodbye;
//~^ ERROR cannot add
let x = "Hello " + "World!".to_owned();
//~^ ERROR cannot add
}
enum World {
Hello,
Goodbye,
}
fn foo() {
let a = String::new();
let b = String::new();
let c = "";
let d = "";
let e = &a;
let _ = &a + &b; //~ ERROR cannot add
let _ = &a + b; //~ ERROR cannot add
let _ = a + &b; // ok
let _ = a + b; //~ ERROR mismatched types
let _ = e + b; //~ ERROR cannot add
let _ = e + &b; //~ ERROR cannot add
let _ = e + d; //~ ERROR cannot add
let _ = e + &d; //~ ERROR cannot add
let _ = &c + &d; //~ ERROR cannot add
let _ = &c + d; //~ ERROR cannot add
let _ = c + &d; //~ ERROR cannot add
let _ = c + d; //~ ERROR cannot add
}
// ferrocene-annotations: fls_qztk0bkju9u
// Borrow Expression
//
// ferrocene-annotations: fls_a14slch83hzn
// Borrowing
//
// ferrocene-annotations: fls_exe4zodlwfez
// Type Unification
//
// ferrocene-annotations: fls_lv7w7aalpwm5
// Type Inference
//
// ferrocene-annotations: fls_1k9mkv7rbezi
// Arithmetic Expressions
//
// ferrocene-annotations: fls_izdv9i4spokw
// Operator Expressions
//
// ferrocene-annotations: fls_zfibijmf8qe1
// Arithmetic Overflow