- 12 11月, 2015 31 次提交
-
-
由 bors 提交于
`format_args!` doesn't support none Sized types so we should just pass it the references to `left_val` and `right_val`. The following works: ```rust assert!([1, 2, 3][..] == vec![1, 2, 3][..]) ``` So I would expect this to as well: ```rust assert_eq!([1, 2, 3][..], vec![1, 2, 3][..]) ``` But it fails with "error: the trait `core::marker::Sized` is not implemented for the type `[_]` [E0277]" I don't know if this change will have any nasty side effects I don't understand.
-
由 bors 提交于
- Successful merges: #29776, #29785, #29786, #29787 - Failed merges:
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
Fix usage of wrong article in `Result` docs. This is my first rust PR, if something about the process is wrong let me know. As this is a documentation change, I believe the correct highfive line to use is the following: r? @steveklabnik
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
This mostly brings them in line with existing linking convention, but also has some minor re-wording. The text at the top has been re-focused, by starting out with what the prelude does, rather than starting from injecting std. Also, it now mentions that other preludes exist. Part of https://github.com/rust-lang/rust/issues/29369
-
由 Manish Goregaokar 提交于
In previous PRs, I changed the match desugaring to generate more efficient code for ints/chars and the like. But this doesn't help when you're matching strings, ranges, or other crazy complex things (leading to #29740). This commit restructures match desugaring *yet again* to handle that case better -- basically we now degenerate to an if-else-if chain in such cases. ~~Note that this builds on https://github.com/rust-lang/rust/pull/29763 which will hopefully land soon. So ignore the first few commits.~~ landed now r? @Aatch since he's been reviewing the other commits in this series
-
由 bors 提交于
Emits loc, and node count - before and after expansion. E.g., ``` rustc: x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore Lines of code: 32060 Pre-expansion node count: 120205 Post-expansion node count: 482749 ``` r? @nikomatsakis
-
由 bors 提交于
r? @nikomatsakis I went ahead and replaced repeat count with a `Constant`, because it cannot be non-constant to the best of my knowledge.
-
由 Niko Matsakis 提交于
bothered to track down for a regresson test. /me hopes no one notices
-
由 bors 提交于
Closes https://github.com/rust-lang/rust/issues/29746
-
由 Simonas Kazlauskas 提交于
-
由 Danilo Bargen 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Oliver Middleton 提交于
-
由 Steve Klabnik 提交于
-
由 Steve Klabnik 提交于
This mostly brings them in line with existing linking convention, but also has some minor re-wording. The text at the top has been re-focused, by starting out with what the prelude does, rather than starting from injecting std. Also, it now mentions that other preludes exist. Part of https://github.com/rust-lang/rust/issues/29369
-
由 Niko Matsakis 提交于
large matches that fallback to Eq. When we encounter a case where the test being performed does not inform the candidate at all, we just stop testing the candidates at that point, rather than adding the candidate to both outcomes. The former behavior was not WRONG, but it generated a lot of code, whereas this new behavior degenerates to an if-else-if tree. Fixes #29740.
-
由 bors 提交于
- Successful merges: #29677, #29772, #29775, #29777 - Failed merges:
-
由 Manish Goregaokar 提交于
-
由 Nick Cameron 提交于
Emits loc, and node count - before and after expansion. E.g., ``` rustc: x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore Lines of code: 32060 Pre-expansion node count: 120205 Post-expansion node count: 482749 ```
-
由 Manish Goregaokar 提交于
None
-
由 Manish Goregaokar 提交于
It's a bit strange to expect users of `libstd` to require the use of an external crates.io crate to work with standard types. This commit encourages the use `os::raw::c_char` instead, although users are certainly free to use `libc::c_char` if they wish; the test still exists to ensure the two types are identical (though the reported bug only exists on platforms that are not officially tested). Fixes #29774
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
r? @Manishearth cc @AlisdairO Part of #24407
-
由 arcnmx 提交于
-
由 Manish Goregaokar 提交于
-
由 Manish Goregaokar 提交于
Fixes #7526
-
由 arcnmx 提交于
-
由 bors 提交于
The older algorithm was pretty inefficient for big matches. Fixes #29227. (On my computer, MIR construction on this test case goes from 9.9s to 0.025s.) Whereas before we had a loop like: - for all outcomes of the test we are performing - for all candidates - check whether candidate is relevant to outcome We now do: - for all candidates - determine which outcomes the candidate is relevant to Since the number of outcomes in this case is proportional to the number of candidates, the original algorithm turned out to be O(n^2), and the newer one is just O(n). This PR also does some minor speedups by eagerly mirroring all patterns, so that we can just pass around `&Pattern<'tcx>`, which makes cloning cheaper. We could probably go a bit further in this direction. r? @Aatch
-
- 11 11月, 2015 9 次提交
-
-
由 Kohei Hasegawa 提交于
-
由 Oliver Middleton 提交于
format_args! doesn't support none Sized types so we should just pass it the references to left_val and right_val. This fixes `assert_eq!([1, 2, 3][..], vec![1, 2, 3][..])` for example.
-
由 bors 提交于
Hi Rustaceans! This is the secong take on running latest rustfmt on librustc_driver! All fixups made in https://github.com/rust-lang/rust/pull/29033 were done (also rustfmt got better). //cc @nrc
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
`Vec` should not be resized.
-
由 bors 提交于
Moved from #29753. r? @steveklabnik
-
由 bors 提交于
None
-
由 bors 提交于
Fixes #29751.
-
由 bors 提交于
-