Description
Since #64151 added some new diagnostics, Rocket's UI tests have had mismatches in stderr that I can't seem to fix. In particular these diagnostics include "secondary file" paths that aren't easily normalizable or remappable.
I haven't tried to make a minimal reproduction yet, but this output should illustrate the problem:
error[E0277]: the trait bound `usize: rocket::http::uri::Ignorable<rocket::http::uri::Query>` is not satisfied
- --> $DIR/typed-uri-bad-type.rs:81:34
- |
-81 | uri!(other_q: rest = S, id = _);
- | ^ the trait `rocket::http::uri::Ignorable<rocket::http::uri::Query>` is not implemented for `usize`
- |
- = note: required by `rocket::http::uri::assert_ignorable`
+ --> foo/typed-uri-bad-type.rs:41:16
+ |
+41 | fn other_q(id: usize, rest: S) { }
+ | ^^^^^ the trait `rocket::http::uri::Ignorable<rocket::http::uri::Query>` is not implemented for `usize`
+...
+81 | uri!(other_q: rest = S, id = _);
+ | -------------------------------- in this macro invocation
+ |
+ ::: /home/jeb/code/Rocket/core/http/src/uri/uri_display.rs:467:40
+ |
+467 | pub fn assert_ignorable<P: UriPart, T: Ignorable<P>>() { }
+ | ------------ required by this bound in `rocket::http::uri::assert_ignorable`
(...)
status: exit code: 1
command: "rustc" "tests/ui-fail/typed-uri-bad-type.rs" "-L" "/tmp" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-C" "prefer-dynamic" "-o" "/tmp/typed-uri-bad-type.stage-id" "--remap-path-prefix" "/home/jeb/code/Rocket=/Rocket" "--remap-path-prefix" "tests/ui-fail=foo" "-L" "crate=/home/jeb/code/Rocket/target/debug" "-L" "dependency=/home/jeb/code/Rocket/target/debug/deps" "--extern" "rocket_http=/home/jeb/code/Rocket/target/debug/deps/librocket_http-1faeb9d2934513de.rlib" "--extern" "rocket=/home/jeb/code/Rocket/target/debug/deps/librocket-44cf6b9b35acb885.rlib" "-L" "/tmp/typed-uri-bad-type.stage-id.aux" "-A" "unused"
Here I'm remapping tests/ui-fail
to foo
to demonstrate that --remap-path-prefix
works at all. Remapping /home/jeb/code/Rocket
to /Rocket
is the real goal, because if I can get that to work we should have errors that are identical across build environments. However, it is not actually remapped in the output. Is --remap-path-prefix
intended to apply to these?
My first attempt at this was to update compiletest to normalize $SRC_DIR
(Manishearth/compiletest-rs#198), but that has some problems that I think the --remap-path-prefix
approach would neatly avoid.
Meta
rustc --version --verbose
:
rustc 1.40.0-nightly (1423bec 2019-11-05)
binary: rustc
commit-hash: 1423bec
commit-date: 2019-11-05
host: x86_64-unknown-linux-gnu
release: 1.40.0-nightly
LLVM version: 9.0