about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2015-01-06num: remove deprecated functionality.Huon Wilson-16/+12
2015-01-06Add check to ensure trait bounds are only placed oJared Roesch-26/+59
Add check to ensure trait bounds are only placed on ty_param
2015-01-05More test fixes!Alex Crichton-328/+50
2015-01-06Implement TTY::get_winsize for WindowsPeter Atashian-7/+39
Signed-off-by: Peter Atashian <retep998@gmail.com>
2015-01-05Revert "Remove i suffix in docs"Alex Crichton-1377/+1429
This reverts commit f031671c6ea79391eeb3e1ad8f06fe0e436103fb. Conflicts: src/libcollections/slice.rs src/libcore/iter.rs src/libstd/sync/mpsc/mod.rs src/libstd/sync/rwlock.rs
2015-01-05Test fixesAlex Crichton-53/+0
2015-01-05rollup merge of #20482: kmcallister/macro-reformAlex Crichton-1598/+3445
Conflicts: src/libflate/lib.rs src/libstd/lib.rs src/libstd/macros.rs src/libsyntax/feature_gate.rs src/libsyntax/parse/parser.rs src/libsyntax/show_span.rs src/test/auxiliary/macro_crate_test.rs src/test/compile-fail/lint-stability.rs src/test/run-pass/intrinsics-math.rs src/test/run-pass/tcp-connect-timeouts.rs
2015-01-05rollup merge of #20608: nikomatsakis/assoc-types-method-dispatchAlex Crichton-13/+153
2015-01-05Merge remote-tracking branch 'nrc/sized-2' into rollupAlex Crichton-245/+251
Conflicts: src/liballoc/boxed.rs src/libcollections/btree/map.rs src/libcollections/slice.rs src/libcore/borrow.rs src/libcore/cmp.rs src/libcore/ops.rs src/libstd/c_str.rs src/libstd/collections/hash/map.rs src/libsyntax/parse/obsolete.rs src/test/compile-fail/unboxed-closure-sugar-default.rs src/test/compile-fail/unboxed-closure-sugar-equiv.rs src/test/compile-fail/unboxed-closure-sugar-lifetime-elision.rs src/test/compile-fail/unboxed-closure-sugar-region.rs src/test/compile-fail/unsized3.rs src/test/run-pass/associated-types-conditional-dispatch.rs
2015-01-05Normalize predicates during method winnowing.Niko Matsakis-11/+76
Fixes #20604. Fixes #20378.
2015-01-05Permit method calls based on where clauses.Niko Matsakis-3/+78
2015-01-05rollup merge of #20556: japaric/no-for-sizedAlex Crichton-77/+101
Conflicts: src/libcollections/slice.rs src/libcollections/str.rs src/libcore/borrow.rs src/libcore/cmp.rs src/libcore/ops.rs src/libstd/c_str.rs src/test/compile-fail/issue-19009.rs
2015-01-05rollup merge of #20594: nikomatsakis/orphan-orderedAlex Crichton-53/+80
Conflicts: src/libsyntax/feature_gate.rs
2015-01-05rollup merge of #20583: csouth3/vim-syntaxAlex Crichton-41/+19
The prelude has changed quite a bit since the list that Vim is aware of has been updated. This pull request brings it up to date with `std::prelude`.
2015-01-05rollup merge of #20581: apasel422/extendAlex Crichton-2/+2
2015-01-05rollup merge of #20568: huonw/ungate-AT-globsAlex Crichton-409/+37
These aren't in their final form, but are all aiming to be part of 1.0, so at the very least encouraging usage now to find the bugs is nice. Also, the widespread roll-out of associated types in the standard library indicates they're getting good, and it's lame to have to activate a feature in essentially every crate ever.
2015-01-05rollup merge of #20566: zsiciarz/fix-stdext-docsAlex Crichton-1/+1
2015-01-05rollup merge of #20565: alexcrichton/missing-stabilityAlex Crichton-46/+24
Conflicts: src/libstd/sync/mpsc/mod.rs
2015-01-05rollup merge of #20564: bombless/patch-3Alex Crichton-4/+18
Update keyword list according to https://github.com/rust-lang/rust/blob/master/src/libsyntax/parse/token.rs
2015-01-05rollup merge of #20560: aturon/stab-2-iter-ops-sliceAlex Crichton-362/+574
Conflicts: src/libcollections/slice.rs src/libcore/iter.rs src/libstd/sync/mpsc/mod.rs src/libstd/sync/rwlock.rs
2015-01-05rollup merge of #20554: huonw/mut-patternAlex Crichton-26/+92
Conflicts: src/librustc_typeck/check/_match.rs
2015-01-05rollup merge of #20548: tshepang/fix-ping-pong-benchmarkAlex Crichton-4/+7
Looks like no one has checked this benchmark in a long time: its main thread quit too early, taking down the worker threads before they were done.
2015-01-05rollup merge of #20538: EchoAce/issue-20529Alex Crichton-10/+15
Docs in ```tuple.rs``` edited. Edit: for some reason commits from something else found their way into here.
2015-01-05rollup merge of #20519: ville-h/rwlock-renameAlex Crichton-84/+84
Conflicts: src/libstd/sync/rwlock.rs
2015-01-05rollup merge of #20518: nagisa/weighted-boolAlex Crichton-1/+1
1 in 1 chance to return true always results in true.
2015-01-05rollup merge of #20517: nikomatsakis/safety-issue-19997Alex Crichton-27/+285
Fixes various safety issues. r? @aturon
2015-01-05rollup merge of #20511: csouth3/derive-lintAlex Crichton-13/+14
`#[deriving]` has been changed to `#[derive]`, so we should update this lint accordingly so that it remains consistent with the language. Also register the rename with the LintStore. I've changed the one reference to `raw_pointer_deriving` that occurs in the tests (as well as renamed the file appropriately), but the rest of the `raw_pointer_deriving`s in the Rust codebase will need to wait for a snapshot to be changed because stage0 doesn't know about the new lint name. I'll take care of the remaining renaming after the next snapshot. Closes #20498.
2015-01-05rollup merge of #20507: alexcrichton/issue-20444Alex Crichton-2003/+1023
This commit is an implementation of [RFC 494][rfc] which removes the entire `std::c_vec` module and redesigns the `std::c_str` module as `std::ffi`. [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0494-c_str-and-c_vec-stability.md The interface of the new `CString` is outlined in the linked RFC, the primary changes being: * The `ToCStr` trait is gone, meaning the `with_c_str` and `to_c_str` methods are now gone. These two methods are replaced with a `CString::from_slice` method. * The `CString` type is now just a wrapper around `Vec<u8>` with a static guarantee that there is a trailing nul byte with no internal nul bytes. This means that `CString` now implements `Deref<Target = [c_char]>`, which is where it gains most of its methods from. A few helper methods are added to acquire a slice of `u8` instead of `c_char`, as well as including a slice with the trailing nul byte if necessary. * All usage of non-owned `CString` values is now done via two functions inside of `std::ffi`, called `c_str_to_bytes` and `c_str_to_bytes_with_nul`. These functions are now the one method used to convert a `*const c_char` to a Rust slice of `u8`. Many more details, including newly deprecated methods, can be found linked in the RFC. This is a: [breaking-change] Closes #20444
2015-01-05rollup merge of #20488: ltratt/nondeterministic_tempdirAlex Crichton-31/+45
The previous scheme made it possible for another user/attacker to cause the temporary directory creation scheme to panic. All you needed to know was the pid of the process you wanted to target ('other_pid') and the suffix it was using (let's pretend it's 'sfx') and then code such as this would, in essence, DOS it: for i in range(0u, 1001) { let tp = &Path::new(format!("/tmp/rs-{}-{}-sfx", other_pid, i)); match fs::mkdir(tp, io::USER_RWX) { _ => () } } Since the scheme only 1000 times to create a temporary directory before dying, the next time the attacked process called TempDir::new("sfx") after that would typically cause a panic. Of course, you don't necessarily need an attacker to cause such a DOS: creating 1000 temporary directories without closing any of the previous would be enough to DOS yourself. This patch broadly follows the OpenBSD implementation of mkstemp. It uses the operating system's random number generator to produce random directory names that are impractical to guess (and, just in case someone manages to do that, it retries creating the directory for a long time before giving up; OpenBSD retries INT_MAX times, although 1<<31 seems enough to thwart even the most patient attacker). As a small additional change while the file name is changing, this patch also makes the argument that TempDir::new takes a prefix rather than a suffix. This is because 1) it more closely matches what mkstemp and friends do 2) if you're going to have a deterministic part of a filename, you really want it at the beginning so that shell completion is useful.
2015-01-05rollup merge of #20483: nagisa/rng-copyAlex Crichton-15/+40
* Implement (derive) `Clone` for `ChaChaRng`, `Isaac*Rng`, `StdRng` and `ThreadRng`; * Derive `XorShiftRng` `Clone` implementation instead of implementing it explicitly. `OsRng` is the only Rng which does not implement `Clone` or `Copy` after this patch because of its dependence on `Reader`. r? @huonw I guess?
2015-01-05rollup merge of #20478: SeanTAllen/masterAlex Crichton-2/+2
Number of rustc calls would depending on various circumstances. Two is misleading.
2015-01-05rollup merge of #20472: mneumann/llvm-dragonflyAlex Crichton-1/+1
2015-01-05rollup merge of #20465: nikomatsakis/assoc-types-regions-20303Alex Crichton-109/+330
Treat associated types the same as type parameters when it comes to region bounding. Fixes #20303. Strictly speaking, this is a [breaking-change] (if you are using associated types). You are no longer free to wantonly violate the type system rules by closing associated types into objects without any form of region bound. Instead you should add region bounds like `T::X : 'a`, just as you would with a normal type parameter. r? @aturon
2015-01-05rollup merge of #20434: steveklabnik/five_eyeAlex Crichton-1294/+1392
This takes advantage of integer fallback to stop recomending `i` so much.
2015-01-05rollup merge of #20424: jroesch/tuple-struct-where-clause-fixAlex Crichton-42/+127
Fixes #17904. All the cases that I believe we should support are detailed in the test case, let me know if there is there is any more desired behavior. cc @japaric. r? @nikomatsakis or whoever is appropriate.
2015-01-05rollup merge of #20258: sanxiyn/show-span-2Alex Crichton-12/+64
2015-01-05rollup merge of #20197: pczarn/ring_buf-collections-reformAlex Crichton-22/+307
Part of collections reform part 1 and 2, #18424 and #19986 * shrink_to_fit * swap_back_remove * swap_front_remove * truncate * resize
2015-01-05rollup merge of #20099: P1start/parse-more-macro-opsAlex Crichton-5/+53
Closes #20093.
2015-01-05rollup merge of #20092: barosl/rustdoc-line-number-clickableAlex Crichton-9/+50
While talking on IRC, someone wanted to post a link to the Rust source code, but while the lines of the rendered source code do have anchors (`<span id="[line number]">`), there is no convenient way to make links as they are not clickable. This PR makes them clickable. Also, a minor fix of the FAQ is included.
2015-01-05rollup merge of #19998: th0114nd/unicode-bottomAlex Crichton-2/+4
In the HTML version of the documentation, it isn't rendered so might as well use the unicode representation.
2015-01-05rollup merge of #19888: steveklabnik/gh19861Alex Crichton-2/+11
Fixes #19861 /cc @huonw
2015-01-05rollup merge of #19736: steveklabnik/gh19662Alex Crichton-2/+77
Fixes #19662.
2015-01-05rollup merge of #19235: bjz/referenceAlex Crichton-67/+22
cc. @steveklabnik
2015-01-05Update docsKeegan McAllister-93/+140
2015-01-05Add a test case for accidental macro re-exportKeegan McAllister-0/+39
2015-01-05Forbid '#[macro_use] extern crate' outside the crate rootKeegan McAllister-3/+40
2015-01-05Un-gate macro_rulesKeegan McAllister-260/+15
2015-01-05Pass the #[plugin(...)] meta item to the registrarKeegan McAllister-10/+195
2015-01-05Modernize macro_rules! invocationsKeegan McAllister-331/+361
macro_rules! is like an item that defines a macro. Other items don't have a trailing semicolon, or use a paren-delimited body. If there's an argument for matching the invocation syntax, e.g. parentheses for an expr macro, then I think that applies more strongly to the *inner* delimiters on the LHS, wrapping the individual argument patterns.
2015-01-05Reserve the keyword 'macro'Keegan McAllister-39/+55