-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.Performance or correctness regression from stable to beta.
Milestone
Description
https://github.com/kaegi/aligner
ec2-user@ip-10-145-56-122:~/triage/aligner$ git log -1
commit 89a5e6e62f54fcfe7a9a26d1a969f11c7de11399
Author: kaegi <kaegi.dev@gmail.com>
Date: Sun Mar 12 22:43:07 2017 +0100
Bump version to 0.1.4
ec2-user@ip-10-145-56-122:~/triage/aligner$ rustc +beta -Vv
rustc 1.17.0-beta.2 (b7c276653 2017-03-20)
binary: rustc
commit-hash: b7c27665307704a9b158fe242e88e83914029415
commit-date: 2017-03-20
host: x86_64-unknown-linux-gnu
release: 1.17.0-beta.2
LLVM version: 3.9
101 ec2-user@ip-10-145-56-122:~/triage/aligner$ cargo +beta test
Compiling ascii v0.7.1
Compiling cfg-if v0.1.0
Compiling odds v0.2.25
Compiling rustc-demangle v0.1.4
Compiling unicode-segmentation v1.1.0
Compiling bitflags v0.8.0
Compiling vec_map v0.7.0
Compiling ansi_term v0.9.0
Compiling winapi-build v0.1.1
Compiling nodrop v0.1.9
Compiling combine v2.3.1
Compiling strsim v0.6.0
Compiling arrayvec v0.3.20
Compiling unicode-width v0.1.4
Compiling gcc v0.3.43
Compiling libc v0.2.21
Compiling dbghelp-sys v0.2.0
Compiling backtrace v0.3.0
Compiling winapi v0.2.8
Compiling atty v0.2.2
Compiling term_size v0.2.3
Compiling rand v0.3.15
Compiling time v0.1.36
Compiling clap v2.21.1
Compiling backtrace-sys v0.1.10
Compiling kernel32-sys v0.2.2
Compiling pbr v1.0.0-alpha.2
error[E0283]: type annotations required: cannot resolve `std::string::String: std::convert::AsRef<_>`
--> /home/ec2-user/.cargo/registry/src/github.com-1ecc6299db9ec823/pbr-1.0.0-alpha.2/src/pb.rs:378:64
|
378 | base = base + repeat!(self.bar_current.as_ref(), curr_count - 1) +
| -------------------------^^^^^^------------------- in this macro invocation
error: aborting due to previous error
error: Could not compile `pbr`.
Build failed, waiting for other jobs to finish...
error: build failed
cc @kaegi
Metadata
Metadata
Assignees
Labels
T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.Performance or correctness regression from stable to beta.
Type
Projects
Relationships
Development
Select code repository
Activity
alexcrichton commentedon Mar 31, 2017
This affects https://github.com/GGist/bip-rs/tree/master/bip_metainfo at 2e7b786ed48422b48b2e5d4679d411dd894d5c95 as well
cc @GGist
alexcrichton commentedon Mar 31, 2017
This affects checksums as well
cc @nabijaczleweli
alexcrichton commentedon Mar 31, 2017
This affects dmsort as well
cc @emilk
alexcrichton commentedon Mar 31, 2017
This affects pbr as well
cc @a8m
alexcrichton commentedon Mar 31, 2017
Er sorry everyone cc'd, looks like the regression is with pbr, not other crates.
a8m commentedon Mar 31, 2017
Thanks for letting me know that @alexcrichton. fixed in pbr-1.0.0-alpha.3.
alexcrichton commentedon Apr 1, 2017
Out of curiosity, do you know what change to rust caused this?
a8m commentedon Apr 1, 2017
I didn't dig into this, but here's the fix that solved the issue.
alexcrichton commentedon Apr 1, 2017
Thanks @a8m, sounds like a "standard change that causes inference regressions", but I'm not personally quite ready to close this out.
@rust-lang/libs any thoughts on which PR may have caused this?
aturon commentedon Apr 4, 2017
@alexcrichton I'm not sure which particular PR, but we've definitely been r+-ing a bunch of
AsRef
expansions. I think this is in fact par for the course, and we should close this issue (but also work on mitigation, like the flag to turn off input type inference).alexcrichton commentedon Apr 4, 2017
Actually taking a look at the code, my guess is that this is caused by #40028 which added the second
FromIterator<&T> for String
, whereas before there was onlyFromIterator<&str>
.Good lord that's a subtle inference issue.
nikomatsakis commentedon Apr 4, 2017
@aturon I definitely want to disable input type inference, at least for some traits, if not by default. (I think in retrospect it ought to be something one can opt into on the impl -- i.e., it's kind of a declaration that you promise not to add further impls with the same self type, similar to a negative impl declaration.)
alexcrichton commentedon Apr 12, 2017
Ok we discussed this during libs triage the other day, and the conclusion was to close this. The known regressions have been fixed and we'd otherwise categorize this under "known breakage".
If this comes up over time though please let us know as we're always interested in understanding when changes like this cause problems!