mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-31 22:41:50 +00:00
Unbreak tests/ui/lint/use_suggestion_json.rs
.
PR #82639 changed UI tests so `-Z unstable-options` aren't passed to UI tests by default. This completely broke `use_suggestion_json.rs`, which uses the unstable `--error-format=pretty-json` option. The expected output went from 400 lines of pretty JSON error messages to a single JSON error saying "`--error-format=pretty-json` is unstable"! This commit adds `-Z unstable-options` back and reinstates the old expected output, with some minor changes to account for shifted spans and slightly JSON output changes since then.
This commit is contained in:
parent
453fface11
commit
f5a09a9e1d
@ -1,6 +1,6 @@
|
||||
// ignore-windows
|
||||
// ignore-sgx std::os::fortanix_sgx::usercalls::alloc::Iter changes compiler suggestions
|
||||
// compile-flags: --error-format pretty-json --json=diagnostic-rendered-ansi
|
||||
// compile-flags: --error-format pretty-json --json=diagnostic-rendered-ansi -Z unstable-options
|
||||
|
||||
// The output for humans should just highlight the whole span without showing
|
||||
// the suggested replacement, but we also want to test that suggested
|
||||
|
@ -1,3 +1,423 @@
|
||||
{"$message_type":"diagnostic","message":"`--error-format=pretty-json` is unstable","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;9merror\u001b[0m\u001b[0m\u001b[1m: `--error-format=pretty-json` is unstable\u001b[0m
|
||||
{
|
||||
"$message_type": "diagnostic",
|
||||
"message": "cannot find type `Iter` in this scope",
|
||||
"code": {
|
||||
"code": "E0412",
|
||||
"explanation": "A used type name is not in scope.
|
||||
|
||||
"}
|
||||
Erroneous code examples:
|
||||
|
||||
```compile_fail,E0412
|
||||
impl Something {} // error: type name `Something` is not in scope
|
||||
|
||||
// or:
|
||||
|
||||
trait Foo {
|
||||
fn bar(N); // error: type name `N` is not in scope
|
||||
}
|
||||
|
||||
// or:
|
||||
|
||||
fn foo(x: T) {} // type name `T` is not in scope
|
||||
```
|
||||
|
||||
To fix this error, please verify you didn't misspell the type name, you did
|
||||
declare it or imported it into the scope. Examples:
|
||||
|
||||
```
|
||||
struct Something;
|
||||
|
||||
impl Something {} // ok!
|
||||
|
||||
// or:
|
||||
|
||||
trait Foo {
|
||||
type N;
|
||||
|
||||
fn bar(_: Self::N); // ok!
|
||||
}
|
||||
|
||||
// or:
|
||||
|
||||
fn foo<T>(x: T) {} // ok!
|
||||
```
|
||||
|
||||
Another case that causes this error is when a type is imported into a parent
|
||||
module. To fix this, you can follow the suggestion and use File directly or
|
||||
`use super::File;` which will import the types from the parent namespace. An
|
||||
example that causes this error is below:
|
||||
|
||||
```compile_fail,E0412
|
||||
use std::fs::File;
|
||||
|
||||
mod foo {
|
||||
fn some_function(f: File) {}
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
use std::fs::File;
|
||||
|
||||
mod foo {
|
||||
// either
|
||||
use super::File;
|
||||
// or
|
||||
// use std::fs::File;
|
||||
fn foo(f: File) {}
|
||||
}
|
||||
# fn main() {} // don't insert it for us; that'll break imports
|
||||
```
|
||||
"
|
||||
},
|
||||
"level": "error",
|
||||
"spans": [
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 561,
|
||||
"byte_end": 565,
|
||||
"line_start": 12,
|
||||
"line_end": 12,
|
||||
"column_start": 12,
|
||||
"column_end": 16,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": " let x: Iter;",
|
||||
"highlight_start": 12,
|
||||
"highlight_end": 16
|
||||
}
|
||||
],
|
||||
"label": "not found in this scope",
|
||||
"suggested_replacement": null,
|
||||
"suggestion_applicability": null,
|
||||
"expansion": null
|
||||
}
|
||||
],
|
||||
"children": [
|
||||
{
|
||||
"message": "consider importing one of these items",
|
||||
"code": null,
|
||||
"level": "help",
|
||||
"spans": [
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::collections::binary_heap::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::collections::btree_map::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::collections::btree_set::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::collections::hash_map::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::collections::hash_set::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::collections::linked_list::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::collections::vec_deque::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::option::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::path::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::result::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::slice::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
},
|
||||
{
|
||||
"file_name": "$DIR/use_suggestion_json.rs",
|
||||
"byte_start": 538,
|
||||
"byte_end": 538,
|
||||
"line_start": 11,
|
||||
"line_end": 11,
|
||||
"column_start": 1,
|
||||
"column_end": 1,
|
||||
"is_primary": true,
|
||||
"text": [
|
||||
{
|
||||
"text": "fn main() {",
|
||||
"highlight_start": 1,
|
||||
"highlight_end": 1
|
||||
}
|
||||
],
|
||||
"label": null,
|
||||
"suggested_replacement": "use std::sync::mpsc::Iter;
|
||||
|
||||
",
|
||||
"suggestion_applicability": "MaybeIncorrect",
|
||||
"expansion": null
|
||||
}
|
||||
],
|
||||
"children": [],
|
||||
"rendered": null
|
||||
}
|
||||
],
|
||||
"rendered": "\u001b[0m\u001b[1m\u001b[38;5;9merror[E0412]\u001b[0m\u001b[0m\u001b[1m: cannot find type `Iter` in this scope\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0m$DIR/use_suggestion_json.rs:12:12\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m
|
||||
\u001b[0m\u001b[1m\u001b[38;5;12mLL\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let x: Iter;\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9m^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;9mnot found in this scope\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m
|
||||
\u001b[0m\u001b[1m\u001b[38;5;14mhelp\u001b[0m\u001b[0m: consider importing one of these items\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m
|
||||
\u001b[0m\u001b[1m\u001b[38;5;12mLL\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[38;5;10m+ use std::collections::binary_heap::Iter;\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m
|
||||
\u001b[0m\u001b[1m\u001b[38;5;12mLL\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[38;5;10m+ use std::collections::btree_map::Iter;\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m
|
||||
\u001b[0m\u001b[1m\u001b[38;5;12mLL\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[38;5;10m+ use std::collections::btree_set::Iter;\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m
|
||||
\u001b[0m\u001b[1m\u001b[38;5;12mLL\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[38;5;10m+ use std::collections::hash_map::Iter;\u001b[0m
|
||||
\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m
|
||||
\u001b[0m and 8 other candidates\u001b[0m
|
||||
|
||||
"
|
||||
}
|
||||
{
|
||||
"$message_type": "diagnostic",
|
||||
"message": "aborting due to 1 previous error",
|
||||
"code": null,
|
||||
"level": "error",
|
||||
"spans": [],
|
||||
"children": [],
|
||||
"rendered": "\u001b[0m\u001b[1m\u001b[38;5;9merror\u001b[0m\u001b[0m\u001b[1m: aborting due to 1 previous error\u001b[0m
|
||||
|
||||
"
|
||||
}
|
||||
{
|
||||
"$message_type": "diagnostic",
|
||||
"message": "For more information about this error, try `rustc --explain E0412`.",
|
||||
"code": null,
|
||||
"level": "failure-note",
|
||||
"spans": [],
|
||||
"children": [],
|
||||
"rendered": "\u001b[0m\u001b[1mFor more information about this error, try `rustc --explain E0412`.\u001b[0m
|
||||
"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user