-
Notifications
You must be signed in to change notification settings - Fork 12.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Separate impl items from the parent impl #37660
Commits on Nov 16, 2016
-
refactor Visitor into ItemLikeVisitor and intravisit::Visitor
There are now three patterns (shallow, deep, and nested visit). These are described in detail on the docs in `itemlikevisit::ItemLikeVisitor`.
Configuration menu - View commit details
-
Copy full SHA for 36fbf8c - Browse repository at this point
Copy the full SHA 36fbf8cView commit details -
separate impl-items from the impl in the HIR
This commit does not change how the incremental accounting is done, so changes (or accessses) to an impl-item are still tagged to the enclosing impl. This commits adds the "main guts" of this change. It does not build on its own.
Configuration menu - View commit details
-
Copy full SHA for b889259 - Browse repository at this point
Copy the full SHA b889259View commit details -
fallout from separating impl-items from impls
Basically adding `visit_impl_item` in various places and so forth.
Configuration menu - View commit details
-
Copy full SHA for 3fd67eb - Browse repository at this point
Copy the full SHA 3fd67ebView commit details -
Configuration menu - View commit details
-
Copy full SHA for eeb45c7 - Browse repository at this point
Copy the full SHA eeb45c7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7918299 - Browse repository at this point
Copy the full SHA 7918299View commit details -
Configuration menu - View commit details
-
Copy full SHA for ae8cb22 - Browse repository at this point
Copy the full SHA ae8cb22View commit details -
move the impl-params-constrained check out of collect
This helps with incr. comp. because otherwise the Collect(Impl) check winds up touching all of the impl items; since Collect(Impl) also produces the types for the impl header, this creates a polluted graph where the impl types depend on the impl items.
Configuration menu - View commit details
-
Copy full SHA for 4a4c61b - Browse repository at this point
Copy the full SHA 4a4c61bView commit details -
move
convert_impl_item
into the main loopThis is better because the edges will be accounted to the impl item itself
Configuration menu - View commit details
-
Copy full SHA for 29a39ab - Browse repository at this point
Copy the full SHA 29a39abView commit details -
move duplicate checking into TypeCheck
This completes the effort to not touch the impl-items during `Collect(Impl)`.
Configuration menu - View commit details
-
Copy full SHA for 4df5288 - Browse repository at this point
Copy the full SHA 4df5288View commit details -
This allows you to enable *all* nested visits in a future-compatible sort of way. Moreover, if you choose to override the `visit_nested` methods yourself, you can "future-proof" against omissions by overriding `nested_visit_map` to panic.
Configuration menu - View commit details
-
Copy full SHA for 26d1500 - Browse repository at this point
Copy the full SHA 26d1500View commit details -
Configuration menu - View commit details
-
Copy full SHA for 629f5ff - Browse repository at this point
Copy the full SHA 629f5ffView commit details
Commits on Nov 17, 2016
-
when creating an AssociatedItem, read data from impl, not impl item
Before, when we created an AssociatedItem for impl item X, we would read the impl item itself. Now we instead load up the impl I that contains X and read the data from the `ImplItemRef` for X; actually, we do it for all impl items in I pre-emptively. This kills the last source of edges between a method X and a call to a method Y defined in the same impl. Fixes rust-lang#37121
Configuration menu - View commit details
-
Copy full SHA for 34c361c - Browse repository at this point
Copy the full SHA 34c361cView commit details -
move impl wf check so they occur earlier
Needed to keep coherence from freaking out.
Configuration menu - View commit details
-
Copy full SHA for c17be9e - Browse repository at this point
Copy the full SHA c17be9eView commit details -
hash the contents of impl-item-ref by adding them to visitor
Also simplify some of the `ty::AssociatedItem` representation, in particular by folding `has_value` into `hir::Defaultness`
Configuration menu - View commit details
-
Copy full SHA for b10b981 - Browse repository at this point
Copy the full SHA b10b981View commit details -
fix oversight in closure translation
(Unrelated to this PR series)
Configuration menu - View commit details
-
Copy full SHA for b8116da - Browse repository at this point
Copy the full SHA b8116daView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e844ad - Browse repository at this point
Copy the full SHA 4e844adView commit details -
canonicalize base incremental path on windows
This sidesteps problems with long paths because the canonical path includes the "magic long path prefix" on Windows.
Configuration menu - View commit details
-
Copy full SHA for ab79438 - Browse repository at this point
Copy the full SHA ab79438View commit details -
Configuration menu - View commit details
-
Copy full SHA for c938007 - Browse repository at this point
Copy the full SHA c938007View commit details