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

std::prelude::v1 still references old_path and old_io #23377

Closed
lilyball opened this issue Mar 15, 2015 · 2 comments · Fixed by #23470
Closed

std::prelude::v1 still references old_path and old_io #23377

lilyball opened this issue Mar 15, 2015 · 2 comments · Fixed by #23470
Milestone

Comments

@lilyball
Copy link
Contributor

std::prelude::v1 is still importing items from std::old_path and std::old_io, which are both now deprecated. The prelude should be updated to import the relevant items from std::path and std::io instead. std::prelude::v1 is already marked stable, which seems like a mistake given that it contained these old items. We could transition to a new std::prelude::v2, but it seems odd to do that before Rust 1.0, so I think we should accept that it was incorrectly stabilized and modify std::prelude::v1.

/cc @alexcrichton

@lilyball
Copy link
Contributor Author

Since std::prelude::v1 still re-exports std::old_io::Writer it turns out that you cannot use the write!() macro after importing std::io::prelude::* (or std::io::Write) on a type that implements both std::old_io::Writer and std::io::Write as it results in an ambiguous call to write_fmt(). An example of this is Vec<u8>.

@pnkfelix
Copy link
Member

1.0 beta, P-backcompat-libs. ( @alexcrichton says there's a PR in the queue.)

@pnkfelix pnkfelix added this to the 1.0 beta milestone Mar 19, 2015
alexcrichton added a commit to alexcrichton/rust that referenced this issue Mar 21, 2015
This commit removes the reexports of `old_io` traits as well as `old_path` types
and traits from the prelude. This functionality is now all deprecated and needs
to be removed to make way for other functionality like `Seek` in the `std::io`
module (currently reexported as `NewSeek` in the io prelude).

Closes rust-lang#23377
Closes rust-lang#23378
bors added a commit that referenced this issue Mar 21, 2015
This commit removes the reexports of `old_io` traits as well as `old_path` types
and traits from the prelude. This functionality is now all deprecated and needs
to be removed to make way for other functionality like `Seek` in the `std::io`
module (currently reexported as `NewSeek` in the io prelude).

Closes #23377
Closes #23378
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants