Test exercising cyclic structure in std::collections#27185
Merged
bors merged 1 commit intorust-lang:masterfrom Jul 22, 2015
Merged
Test exercising cyclic structure in std::collections#27185bors merged 1 commit intorust-lang:masterfrom
std::collections#27185bors merged 1 commit intorust-lang:masterfrom
Conversation
…ions` (as much as is possible; e.g. things like `EnumSet` and `BitVec` do not really support carrying references at all, so trying to represent cyclic structure within them dooes not really make sense.)
Contributor
|
(rust_highfive has picked a reviewer for you, use r? to override) |
pnkfelix
added a commit
to pnkfelix/rust
that referenced
this pull request
Jul 21, 2015
In particular `LinkedList` and `RawTable` (the backing representation for `HashMap` and `HashSet`). This is to get the test from PR rust-lang#27185 building.
Member
Contributor
There was a problem hiding this comment.
Note that VecMap is slated for deprecation
Contributor
There was a problem hiding this comment.
And also it's literally just a Vec so I can't imagine any possible interesting analysis here.
Collaborator
bors
added a commit
that referenced
this pull request
Jul 22, 2015
This test attempts to exercise cyclic structure in much of `std::collections` (as much as is possible; e.g. things like `EnumSet` and `BitVec` do not really support carrying references at all, so trying to represent cyclic structure within them dooes not really make sense.) This work should land before we make future revisions to `dropck`; that is, I am attempting to catch potential regressions to cases where we supported cyclic structure circa Rust 1.2.
Collaborator
pnkfelix
added a commit
to pnkfelix/rust
that referenced
this pull request
Oct 6, 2015
I needed it in `RawVec`, `Vec`, and `TypedArena` for `rustc` to bootstrap; but of course that alone was not sufficient for `make check`. Later I added `unsafe_destructor_blind_to_params` to collections, in particular `LinkedList` and `RawTable` (the backing representation for `HashMap` and `HashSet`), to get the regression tests exercising cyclic structure from PR rust-lang#27185 building. ---- Note that the feature is `dropck_parametricity` (which is not the same as the attribute's name). We will almost certainly vary our strategy here in the future, so it makes some sense to have a not-as-ugly name for the feature gate. (The attribute name was deliberately selected to be ugly looking.)
bors
added a commit
that referenced
this pull request
Oct 9, 2015
Major revision to the dropck_legal_cycles test. 1. Added big comment block explaining the test framework. 2. Added tests exericising Rc and Arc. This was inspired by a comment from eefriedman on PR #28861. 3. Made the cycle-detection not issue false-positives on acyclic dags. Doing this efficiently required revising the framework; instead of visiting all children (i.e. doing a traversal), now each test is responsible for supplying the path that will act as a witness to the cycle. Luckily for me, all of the pre-existing tests worked with a trivial path built from "always tke your first left", but new tests I added did require other input paths (i.e., "first turn right, then left". (The path representation is a bit-string and its branches are n-ary, not word phrases and binary branches as you might think from the outline above.) cc PR #27185
pnkfelix
added a commit
to pnkfelix/rust
that referenced
this pull request
Oct 14, 2015
I needed it in `RawVec`, `Vec`, and `TypedArena` for `rustc` to bootstrap; but of course that alone was not sufficient for `make check`. Later I added `unsafe_destructor_blind_to_params` to collections, in particular `LinkedList` and `RawTable` (the backing representation for `HashMap` and `HashSet`), to get the regression tests exercising cyclic structure from PR rust-lang#27185 building. ---- Note that the feature is `dropck_parametricity` (which is not the same as the attribute's name). We will almost certainly vary our strategy here in the future, so it makes some sense to have a not-as-ugly name for the feature gate. (The attribute name was deliberately selected to be ugly looking.)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This test attempts to exercise cyclic structure in much of
std::collections(as much as is possible; e.g. things like
EnumSetandBitVecdo not really support carrying references at all, so trying to represent cyclic structure within them dooes not really make sense.)This work should land before we make future revisions to
dropck; that is, I am attempting to catch potential regressions to cases where we supported cyclic structure circa Rust 1.2.