- 12 11月, 2016 40 次提交
-
-
由 bors 提交于
Rollup of 30 pull requests - Successful merges: #37190, #37368, #37481, #37503, #37527, #37535, #37551, #37584, #37600, #37613, #37615, #37659, #37662, #37669, #37682, #37688, #37690, #37692, #37693, #37694, #37695, #37696, #37698, #37699, #37705, #37708, #37709, #37716, #37724, #37727 - Failed merges: #37640, #37689, #37717
-
由 Eduard-Mihai Burtescu 提交于
Fix invalid src url Fixes #37684. Thanks to @EddyB's help. r? @EddyB
-
由 Eduard-Mihai Burtescu 提交于
Bump verison to 1.15.0 The bootstrap compiler still needs to be updated, but that's waiting on new betas.
-
由 Eduard-Mihai Burtescu 提交于
Mem urls r? @steveklabnik
-
由 Eduard-Mihai Burtescu 提交于
vec: Write the .extend() specialization in cleaner style As far as possible, use regular `default fn` specialization in favour of ad-hoc conditionals. No intentional functional change. Code quality was validated against the same benchmarks that were used in initial trusted len development. This change is prompted by taking impressions from https://github.com/rust-lang/rust/issues/27749#issuecomment-244498705
-
由 Eduard-Mihai Burtescu 提交于
change the `box_free` lang item to accept pointers to unsized types in miri we use the `box_free` lang item as the destructor for `Box` objects, since the function's api matches that of an `fn drop(&mut self)` in a hypothetical `impl<T: ?Sized> Drop for Box<T>` exactly. This works fine except if we insert a check in the `size_of` intrinsic to ensure that it is only called with sized types, since the `box_free` lang item calls that intrinsic. cc @EddyB no clue who to r? here, probably lang team?
-
由 Eduard-Mihai Burtescu 提交于
Avoid unnecessary mk_ty calls in Ty::super_fold_with. This speeds up compilation of several rustc-benchmarks by 1--2% and the workload in #36799 by 5%. r? @EddyB
-
由 Eduard-Mihai Burtescu 提交于
std: Derive `Default` for `Duration`. Discussed in #37546 the libs team reached the conclusion that a default zero duration seems like a reasonable implementation of the `Default` trait. Closes #37546
-
由 Eduard-Mihai Burtescu 提交于
Add missing urls for marker's traits r? @steveklabnik
-
由 Eduard-Mihai Burtescu 提交于
Remove one bounds check from BufReader Very minor thing. Otherwise the optimizer can't be sure that pos <= cap. Added a paranoid debug_assert to ensure correctness instead. CC #37573
-
由 Eduard-Mihai Burtescu 提交于
On fmt string with unescaped `{` note how to escape On cases of malformed format strings where a `{` hasn't been properly escaped, like `println!("{");`, present a NOTE explaining how to escape the `{` char. Fix #34300.
-
由 Eduard-Mihai Burtescu 提交于
ICH: Add test case for if- and if-let-expressions. r? @nikomatsakis
-
由 Eduard-Mihai Burtescu 提交于
ICH: Add test case for call expressions. r? @nikomatsakis
-
由 Eduard-Mihai Burtescu 提交于
Balance the debug output of Lvalue Subslice The current debug output for Lvalue Subslice is not balanced and does not respect the comment[1], which indicates that we use `slice[from:-to] in Python terms.`. In python terms slices which have a start but no end are written as `a[start:]`, so following the comment, I fixed the output accordingly. Grep-ing over the sources, I did not found any test cases checking this subslice debug output. Note, I have not yet tested this change yet, as I am still waiting for the end of LLVM compilation. [1] https://manishearth.github.io/rust-internals-docs/rustc/mir/enum.ProjectionElem.html
-
由 Eduard-Mihai Burtescu 提交于
rustbuild: support RelWithDebInfo for llvm r? @alexcrichton
-
由 Eduard-Mihai Burtescu 提交于
[8/n] rustc: clean up lookup_item_type and remove TypeScheme. _This is part of a series ([prev](https://github.com/rust-lang/rust/pull/37676) | [next]()) of patches designed to rework rustc into an out-of-order on-demand pipeline model for both better feature support (e.g. [MIR-based](https://github.com/solson/miri) early constant evaluation) and incremental execution of compiler passes (e.g. type-checking), with beneficial consequences to IDE support as well. If any motivation is unclear, please ask for additional PR description clarifications or code comments._ <hr> * `tcx.tcache` -> `tcx.item_types` * `TypeScheme` (grouping `Ty` and `ty::Generics`) is removed * `tcx.item_types` entries no longer duplicated in `tcx.tables.node_types` * `tcx.lookup_item_type(def_id).ty` -> `tcx.item_type(def_id)` * `tcx.lookup_item_type(def_id).generics` -> `tcx.item_generics(def_id)` * `tcx.lookup_generics(def_id)` -> `tcx.item_generics(def_id)` * `tcx.lookup_{super_,}predicates(def_id)` -> `tcx.item_{super_,}predicates(def_id)`
-
由 Eduard-Mihai Burtescu 提交于
rustbuild: enable an initial local cargo This allows the initial build of src/bootstrap itself to use a local cargo taken from `configure --local-rust-root`. It was already finding rustc this way, but was always downloading cargo since it didn't know where to find it. It now matches the same logic that `config.rs` will use for stage0, where both rustc and cargo are taken from `CFG_LOCAL_RUST_ROOT`.
-
由 Eduard-Mihai Burtescu 提交于
Add missing urls for FusedIterator and TrustedLen traits r? @steveklabnik
-
由 Eduard-Mihai Burtescu 提交于
Add documentation to some of the unstable intrinsics Part of #34338
-
由 Eduard-Mihai Burtescu 提交于
introduce a `fudge_regions_if_ok` to address false region edges Fixes #37655. r? @EddyB cc @sfackler
-
由 Eduard-Mihai Burtescu 提交于
Add support for ARMv5TE architecture
-
由 Eduard-Mihai Burtescu 提交于
Add foreign formatting directive detection. This teaches `format_args!` how to interpret format printf- and shell-style format directives. This is used in cases where there are unused formatting arguments, and the reason for that *might* be because the programmer is trying to use the wrong kind of formatting string. This was prompted by an issue encountered by simulacrum on the #rust IRC channel. In short: although `println!` told them that they weren't using all of the conversion arguments, the problem was in using printf-syle directives rather than ones `println!` would undertand. Where possible, `format_args!` will tell the programmer what they should use instead. For example, it will suggest replacing `%05d` with `{:0>5}`, or `%2$.*3$s` with `{1:.3$}`. Even if it cannot suggest a replacement, it will explicitly note that Rust does not support that style of directive, and direct the user to the `std::fmt` documentation. ----- **Example**: given: ```rust fn main() { println!("%.*3$s %s!\n", "Hello,", "World", 4); println!("%1$*2$.*3$f", 123.456); } ``` The compiler outputs the following: ```text error: multiple unused formatting arguments --> local/fmt.rs:2:5 | 2 | println!("%.*3$s %s!\n", "Hello,", "World", 4); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: argument never used --> local/fmt.rs:2:30 | 2 | println!("%.*3$s %s!\n", "Hello,", "World", 4); | ^^^^^^^^ note: argument never used --> local/fmt.rs:2:40 | 2 | println!("%.*3$s %s!\n", "Hello,", "World", 4); | ^^^^^^^ note: argument never used --> local/fmt.rs:2:49 | 2 | println!("%.*3$s %s!\n", "Hello,", "World", 4); | ^ = help: `%.*3$s` should be written as `{:.2$}` = help: `%s` should be written as `{}` = note: printf formatting not supported; see the documentation for `std::fmt` = note: this error originates in a macro outside of the current crate error: argument never used --> local/fmt.rs:6:29 | 6 | println!("%1$*2$.*3$f", 123.456); | ^^^^^^^ | = help: `%1$*2$.*3$f` should be written as `{0:1$.2$}` = note: printf formatting not supported; see the documentation for `std::fmt` ```
-
由 Eduard-Mihai Burtescu 提交于
Add changelog for 1.13.0 The diagnostics PRs are excellent and some have excellent examples thanks @jonathandturner @estebank. [Here are some notes about the performance changes during the release. Compile times are improved %40 in some cases](https://gist.github.com/brson/1404c4bf4868d7d108f240a6ecba7f31). This desires to be backported to beta for 1.13. Sadly, the [1.12.1 changelog PR](https://github.com/rust-lang/rust/pull/37317) has not merged to master yet, and is sitting in a [rollup PR](https://github.com/rust-lang/rust/pull/37597). r? @rust-lang/lang @rust-lang/compiler @rust-lang/libs @rust-lang/core
-
由 Eduard-Mihai Burtescu 提交于
Move all Linux/OSX CI infastructure to Travis This commit configures our `.travis.yml` to test the full suite of tests we have on Buildbot right now. A whole mess of docker images are added to the `src/ci` directory which represent all the build environments for each configuration. Each of these environments is then configured in `.travis.yml` to run on the auto branch. Note that the full matrix of tests aren't intended to be run on all PRs. Instead, we continue to run only one entry in the matrix, forcing all others to finish quickly. Only the `auto` branch should run the full matrix of builds. Also note that the infrastructure hasn't quite been allocated yet to the rust-lang/rust repository, so everything is disabled for now except for the one build that happens on PRs. Once that infrastructure is allocated though we can enable this and let it fly! Notable modifications from the current test suite today: * Android tests are run in rustbuild instead of the makefiles, for whatever reason I couldn't get the makefiles to work on Travis. * A debuginfo test was updated to work with the current version of the Android NDK. * Some dependencies in `mk/tests.mk` were fixed to allow running tests in parallel.
-
由 Eduard-Mihai Burtescu 提交于
Replace syntax's SmallVector with AccumulateVec This adds a new type to data_structures, `SmallVec`, which wraps `AccumulateVec` with support for re-allocating onto the heap (`SmallVec::reserve`). `SmallVec` is then used to replace the implementation of `SmallVector` in libsyntax. r? @EddyB Fixes #37371. Using `SmallVec` instead of libsyntax's `SmallVector` will provide the `N = 2/4` case easily (just needs a few more `Array` impls). cc @nnethercote, probably interested in this area
-
由 Eduard-Mihai Burtescu 提交于
Graph Changes General cleanup and adding a few methods that I want to use in Clippy. Need somebody to bikeshed names.
-
由 Eduard-Mihai Burtescu 提交于
Add Error implementation for std::sync::mpsc::RecvTimeoutError. Fixes https://github.com/rust-lang/rust/issues/37525.
-
由 Eduard-Mihai Burtescu 提交于
Remove remark about poor code style The current wording [seems to be confusing](https://www.reddit.com/r/rust/comments/5aat03/why_is_implementing_traits_on_primitive_types/). As an explanation when and why this could be considered as poor style would go beyond of the scope of this chapter I suggest to remove this remark.
-
由 Eduard-Mihai Burtescu 提交于
Don't provide hint to add lifetime on impl items ``` rust use std::str::FromStr; pub struct Foo<'a> { field: &'a str, } impl<'a> FromStr for Foo<'a> { type Err = (); fn from_str(path: &str) -> Result<Self, ()> { Ok(Foo { field: path }) } } ``` would give the following hint: ``` nocode help: consider using an explicit lifetime parameter as shown: fn from_str(path: &'a str) -> Result<Self, ()> --> <anon>:9:5 | 9 | fn from_str(path: &str) -> Result<Self, ()> { | ^ ``` which is never correct, since then there will be a lifetime mismatch between the `impl` and the trait. Remove this hint for all `impl` items. Re: #37363.
-
由 Eduard-Mihai Burtescu 提交于
Update testing.md to reflect changes to cargo new `cargo new` now creates a `src/lib.rs` with a `tests` module by default. I've updated the earlier examples in this doc to reflect this. However, I don't know how we want to approach the "introduction" to idiomatic testing that follows in "the tests module" section. I _think_ it should be broken apart, with the module concept being introduced early on, and the `super` concept being addressed when we hit the `add_two` example. I'd like to get agreement on that being the right approach before I do it though. I _also_ removed the `#fn main() {}` hidden at the beginning of each example, as these cause Rust Playground to not treat the file as a set of tests that it can run. Removing it _should_ cause Rust Playground to display a "Test >" button in the top left when a user runs the code, which will allow them to see the test runner output.
-
由 Eduard-Mihai Burtescu 提交于
rustdoc: add line breaks to where clauses a la rustfmt Much like my last PR for rustdoc (#36679), this adds line breaks to certain statements based on their line length. Here the focus was on where clauses. Some examples: - [Where clause in a trait function](https://shiva.icesoldier.me/custom-std/std/iter/trait.Iterator.html?search=#method.unzip) (also in the trait header block at the top of the page) - [Where clause on a bare function](https://shiva.icesoldier.me/doc-custom2/petgraph/visit/fn.depth_first_search.html) - [Where clauses in trait impls on a struct](https://shiva.icesoldier.me/custom-std/std/collections/struct.HashMap.html) (scroll to the bottom) These are regularly not on their own line, but will be given their own line now if their "prefix text" doesn't give them enough room to sensibly print their constraints. HashMap's trait impls provide some examples of both behaviors. The libstd links above are the whole docs rendered with this, and the "bare function" link above is in another set that pulls some notable crates together. `petgraph` was the one that brought this request up, and that collection also includes [itertools](https://shiva.icesoldier.me/doc-custom2/itertools/trait.Itertools.html) which provided an easy sample to test with. r? @GuillaumeGomez
-
由 bors 提交于
Fix terminfo database search path This is more consistent with what every other program does, I happened to have `TERMINFO` set as `/usr/share/terminfo` but had the actual database in `~/.terminfo`, regardless of that every other terminfo/ncurses based software picked up the one in the home correctly. This just puts the path in `TERMINFO` at the top of the search paths, and moves the home checking to the default search paths section.
-
由 Guillaume Gomez 提交于
-
由 bors 提交于
bootstrap: rust-docs is a default package This will cause it to be built as part of `make dist`. This is blocking betas and nightlies. r? @alexcrichton
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
This will cause it to be built as part of `make dist`.
-
由 Esteban Küber 提交于
On cases of malformed format strings where a `{` hasn't been properly escaped, like `println!("{");`, present a note explaining how to escape the `{` char.
-
由 Guillaume Gomez 提交于
-
由 nwin 提交于
-
由 bors 提交于
Group unused import warnings per import list Given a file ``` rust use std::collections::{BinaryHeap, BTreeMap, BTreeSet}; fn main() {} ``` Show a single warning, instead of three for each unused import: ``` nocode warning: unused imports, #[warn(unused_imports)] on by default --> file2.rs:1:24 | 1 | use std::collections::{BinaryHeap, BTreeMap, BTreeSet}; | ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ``` Include support for lints pointing at `MultilineSpan`s, instead of just `Span`s. Fixes #16132.
-