mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-30 02:33:55 +00:00
5c8170656b
Currently the json-formatted outputs have no way to unambiguously determine which kind of message is being output. A consumer can look for specific fields in the json object (eg "message"), but there's no guarantee that in future some other kind of output will have a field of the same name. This PR adds a `"type"` field to add json outputs which can be used to unambiguously determine which kind of output it is. The mapping is: diagnostic: regular compiler diagnostics artifact: artifact notifications future_incompat: Report of future incompatibility unused_extern: Unused crate warnings/errors This matches the "internally tagged" representation for serde enums.
115 lines
8.1 KiB
Plaintext
115 lines
8.1 KiB
Plaintext
{"type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
|
|
|
|
Erroneous code examples:
|
|
|
|
```compile_fail,E0308
|
|
fn plus_one(x: i32) -> i32 {
|
|
x + 1
|
|
}
|
|
|
|
plus_one(\"Not a number\");
|
|
// ^^^^^^^^^^^^^^ expected `i32`, found `&str`
|
|
|
|
if \"Not a bool\" {
|
|
// ^^^^^^^^^^^^ expected `bool`, found `&str`
|
|
}
|
|
|
|
let x: f32 = \"Not a float\";
|
|
// --- ^^^^^^^^^^^^^ expected `f32`, found `&str`
|
|
// |
|
|
// expected due to this
|
|
```
|
|
|
|
This error occurs when an expression was used in a place where the compiler
|
|
expected an expression of a different type. It can occur in several cases, the
|
|
most common being when calling a function and passing an argument which has a
|
|
different type than the matching type in the function declaration.
|
|
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":606,"byte_end":607,"line_start":16,"line_end":16,"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 `String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":597,"byte_end":603,"line_start":16,"line_end":16,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":607,"byte_end":607,"line_start":16,"line_end":16,"column_start":23,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1; // Error in the middle of line.","highlight_start":23,"highlight_end":23}],"label":null,"suggested_replacement":".to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:16:22: error[E0308]: mismatched types
|
|
"}
|
|
{"type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
|
|
|
|
Erroneous code examples:
|
|
|
|
```compile_fail,E0308
|
|
fn plus_one(x: i32) -> i32 {
|
|
x + 1
|
|
}
|
|
|
|
plus_one(\"Not a number\");
|
|
// ^^^^^^^^^^^^^^ expected `i32`, found `&str`
|
|
|
|
if \"Not a bool\" {
|
|
// ^^^^^^^^^^^^ expected `bool`, found `&str`
|
|
}
|
|
|
|
let x: f32 = \"Not a float\";
|
|
// --- ^^^^^^^^^^^^^ expected `f32`, found `&str`
|
|
// |
|
|
// expected due to this
|
|
```
|
|
|
|
This error occurs when an expression was used in a place where the compiler
|
|
expected an expression of a different type. It can occur in several cases, the
|
|
most common being when calling a function and passing an argument which has a
|
|
different type than the matching type in the function declaration.
|
|
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":666,"byte_end":667,"line_start":18,"line_end":18,"column_start":22,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":22,"highlight_end":23}],"label":"expected `String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":657,"byte_end":663,"line_start":18,"line_end":18,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String = 1","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":667,"byte_end":667,"line_start":18,"line_end":18,"column_start":23,"column_end":23,"is_primary":true,"text":[{"text":" let s : String = 1","highlight_start":23,"highlight_end":23}],"label":null,"suggested_replacement":".to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:18:22: error[E0308]: mismatched types
|
|
"}
|
|
{"type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
|
|
|
|
Erroneous code examples:
|
|
|
|
```compile_fail,E0308
|
|
fn plus_one(x: i32) -> i32 {
|
|
x + 1
|
|
}
|
|
|
|
plus_one(\"Not a number\");
|
|
// ^^^^^^^^^^^^^^ expected `i32`, found `&str`
|
|
|
|
if \"Not a bool\" {
|
|
// ^^^^^^^^^^^^ expected `bool`, found `&str`
|
|
}
|
|
|
|
let x: f32 = \"Not a float\";
|
|
// --- ^^^^^^^^^^^^^ expected `f32`, found `&str`
|
|
// |
|
|
// expected due to this
|
|
```
|
|
|
|
This error occurs when an expression was used in a place where the compiler
|
|
expected an expression of a different type. It can occur in several cases, the
|
|
most common being when calling a function and passing an argument which has a
|
|
different type than the matching type in the function declaration.
|
|
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":730,"byte_end":731,"line_start":22,"line_end":22,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":1,"highlight_end":2}],"label":"expected `String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":720,"byte_end":726,"line_start":21,"line_end":21,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String =","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":731,"byte_end":731,"line_start":22,"line_end":22,"column_start":2,"column_end":2,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":2,"highlight_end":2}],"label":null,"suggested_replacement":".to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:22:1: error[E0308]: mismatched types
|
|
"}
|
|
{"type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
|
|
|
|
Erroneous code examples:
|
|
|
|
```compile_fail,E0308
|
|
fn plus_one(x: i32) -> i32 {
|
|
x + 1
|
|
}
|
|
|
|
plus_one(\"Not a number\");
|
|
// ^^^^^^^^^^^^^^ expected `i32`, found `&str`
|
|
|
|
if \"Not a bool\" {
|
|
// ^^^^^^^^^^^^ expected `bool`, found `&str`
|
|
}
|
|
|
|
let x: f32 = \"Not a float\";
|
|
// --- ^^^^^^^^^^^^^ expected `f32`, found `&str`
|
|
// |
|
|
// expected due to this
|
|
```
|
|
|
|
This error occurs when an expression was used in a place where the compiler
|
|
expected an expression of a different type. It can occur in several cases, the
|
|
most common being when calling a function and passing an argument which has a
|
|
different type than the matching type in the function declaration.
|
|
"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":786,"byte_end":794,"line_start":24,"line_end":25,"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 `String`, found `()`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":777,"byte_end":783,"line_start":24,"line_end":24,"column_start":13,"column_end":19,"is_primary":false,"text":[{"text":" let s : String = (","highlight_start":13,"highlight_end":19}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf.rs:24:22: error[E0308]: mismatched types
|
|
"}
|
|
{"type":"diagnostic","message":"aborting due to 4 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 4 previous errors
|
|
"}
|