Skip to content

Commit e492ca8

Browse files
committed
Add integration test
1 parent ce57648 commit e492ca8

File tree

3 files changed

+107
-0
lines changed

3 files changed

+107
-0
lines changed

src/test/ui/.gitattributes

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
lexer-crlf-line-endings-string-literal-doc-comment.rs -text
2+
json-bom-plus-crlf.rs -text
23
trailing-carriage-return-in-string.rs -text
34
*.bin -text

src/test/ui/json-bom-plus-crlf.rs

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// build-fail
2+
// compile-flags: --json=diagnostic-short --error-format=json
3+
// ignore-tidy-cr
4+
5+
// N.B., this file needs CRLF line endings. The .gitattributes file in
6+
// this directory should enforce it.
7+
8+
fn main() {
9+
10+
let s : String = 1; // Error in the middle of line.
11+
12+
let s : String = 1
13+
; // Error before the newline.
14+
15+
let s : String =
16+
1; // Error after the newline.
17+
18+
let s : String = (
19+
); // Error spanning the newline.
20+
}

src/test/ui/json-bom-plus-crlf.stderr

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
{"message":"mismatched types","code":{"code":"E0308","explanation":"
2+
This error occurs when the compiler was unable to infer the concrete type of a
3+
variable. It can occur for several cases, the most common of which is a
4+
mismatch in the expected type that the compiler inferred for a variable's
5+
initializing expression, and the actual type explicitly assigned to the
6+
variable.
7+
8+
For example:
9+
10+
```compile_fail,E0308
11+
let x: i32 = \"I am not a number!\";
12+
// ~~~ ~~~~~~~~~~~~~~~~~~~~
13+
// | |
14+
// | initializing expression;
15+
// | compiler infers type `&str`
16+
// |
17+
// type `i32` assigned to variable `x`
18+
```
19+
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":250,"byte_end":251,"line_start":10,"line_end":10,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"expected type `std::string::String`
20+
found type `{integer}`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":250,"byte_end":251,"line_start":10,"line_end":10,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:10:22: error[E0308]: mismatched types
21+
"}
22+
{"message":"mismatched types","code":{"code":"E0308","explanation":"
23+
This error occurs when the compiler was unable to infer the concrete type of a
24+
variable. It can occur for several cases, the most common of which is a
25+
mismatch in the expected type that the compiler inferred for a variable's
26+
initializing expression, and the actual type explicitly assigned to the
27+
variable.
28+
29+
For example:
30+
31+
```compile_fail,E0308
32+
let x: i32 = \"I am not a number!\";
33+
// ~~~ ~~~~~~~~~~~~~~~~~~~~
34+
// | |
35+
// | initializing expression;
36+
// | compiler infers type `&str`
37+
// |
38+
// type `i32` assigned to variable `x`
39+
```
40+
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":310,"byte_end":311,"line_start":12,"line_end":12,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"expected type `std::string::String`
41+
found type `{integer}`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":310,"byte_end":311,"line_start":12,"line_end":12,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:12:22: error[E0308]: mismatched types
42+
"}
43+
{"message":"mismatched types","code":{"code":"E0308","explanation":"
44+
This error occurs when the compiler was unable to infer the concrete type of a
45+
variable. It can occur for several cases, the most common of which is a
46+
mismatch in the expected type that the compiler inferred for a variable's
47+
initializing expression, and the actual type explicitly assigned to the
48+
variable.
49+
50+
For example:
51+
52+
```compile_fail,E0308
53+
let x: i32 = \"I am not a number!\";
54+
// ~~~ ~~~~~~~~~~~~~~~~~~~~
55+
// | |
56+
// | initializing expression;
57+
// | compiler infers type `&str`
58+
// |
59+
// type `i32` assigned to variable `x`
60+
```
61+
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":374,"byte_end":375,"line_start":16,"line_end":16,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":"expected struct `std::string::String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"expected type `std::string::String`
62+
found type `{integer}`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":374,"byte_end":375,"line_start":16,"line_end":16,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":"1.to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:16:1: error[E0308]: mismatched types
63+
"}
64+
{"message":"mismatched types","code":{"code":"E0308","explanation":"
65+
This error occurs when the compiler was unable to infer the concrete type of a
66+
variable. It can occur for several cases, the most common of which is a
67+
mismatch in the expected type that the compiler inferred for a variable's
68+
initializing expression, and the actual type explicitly assigned to the
69+
variable.
70+
71+
For example:
72+
73+
```compile_fail,E0308
74+
let x: i32 = \"I am not a number!\";
75+
// ~~~ ~~~~~~~~~~~~~~~~~~~~
76+
// | |
77+
// | initializing expression;
78+
// | compiler infers type `&str`
79+
// |
80+
// type `i32` assigned to variable `x`
81+
```
82+
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":430,"byte_end":438,"line_start":18,"line_end":19,"column_start":22,"column_end":6,"is_primary":true,"text":[{"text":" let s : String = (","highlight_start":22,"highlight_end":23},{"text":" ); // Error spanning the newline.","highlight_start":1,"highlight_end":6}],"label":"expected struct `std::string::String`, found ()","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"expected type `std::string::String`
83+
found type `()`","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:18:22: error[E0308]: mismatched types
84+
"}
85+
{"message":"aborting due to 4 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 4 previous errors
86+
"}

0 commit comments

Comments
 (0)