- 27 2月, 2015 1 次提交
-
-
由 Huon Wilson 提交于
-
- 26 2月, 2015 3 次提交
-
-
由 Huon Wilson 提交于
The stability check checks the `PublicItems` map when giving errors if there is a #[stable] item with a public contents that doesn't not have its own stability. Without recording this, struct fields and enum variants will not get errors for e.g. stable modules with unmarked functions internally. This is just improving the compiler's precision to give the standard library developers more information earlier. E.g. #![staged_api] #![feature(staged_api)] #![crate_type = "lib"] #[stable(feature = "rust1", since = "1.0.0")] pub struct Foo { pub x: i32 } #[stable(feature = "rust1", since = "1.0.0")] pub mod bar { pub fn baz() {} } Without the patch it gives: test.rs:12:5: 12:20 error: This node does not have a stability attribute test.rs:12 pub fn baz() {} ^~~~~~~~~~~~~~~ error: aborting due to previous error With the patch it gives: test.rs:7:9: 7:15 error: This node does not have a stability attribute test.rs:7 pub x: i32 ^~~~~~ test.rs:12:5: 12:20 error: This node does not have a stability attribute test.rs:12 pub fn baz() {} ^~~~~~~~~~~~~~~ error: aborting due to 2 previous errors
-
由 Huon Wilson 提交于
We were recording stability attributes applied to fields in the compiler, and even annotating it in the libs, but the compiler didn't actually do the checks to give errors/warnings in user crates.
-
由 bors 提交于
-
- 25 2月, 2015 36 次提交
-
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
Turn `unsafe_no_drop_flag` back into a gated-feature. Fix #22173
-
由 Manish Goregaokar 提交于
Currently we have a `set_mode` mutator, so this just adds the pairing of a `mode` accessor to read the value. Closes #22738
-
由 Manish Goregaokar 提交于
If the filename for a path is `None` then we know that the creation of the parent directory created the whole path so there's no need to retry the call to `create_dir`. Closes #22737
-
由 Manish Goregaokar 提交于
Specifically, the following actions were takend: * The `copy_memory` and `copy_nonoverlapping_memory` functions to drop the `_memory` suffix (as it's implied by the functionality). Both functions are now marked as `#[stable]`. * The `set_memory` function was renamed to `write_bytes` and is now stable. * The `zero_memory` function is now deprecated in favor of `write_bytes` directly. * The `Unique` pointer type is now behind its own feature gate called `unique` to facilitate future stabilization. [breaking-change]
-
由 Manish Goregaokar 提交于
This commit moves `std::env` away from the `std::old_io` error type as well as the `std::old_path` module. Methods returning an error now return `io::Error` and methods consuming or returning paths use `std::path` instead of `std::old_path`. This commit does not yet mark these APIs as `#[stable]`. This commit also migrates `std::old_io::TempDir` to `std::fs::TempDir` with essentially the exact same API. This type was added to interoperate with the new path API and has its own `tempdir` feature. Finally, this commit reverts the deprecation of `std::os` APIs returning the old path API types. This deprecation can come back once the entire `std::old_path` module is deprecated. [breaking-change]
-
由 Manish Goregaokar 提交于
This commit removes many unnecessary `unsafe impl` blocks as well as pushing the needed implementations to the lowest level possible. I noticed that the bounds for `RwLock` are a little off when reviewing #22574 and wanted to ensure that we had our story straight on these implementations.
-
由 Manish Goregaokar 提交于
r? @Gankro
-
由 Manish Goregaokar 提交于
The recent commit on liblibc for nacl break the compilation for OpenBSD (and Bitrig too, I think). The problem is `ino_t` come from another block too now. This patch remove the extra declaration. ``` .../src/liblibc/lib.rs:98:9: 98:37 error: a type named `ino_t` has already been imported in this module [E0251] .../src/liblibc/lib.rs:98 pub use types::os::arch::posix01::*; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: aborting due to previous error ``` @dhuseby do you have this problem too ? and if yes, does this patch correct it ?
-
由 Manish Goregaokar 提交于
Two changes: 1. Make traits with assoc types invariant w/r/t their inputs. 2. Fully normalize parameter environments, including any region variables (which were being overlooked). The former supports the latter, but also just seems like a reasonably good idea. Fixes #21750 cc @edwardw r? @pnkfelix
-
由 Manish Goregaokar 提交于
According to #22650 and bb0bbf63 the link changed. I think this should fix the link on http://doc.rust-lang.org/#faqs
-
由 Manish Goregaokar 提交于
Rather than stabilize on the current API, we're going to punt this concern to crates.io, to allow for faster iteration. [breaking-change]
-
由 Manish Goregaokar 提交于
r? @steveklabnik
-
由 bors 提交于
This is a fix for #20300 though as a side-sweep it fixes a number of stack overflows because it integrates cycle detection into the conversion process. I didn't go through and retest everything. The tricky part here is that in some cases we have to go find the information we need from the AST -- we can't use the converted form of the where-clauses because we often have to handle something like `T::Item` *while converting the where-clauses themselves*. Since this is also not a fixed-point process we can't just try and keep trying to find the best order. So instead I modified the `AstConv` interface to allow you to request the bounds for a type parameter; we'll then do a secondary scan of the where-clauses to figure out what we need. This may create a cycle in some cases, but we have code to catch that. Another approach that is NOT taken by this PR would be to "convert" `T::Item` into a form that does not specify what trait it's using. This then kind of defers the problem of picking the trait till later. That might be a good idea, but it would make normalization and everything else much harder, so I'm holding off on that (and hoping to find a better way for handling things like `i32::T`). This PR also removes "most of" the `bounds` struct from `TypeParameterDef`. Still a little ways to go before `ParamBounds` can be removed entirely -- it's used for supertraits, for example (though those really ought to be converted, I think, to a call to `get_type_parameter_bounds` on `Self` from within the trait definition). cc @jroesch Fixes #20300
-
由 Sébastien Marie 提交于
-
由 Felix S. Klock II 提交于
Fix #22173
-
由 Keegan McAllister 提交于
Fixes #22424.
-
由 Keegan McAllister 提交于
-
由 Keegan McAllister 提交于
Fixes #22423.
-
由 Keegan McAllister 提交于
-
由 Alex Crichton 提交于
This commit moves `std::env` away from the `std::old_io` error type as well as the `std::old_path` module. Methods returning an error now return `io::Error` and methods consuming or returning paths use `std::path` instead of `std::old_path`. This commit does not yet mark these APIs as `#[stable]`. This commit also migrates `std::old_io::TempDir` to `std::fs::TempDir` with essentially the exact same API. This type was added to interoperate with the new path API and has its own `tempdir` feature. Finally, this commit reverts the deprecation of `std::os` APIs returning the old path API types. This deprecation can come back once the entire `std::old_path` module is deprecated. [breaking-change]
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Tobias Bucher 提交于
-
由 Tobias Bucher 提交于
-
由 Raphael Nestler 提交于
According to #22650 and bb0bbf63 the link changed
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
Specifically, the following actions were taken: * The `copy_memory` and `copy_nonoverlapping_memory` functions to drop the `_memory` suffix (as it's implied by the functionality). Both functions are now marked as `#[stable]`. * The `set_memory` function was renamed to `write_bytes` and is now stable. * The `zero_memory` function is now deprecated in favor of `write_bytes` directly. * The `Unique` pointer type is now behind its own feature gate called `unique` to facilitate future stabilization. * All type parameters now are `T: ?Sized` wherever possible and new clauses were added to the `offset` functions to require that the type is sized. [breaking-change]
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
Apply borrowck to fns that appear in const declarations. Fixes #22382. r? @EddyB
-