Skip to content
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

Smarter integration of projection predicates into trait selection #20297

Closed
nikomatsakis opened this issue Dec 29, 2014 · 4 comments
Closed

Smarter integration of projection predicates into trait selection #20297

nikomatsakis opened this issue Dec 29, 2014 · 4 comments
Labels
A-traits Area: Trait system A-typesystem Area: The type system

Comments

@nikomatsakis
Copy link
Contributor

The current logic that integrates projection predicates into trait selection is somewhat flawed. I made some simplifying choices:

  1. For one thing, it only works if the self type is a projection type, but in reality it should be able to handle any input type. Moreover, there may be multiple projection types in play.
  2. Also, the integration with inference is not particularly smart.
  3. Finally, if there are where clauses that overlap with projections, we currently just choose the where clause every time, but this may influence inference or have other subtle effects.

These all feel a bit like corner cases for now and I think we can get away with leaving things as they are and later coming in with a much smarter trait selection system. It's clear that we're pushing the bounds of the current setup. Trait reform 2.0 anybody?

@jroesch
Copy link
Member

jroesch commented Feb 7, 2015

cc me

@steveklabnik
Copy link
Member

Triage: no idea what's going on with this, and it's very, very old. @nikomatsakis is this still relevant?

@Mark-Simulacrum
Copy link
Member

Is this still relevant? It's a very old issue, and it seems there was some progress judging by the items in GH's log.

@nikomatsakis
Copy link
Contributor Author

This is all still relevant but I feel this issue adds approximately zero value. Closing.

nivkner added a commit to nivkner/rust that referenced this issue Oct 7, 2017
update FIXME(rust-lang#6298) to point to open issue 15020
update FIXME(rust-lang#6268) to point to RFC 811
update FIXME(rust-lang#10520) to point to RFC 1751
remove FIXME for emscripten issue 4563 and include target in `test_estimate_scaling_factor`
remove FIXME(rust-lang#18207) since node_id isn't used for `ref` pattern analysis
remove FIXME(rust-lang#6308) since DST was implemented in rust-lang#12938
remove FIXME(rust-lang#2658) since it was decided to not reorganize module
remove FIXME(rust-lang#20590) since it was decided to stay conservative with projection types
remove FIXME(rust-lang#20297) since it was decided that solving the issue is unnecessary
remove FIXME(rust-lang#27086) since closures do correspond to structs now
remove FIXME(rust-lang#13846) and enable `function_sections` for windows
remove mention of rust-lang#22079 in FIXME(rust-lang#22079) since this is a general FIXME
remove FIXME(rust-lang#5074) since the restriction on borrow were lifted
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-traits Area: Trait system A-typesystem Area: The type system
Projects
None yet
Development

No branches or pull requests

5 participants