about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-12-03improve wordingRalf Jung-3/+4
2018-11-23make park/unpark example more realisticRalf Jung-4/+15
2018-11-22expand thread::park explanationRalf Jung-1/+6
2018-11-22Auto merge of #56147 - petrochenkov:impice, r=nikomatsakisbors-2/+71
resolve: Fix some asserts in import validation The asserts are not actually correct in presence of ambiguity errors. Fixes https://github.com/rust-lang/rust/issues/56125
2018-11-21Auto merge of #56065 - oli-obk:min_const_fn_loop_ice, r=davidtwcobors-5/+16
Replace the ICEing on const fn loops with an error fixes #56035
2018-11-22resolve: Fix some asserts in import validationVadim Petrochenkov-2/+71
2018-11-21Auto merge of #56134 - oli-obk:clippy_documentation, r=nrcbors-0/+2
Forward rust version number to tools Clippy uses it to identify the correct documentation to point to cc @Manishearth @nrc sibling PR in clippy: https://github.com/rust-lang-nursery/rust-clippy/pull/3442
2018-11-21Auto merge of #56118 - steveklabnik:update-books, r=alexcrichtonbors-58/+45
Update books for Rust 2018 This PR: 1. updates all of the books * I don't know if @Gankro has further plans for the nomicon or not 2. updates the build process because TRPL is only distributing one edition now 3. fixes up the stdlib links I think that this passes but it's 3:20 am and so I'm sending it in and will fix up anything i missed in the morning. /cc @alexcrichton for the big beta backport
2018-11-21Forward rust version number to toolsOliver Scherer-0/+2
Clippy uses it to identify the correct documentation to point to
2018-11-21Auto merge of #56117 - petrochenkov:iempty, r=eddybbors-1/+15
resolve: Make "empty import canaries" invisible from other crates Empty imports `use prefix::{};` are desugared into `use prefix::{self as _};` to make sure the prefix is checked for privacy/stability/etc. This caused issues in cross-crate scenarios because gensyms are lost in crate metadata (the `_` is a gensym). Fixes https://github.com/rust-lang/rust/issues/55811
2018-11-21update various stdlib docsSteve Klabnik-37/+22
2018-11-21Auto merge of #52591 - eddyb:functional-snakes, r=oli-obkbors-144/+129
rustc: remove {FxHash,Node,DefId,HirId,ItemLocal}{Map,Set} "constructor" fns. These are cruft left over from a time when `Foo::default()` didn't "just work".
2018-11-21rustc: implement and use Default on more types.Eduard-Mihai Burtescu-73/+61
2018-11-21rustc: remove {FxHash,Node,DefId,HirId,ItemLocal}{Map,Set} "constructor" fns.Eduard-Mihai Burtescu-75/+72
2018-11-21Auto merge of #56032 - petrochenkov:stabecip, r=nikomatsakisbors-151/+40
Stabilize `extern_crate_item_prelude` Closes https://github.com/rust-lang/rust/issues/55599
2018-11-20fix more linksSteve Klabnik-12/+10
2018-11-20fix rustbuild to build all the booksSteve Klabnik-11/+15
2018-11-20update booksSteve Klabnik-0/+0
2018-11-21resolve: Make "empty import canaries" invisible from other cratesVadim Petrochenkov-1/+15
2018-11-21Add a couple more testsVadim Petrochenkov-3/+33
2018-11-21Stabilize `extern_crate_item_prelude`Vadim Petrochenkov-148/+7
2018-11-20Auto merge of #56111 - nrc:update, r=kennytmbors-71/+92
Update RLS and Rustfmt Re-opening https://github.com/rust-lang/rust/pull/56061 @bors: r=kennytm p=2
2018-11-21Update RLS and RustfmtNick Cameron-71/+92
2018-11-20Auto merge of #55720 - RalfJung:const-eval-raw, r=oli-obkbors-109/+138
Make const_eval_raw query return just an AllocId r? @oli-obk
2018-11-20Auto merge of #55663 - varkor:must_use-traits, r=estebankbors-16/+79
Allow #[must_use] on traits Addresses https://github.com/rust-lang/rust/issues/55506, but we'll probably want to add it to some library traits like `Iterator` before the issue is considered fixed. Fixes https://github.com/rust-lang/rust/issues/51560. `#[must_use]` is already permitted on traits, with no effect, so this seems like a bug fix, but I might be overlooking something. This currently warns for `impl Trait` or `dyn Trait` when the `Trait` is `#[must_use]` (although I don't think the latter is currently possible, so it's simply future-proofed).
2018-11-20Auto merge of #56081 - alexcrichton:update-manifest, r=nrcbors-0/+2
Add temporary renames to manifests for rustfmt/clippy This will be part of our strategy for shipping renamed versions of these components for the Rust 2018 edition. Closes #55967
2018-11-20Auto merge of #55983 - oli-obk:static_, r=Mark-Simulacrumbors-0/+34
Fix stability hole with `static _` The `underscore_const_names` only gated const items with `_` as the name. `static _: () = ();` works on beta without feature gates right now, this PR fixes that.
2018-11-20Auto merge of #56049 - newpavlov:revert_51601, r=sfacklerbors-75/+14
Revert #51601 Closes: #55985 Specialization of `StepBy<Range(Inclusive)>` results in an incorrectly behaving code when `step_by` is combined with `skip` or `nth`. If this will get merged we probably should reopen issues previously closed by #51601 (if there was any).
2018-11-19Add temporary renames to manifests for rustfmt/clippyAlex Crichton-0/+2
This will be part of our strategy for shipping renamed versions of these components for the Rust 2018 edition. Closes #55967
2018-11-19explain why we can use rawRalf Jung-0/+4
2018-11-19we now do proper validation on scalarsRalf Jung-14/+14
2018-11-19use RawConst in miriRalf Jung-40/+32
2018-11-19Make const_eval_raw query return just an AllocIdRalf Jung-64/+97
2018-11-19Auto merge of #55971 - SergioBenitez:skip-non-semantic, r=alexcrichtonbors-6/+141
Ignore non-semantic tokens for 'probably_eq' streams. Improves the situation in #43081 by skipping typically non-semantic tokens when checking for 'probably_eq'. r? @alexcrichton
2018-11-19Fix change to predicatesvarkor-1/+1
2018-11-19Fix typo in #[must_use] messagevarkor-1/+1
2018-11-19Handle trait objectsvarkor-6/+24
2018-11-19Test for #[must_use] on traitsvarkor-0/+36
2018-11-19Recognise #[must_use] on traits, affecting impl Traitvarkor-1/+14
2018-11-19Use general uninhabitedness checkingvarkor-14/+10
2018-11-19Auto merge of #56060 - nrc:save-path-fallback, r=zackmdavisbors-4/+17
save-analysis: fallback to using path id r? @eddyb
2018-11-19Auto merge of #56051 - pietroalbini:rollup, r=pietroalbinibors-588/+1248
Rollup of 25 pull requests Successful merges: - #55562 (Add powerpc- and powerpc64-unknown-linux-musl targets) - #55564 (test/linkage-visibility: Ignore on musl targets) - #55827 (A few tweaks to iterations/collecting) - #55834 (Forward the ABI of the non-zero sized fields of an union if they have the same ABI) - #55857 (remove unused dependency) - #55862 (in which the E0618 "expected function" diagnostic gets a makeover) - #55867 (do not panic just because cargo failed) - #55894 (miri enum discriminant handling: Fix treatment of pointers, better error when it is undef) - #55916 (Make miri value visitor useful for mutation) - #55919 (core/tests/num: Simplify `test_int_from_str_overflow()` test code) - #55923 (reword #[test] attribute error on fn items) - #55949 (ty: return impl Iterator from Predicate::walk_tys) - #55952 (Update to Clang 7 on CI.) - #55953 (#53488 Refactoring UpvarId) - #55962 (rustdoc: properly calculate spans for intra-doc link resolution errors) - #55963 (Stress test for MPSC) - #55968 (Clean up some non-mod-rs stuff.) - #55970 (Miri backtrace improvements) - #56007 (CTFE: dynamically make sure we do not call non-const-fn) - #56011 (Replace data.clone() by Arc::clone(&data) in mutex doc.) - #56012 (avoid shared ref in UnsafeCell::get) - #56016 (Add VecDeque::resize_with) - #56027 (docs: Add missing backtick in object_safety.rs docs) - #56043 (remove "approx env bounds" if we already know from trait) - #56059 (Increase `Duration` approximate equal threshold to 1us)
2018-11-19Rollup merge of #56059 - alexcrichton:fix-tests, r=sfacklerkennytm-5/+54
Increase `Duration` approximate equal threshold to 1us Previously this threshold when testing was 100ns, but the Windows documentation states: > which is a high resolution (<1us) time stamp which presumably means that we could have up to 1us resolution, which means that 100ns doesn't capture "equivalent" time intervals due to various bits of rounding here and there. It's hoped that this.. Closes #56034
2018-11-19Rollup merge of #56043 - nikomatsakis:issue-55756-via-outlives, r=eddybPietro Albini-7/+60
remove "approx env bounds" if we already know from trait Alternative to https://github.com/rust-lang/rust/pull/55988 that fixes #55756 -- smaller fix that I cannot see having (correctness) repercussions beyond the test at hand, and hence better for backporting. (Famous last words, I know.) r? @eddyb
2018-11-19Rollup merge of #56027 - Xanewok:docs-backtick, r=QuietMisdreavusPietro Albini-1/+1
docs: Add missing backtick in object_safety.rs docs Closes #56019. r? @bjorn3
2018-11-19Rollup merge of #56016 - scottmcm:vecdeque-resize-with, r=joshtriplettPietro Albini-1/+39
Add VecDeque::resize_with This already exists on `Vec`; I'm just adding it to `VecDeque`. I wanted to resize a `VecDeque<Vec<T>>` when I didn't know `T: Clone`, so I couldn't use `.resize(n, Vec::new())`. With this I could do `.resize_with(n, Vec::new)` instead, which doesn't need `T: Clone`. Tracking issue: https://github.com/rust-lang/rust/issues/41758
2018-11-19Rollup merge of #56012 - RalfJung:unsafe-cell, r=nikomatsakisPietro Albini-1/+3
avoid shared ref in UnsafeCell::get Avoid taking a shared reference in `UnsafeCell::get`. This *should* be taking a raw reference (see https://github.com/rust-lang/rfcs/pull/2582), but that operation is not currently available, so I propose we exploit `repr(transparent)` instead and cast the pointer around. This is required to make `UnsafeCell::get` pass the [stacked borrows implementation](https://www.ralfj.de/blog/2018/11/16/stacked-borrows-implementation.html) in miri (currently, `UnsafeCell::get` is on a whitelist, but that is of course not very satisfying). It shouldn't affect normal execution/codegen. Would be great if we could get this landed and shrink miri's whitelist! Cc @nikomatsakis
2018-11-19Rollup merge of #56011 - CBenoit:master, r=QuietMisdreavusPietro Albini-1/+1
Replace data.clone() by Arc::clone(&data) in mutex doc. Arc::clone(&from) is considered as more idiomatic because it conveys more explicitly the meaning of the code. Since this clone is visible in the official documentation, I thought it could be better to use the more idiomatic version.
2018-11-19Rollup merge of #56007 - RalfJung:non-const-call, r=oli-obkPietro Albini-11/+60
CTFE: dynamically make sure we do not call non-const-fn I'd love to have a test case for this, but I don't know how. I am also really surprised by this test case that changed behavior: Why did it even start execution if it already determined that it shouldn't?!? r? @oli-obk
2018-11-19Rollup merge of #55970 - RalfJung:miri-backtrace, r=@oli-obkPietro Albini-78/+100
Miri backtrace improvements Nicer pretty-printing of the `RUST_CTFE_BACKTRACE`-backtraces: ``` 0: backtrace::backtrace::libunwind::trace::hc410fcb66fe85b11 at /home/r/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/backtrace/libunwind.rs:53 backtrace::backtrace::trace::h2106294a22648407 at /home/r/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/backtrace/mod.rs:42 1: backtrace::capture::Backtrace::new_unresolved::h5d8d98b993d092ba at /home/r/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.9/src/capture.rs:88 2: <rustc::mir::interpret::error::EvalError<'tcx> as core::convert::From<rustc::mir::interpret::error::EvalErrorKind<'tcx, u64>>>::from::h6355269b2a661412 at librustc/mir/interpret/error.rs:236 3: <T as core::convert::Into<U>>::into::h70fcb917509539bd at /home/r/src/rust/rustc.2/src/libcore/convert.rs:455 4: <rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, miri::Evaluator<'tcx>> as miri::fn_call::EvalContextExt<'tcx, 'mir>>::emulate_foreign_item::h9cde0e3ce7455a4a at src/fn_call.rs:292 5: <rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, miri::Evaluator<'tcx>> as miri::fn_call::EvalContextExt<'tcx, 'mir>>::find_fn::h83f89524b9d1a49a at src/fn_call.rs:74 6: <miri::Evaluator<'tcx> as rustc_mir::interpret::machine::Machine<'a, 'mir, 'tcx>>::find_fn::hf9980473c4775f0c at src/lib.rs:345 rustc_mir::interpret::terminator::<impl rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::eval_fn_call::h401dec4a687f96e9 at /home/r/src/rust/rustc.2/src/librustc_mir/interpret/terminator.rs:285 ``` Indentation is now consistent with `RUST_BACKTRACE`, and the frame number is not repeated when there are multiple symbols for a frame. Also preserve the `ty::Instance` for the internal backtrace (showing which frames in the user code where on the interpreter stack when the error happened), used by miri to avoid printing spans for libstd internals: ``` error[E0080]: constant evaluation error: the evaluated program panicked --> /home/r/src/rust/rustc.2/src/libstd/panicking.rs:525:9 | 525 | __rust_start_panic(obj as usize) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked | = note: inside call to `std::panicking::rust_panic` at /home/r/src/rust/rustc.2/src/libstd/panicking.rs:496:5 = note: inside call to `std::panicking::rust_panic_with_hook` at /home/r/src/rust/rustc.2/src/libstd/panicking.rs:390:5 = note: inside call to `std::panicking::continue_panic_fmt` at /home/r/src/rust/rustc.2/src/libstd/panicking.rs:345:5 note: inside call to `std::rt::begin_panic_fmt` at <::std::macros::panic macros>:8:1 --> tests/compile-fail/panic.rs:4:5 | 4 | assert_eq!(5, 6); | ^^^^^^^^^^^^^^^^^ = note: inside call to `main` at /home/r/src/rust/rustc.2/src/libstd/rt.rs:74:34 = note: inside call to closure at /home/r/src/rust/rustc.2/src/libstd/rt.rs:59:75 = note: inside call to closure at /home/r/src/rust/rustc.2/src/libstd/sys_common/backtrace.rs:136:5 = note: inside call to `std::sys_common::backtrace::__rust_begin_short_backtrace::<[closure@DefId(1/1:1913 ~ std[78f0]::rt[0]::lang_start_internal[0]::{{closure}}[0]::{{closure}}[0]) 0:&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe], i32>` at /home/r/src/rust/rustc.2/src/libstd/rt.rs:59:13 = note: inside call to closure at /home/r/src/rust/rustc.2/src/libstd/panicking.rs:310:40 = note: inside call to `std::panicking::try::do_call::<[closure@DefId(1/1:1912 ~ std[78f0]::rt[0]::lang_start_internal[0]::{{closure}}[0]) 0:&&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe], i32>` at /home/r/src/rust/rustc.2/src/libstd/panicking.rs:306:5 = note: inside call to `std::panicking::try::<i32, [closure@DefId(1/1:1912 ~ std[78f0]::rt[0]::lang_start_internal[0]::{{closure}}[0]) 0:&&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe]>` at /home/r/src/rust/rustc.2/src/libstd/panic.rs:398:9 = note: inside call to `std::panic::catch_unwind::<[closure@DefId(1/1:1912 ~ std[78f0]::rt[0]::lang_start_internal[0]::{{closure}}[0]) 0:&&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe], i32>` at /home/r/src/rust/rustc.2/src/libstd/rt.rs:58:25 = note: inside call to `std::rt::lang_start_internal` at /home/r/src/rust/rustc.2/src/libstd/rt.rs:74:5 = note: inside call to `std::rt::lang_start::<()>` ``` Also notice that we show filenames and line numbers here now. r? @oli-obk