Rustc explain Fixes #48041. To make the review easier, I separated tests update to code update. Also, I used this script to generate new ui tests stderr: ```python from os import listdir from os.path import isdir, isfile, join PATH = "src/test/ui" def do_something(path): files = [join(path, f) for f in listdir(path)] for f in files: if isdir(f): do_something(f) continue if not isfile(f) or not f.endswith(".stderr"): continue x = open(f, "r") content = x.read().strip() if "error[E" not in content: continue errors = dict() for y in content.splitlines(): if y.startswith("error[E"): errors[y[6:11]] = True errors = sorted(errors.keys()) if len(errors) < 1: print("weird... {}".format(f)) continue if len(errors) > 1: content += "\n\nYou've got a few errors: {}".format(", ".join(errors)) content += "\nIf you want more information on an error, try using \"rustc --explain {}\"".format(errors[0]) else: content += "\n\nIf you want more information on this error, try using \"rustc --explain {}\"".format(errors[0]) content += "\n" x = open(f, "w") x.write(content) do_something(PATH) ```
18 lines
586 B
Text
18 lines
586 B
Text
error[E0560]: struct `S` has no field named `0b1`
|
|
--> $DIR/numeric-fields.rs:14:15
|
|
|
|
|
14 | let s = S{0b1: 10, 0: 11};
|
|
| ^^^ `S` does not have this field
|
|
|
|
|
= note: available fields are: `0`, `1`
|
|
|
|
error[E0026]: struct `S` does not have a field named `0x1`
|
|
--> $DIR/numeric-fields.rs:17:17
|
|
|
|
|
17 | S{0: a, 0x1: b, ..} => {}
|
|
| ^^^^^^ struct `S` does not have field `0x1`
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
You've got a few errors: E0026, E0560
|
|
If you want more information on an error, try using "rustc --explain E0026"
|