# Setting our vision for the 2017 cycle

**URL:** <https://internals.rust-lang.org/t/setting-our-vision-for-the-2017-cycle/3958>\
**Category:** Uncategorized\
**Created:** [September 1, 2016, 6:03pm UTC](https://internals.rust-lang.org/t/setting-our-vision-for-the-2017-cycle/3958 "2016-09-01T18:03:07Z")\
**Posts on this page:** 1\
**Showing post:** 64

<div class="post-metadata">

**Author:** ![stebalien](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/stebalien/32/228_2.png) [@stebalien](https://internals.rust-lang.org/u/stebalien)\
**Post date:** [September 2, 2016, 3:13am UTC](https://internals.rust-lang.org/t/setting-our-vision-for-the-2017-cycle/3958/64 "2016-09-02T03:13:10Z")

</div>

A fix for type inference regressions. It should be possible for crates to record fully qualified function names somewhere and use these when type inference fails.

1. All packaged crates (e.g., on [crates.io](http://crates.io)) should include this information so that rust upgrades never break type inference for dependencies.
2. Rust could also store this information in the `target` directory and provide an option to “fix” one’s code on upgrade. Alternatively, it could store it in some file analogous to `Cargo.lock`. That way, it could be checked into version control so that anyone downloading the code can benefit from it.

IMO, this would cover most cases. However, crater should probably turn this feature off so we can avoid introducing type inference regressions in the first place when possible.

This isn’t quite as straightforward as it appears as plugins aren’t deterministic however, most plugins use fully qualified function names anyways.

---

_[View the full topic](https://internals.rust-lang.org/t/setting-our-vision-for-the-2017-cycle/3958)._
