Uh oh!
There was an error while loading. Please reload this page.
Expand the "givens" set to cover transitive relations. - #24527
Conversation
nikomatsakis
commented
Apr 17, 2015
bors
commented
Apr 17, 2015
Expand the "givens" set to cover transitive relations. The givens array stores relationships like `'c <= '0` (where `'c` is a free region and `'0` is an inference variable) that are derived from closure arguments. These are (rather hackily) ignored for purposes of inference, preventing spurious errors. The current code did not handle transitive cases like `'c <= '0` and `'0 <= '1`. Fixes#24085. r? @pnkfelix cc @bkoropoff *But* I am not sure whether this fix will have a compile-time hit. I'd like to push to try branch observe cycle times.
bors
commented
Apr 17, 2015
💔 Test failed - try-bsd |
pnkfelix
commented
Apr 17, 2015
@nikomatsakis what timing info were you hoping to extract from the try run? |
bors
commented
Apr 18, 2015
☔ The latest upstream changes (presumably #24209) made this pull request unmergeable. Please resolve the merge conflicts. |
nikomatsakis
commented
Apr 24, 2015
@pnkfelix I guess just an overall cycle time effect. |
steveklabnik
commented
Jun 12, 2015
Is this PR still valid/needed/wanted? |
bkoropoff
commented
Jun 13, 2015
Although I worked around the bug, I would like it to be fixed. On Fri, Jun 12, 2015 at 2:41 PM Steve Klabnik notifications@github.com
|
stores relationships like `'c <= '0` (where `'c` is a free region and `'0` is an inference variable) that are derived from closure arguments. These are (rather hackily) ignored for purposes of inference, preventing spurious errors. The current code did not handle transitive cases like `'c <= '0` and `'0 <= '1`. Fixesrust-lang#24085.
nikomatsakis
commented
Jun 19, 2015
OK, I rebased this branch, and compared it's effect on compilaton time. It seems to be negligible to non-existent, at least when building rustc. |
nikomatsakis
commented
Jun 19, 2015
@bors r+ |
bors
commented
Jun 19, 2015
📌 Commit 29c8653 has been approved by |
nikomatsakis
commented
Jun 19, 2015
For reference, using this branch, compiling librustc and all descendants spent 34.962s in type-checking. On master it took 35.013s. |
Expand the "givens" set to cover transitive relations. The givens array stores relationships like `'c <= '0` (where `'c` is a free region and `'0` is an inference variable) that are derived from closure arguments. These are (rather hackily) ignored for purposes of inference, preventing spurious errors. The current code did not handle transitive cases like `'c <= '0` and `'0 <= '1`. Fixes#24085. r? @pnkfelix cc @bkoropoff *But* I am not sure whether this fix will have a compile-time hit. I'd like to push to try branch observe cycle times.
Expand the "givens" set to cover transitive relations. The givens array
stores relationships like
'c <= '0(where'cis a free region and'0is an inference variable) that are derived from closurearguments. These are (rather hackily) ignored for purposes of inference,
preventing spurious errors. The current code did not handle transitive
cases like
'c <= '0and'0 <= '1. Fixes#24085.r? @pnkfelix
cc @bkoropoff
But I am not sure whether this fix will have a compile-time hit. I'd like to push to try branch observe cycle times.