about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-02-07update the builtin macro doc stubsMichael Lamparski-10/+40
2018-02-07libsyntax/ext: trailing commas in builtin macrosMichael Lamparski-2/+6
Most notably this changes 'syntax::ext::base::get_single_str_from_tts' to accept a trailing comma, and revises the documentation so that this aspect is not surprising. I made this change under the understanding that this crate is private rustc implementation detail (I hope this is correct!). After reviewing all call sites, I believe the revised semantics are closer to the intended spirit of the function.
2018-02-07libcore/libstd: fix commas in macro_rules! macrosMichael Lamparski-2/+18
BREAKING CHANGE: (or perhaps, *bugfix*) In #![no_std] applications, the following calls to `panic!` used to behave differently; they now behave the same. Old behavior: panic!("{{"); // panics with "{{" panic!("{{",); // panics with "{" New behavior: panic!("{{"); // panics with "{{" panic!("{{",); // panics with "{{" This only affects calls to `panic!` (and by proxy `assert` and `debug_assert`) with a single string literal followed by a trailing comma, and only in `#![no_std]` applications.
2018-02-07add tests for macro trailing commasMichael Lamparski-0/+601
2018-02-06Auto merge of #47203 - varkor:output-filename-conflicts-with-directory, ↵bors-43/+111
r=estebank Warn when rustc output conflicts with existing directories When the compiled executable would conflict with a directory, display a rustc error instead of a verbose and potentially-confusing linker error. This is a usability improvement, and doesn’t actually change behaviour with regards to compilation success. This addresses the concern in #35887. Fixes #13098.
2018-02-06Rollup merge of #48007 - nrc:rls-field-init, r=eddybkennytm-1/+9
save-analysis: avoid implicit unwrap When looking up a field defintion, since the name might be incorrect in the field init shorthand case. cc https://github.com/rust-lang-nursery/rls/issues/699 r? @eddyb
2018-02-06Rollup merge of #48003 - mbrubeck:docs, r=steveklabnikkennytm-3/+3
Fix info about generic impls in AsMut docs This text was copy-pasted from the `AsRef` docs to `AsMut`, but needed some additional adjustments for correctness.
2018-02-06Rollup merge of #47959 - Manishearth:rustdoc-ice, r=Mark-Simulacrumkennytm-5/+30
Fix rustdoc ICE on macros defined within functions fixes #47639
2018-02-06Rollup merge of #47948 - pietroalbini:use-nested-groups-stabilize, ↵kennytm-181/+4
r=petrochenkov Stabilize use_nested_groups As requested in #44494. Documentation PRs already sent.
2018-02-06Rollup merge of #47807 - tbu-:pr_doc_constanttime_cstr, r=steveklabnikkennytm-9/+9
Make wording around 0-cost casts more precise
2018-02-06Rollup merge of #47753 - steveklabnik:update-book, r=alexcrichtonkennytm-10/+55
Update book This PR does two things: 1. update the book to include https://github.com/rust-lang/book/pull/1088 2. update to mdbook 0.1 Both of these things are big changes, so I want to land them now, well before the next branch, so we can kick the tires. ------------------------------ Locally, I'm seeing some weirdness around the reference and this: ![image](https://user-images.githubusercontent.com/27786/35411917-8dcbb31a-01e8-11e8-8c30-0bd280d93b9d.png) Putting this PR up so others can try and build and see if it reproduces for them.
2018-02-06Rollup merge of #47704 - dsprenkels:issue-44415, r=alexcrichtonkennytm-0/+22
Add a regression test for #44415 This PR adds a regression test for issue #44415. Fixes #44415.
2018-02-06Rollup merge of #47543 - topecongiro:issue-42344, r=nikomatsakiskennytm-12/+20
Disallow mutable borrow to non-mut statics Closes #42344.
2018-02-06Rollup merge of #47496 - QuietMisdreavus:rls-doc-include, r=estebankkennytm-0/+16
add documentation from doc(include) to analysis data cc #44732 Currently save-analysis only loads docs from plain doc comments and doc attributes. Since `#[doc(include="filename.md")]` doesn't create a plain doc attribute when it loads the file, we need to be sure to pick up this info for the analysis data.
2018-02-06Rollup merge of #46030 - Zoxc:asm-volatile, r=nikomatsakiskennytm-0/+32
Make inline assembly volatile if it has no outputs. Fixes #46026
2018-02-05Auto merge of #47881 - oli-obk:miri_clippy, r=Manishearthbors-46/+48
Update clippy and miri submodule r? @Manishearth cc @kennytm I needed to touch the miri submodule's Cargo.toml to make sure that clippy gets the newest compiletest_rs. This will not fix miri, but since I touched the miri submodule, will this PR fail? miri is unfixable until #46882 is merged
2018-02-05Make inline assembly volatile if it has no outputs. Fixes #46026John Kåre Alsaker-0/+32
2018-02-05Update clippy and miri submoduleOliver Schneider-46/+48
2018-02-05Stabilize use_nested_groupsPietro Albini-181/+4
2018-02-05Auto merge of #47920 - Aaron1011:nll-overflow, r=pnkfelixbors-37/+111
Fix overflow when performing drop check calculations in NLL Clearing out the infcx's region constraints after processing each type ends up interacting badly with normalizing associated types. This commit keeps all region constraints intact until the end of TypeLivenessGenerator.add_drop_live_constraint, ensuring that normalized types are able to re-use existing inference variables. Fixes #47589
2018-02-05Auto merge of #47873 - Aaron1011:final-ref-coerce, r=nikomatsakisbors-4/+65
Fix ref-to-ptr coercions not working with NLL in certain cases Implicit coercions from references to pointers were lowered to slightly different Mir than explicit casts (e.g. 'foo as *mut T'). This resulted in certain uses of self-referential structs compiling correctly when an explicit cast was used, but not when the implicit coercion was used. To fix this, this commit adds an outer 'Use' expr when applying a raw-ptr-borrow adjustment. This makes the lowered Mir for coercions identical to that of explicit coercions, allowing the original code to compile regardless of how the raw ptr cast occurs. Fixes #47722
2018-02-05Auto merge of #47865 - Manishearth:cleanup-shim, r=nikomatsakisbors-76/+71
Cleanup the shim code - We now write directly to `RETURN_PLACE` instead of creating intermediates - `tuple_like_shim` takes an iterator (used by #47867) - `tuple_like_shim` no longer relies on it being the first thing to create blocks, and uses relative block indexing in a cleaner way (necessary for #47867) - All the shim builders take `dest, src` arguments instead of hardcoding RETURN_PLACE r? @eddyb
2018-02-04Auto merge of #47998 - kennytm:rollup, r=kennytmbors-204/+417
Rollup of 10 pull requests - Successful merges: #47862, #47877, #47896, #47912, #47947, #47958, #47978, #47996, #47999, #47892 - Failed merges:
2018-02-05save-analysis: avoid implicit unwrapNick Cameron-1/+9
When looking up a field defintion, since the name might be incorrect in the field init shorthand case. cc https://github.com/rust-lang-nursery/rls/issues/699
2018-02-04add exceptions for new depssteveklabnik-0/+2
2018-02-04update mdbook to 0.1.2steveklabnik-10/+53
and improve printing of errors
2018-02-04update referencesteveklabnik-0/+0
2018-02-04update trplsteveklabnik-0/+0
Includes https://github.com/rust-lang/book/pull/1088 and https://github.com/rust-lang/book/commit/62210e326c27697e94ce429c1683dcea4e4887e4
2018-02-04Fix info about generic impls in AsMut docsMatt Brubeck-3/+3
This text was copy-pasted from the `AsRef` docs to `AsMut`, but needed some additional adjustments for correctness.
2018-02-05Rollup merge of #47892 - Badel2:const_type_id_of, r=oli-obkkennytm-1/+105
Turn `type_id` into a constant intrinsic https://github.com/rust-lang/rust/issues/27745 The method `get_type_id` in `Any` is intended to support reflection. It's currently unstable in favor of using an associated constant instead. This PR makes the `type_id` intrinsic a constant intrinsic, the same as `size_of` and `align_of`, allowing `TypeId::of` to be a `const fn`, which will allow using an associated constant in `Any`.
2018-02-05Rollup merge of #47999 - jaystrictor:master, r=Mark-Simulacrumkennytm-2/+2
Remove 'the this' in doc comments.
2018-02-05Rollup merge of #47996 - Zoxc:run-make-last, r=Mark-Simulacrumkennytm-1/+1
Run the `run-make` tests last, so more tests run on Windows when `make` is unavailable
2018-02-04Rollup merge of #47978 - eddyb:iu, r=kennytmkennytm-4/+4
ui tests: diff from old (expected) to new (actual) instead of backwards. Previously `actual` was "old" and `expected` was "new" which resulted in `+` before `-`. AFAIK all diff tools put `-` before `+`, which made the previous behavior *very confusing*. r? @nikomatsakis
2018-02-04Rollup merge of #47958 - frewsxcv:frewsxcv-try-clone, r=aidanhskennytm-7/+29
Clarify shared file handler behavior of File::try_clone. Fixes https://github.com/rust-lang/rust/issues/46578.
2018-02-04Rollup merge of #47947 - goodmanjonathan:stabilize_match_beginning_vert, ↵kennytm-103/+32
r=petrochenkov Stabilize feature(match_beginning_vert) With this feature stabilized, match expressions can optionally have a `|` at the beginning of each arm. Reference PR: rust-lang-nursery/reference#231 Closes #44101
2018-02-04Rollup merge of #47912 - cuviper:glibc-stack-guard, r=alexcrichtonkennytm-68/+93
Use a range to identify SIGSEGV in stack guards Previously, the `guard::init()` and `guard::current()` functions were returning a `usize` address representing the top of the stack guard, respectively for the main thread and for spawned threads. The `SIGSEGV` handler on `unix` targets checked if a fault was within one page below that address, if so reporting it as a stack overflow. Now `unix` targets report a `Range<usize>` representing the guard memory, so it can cover arbitrary guard sizes. Non-`unix` targets which always return `None` for guards now do so with `Option<!>`, so they don't pay any overhead. For `linux-gnu` in particular, the previous guard upper-bound was `stackaddr + guardsize`, as the protected memory was *inside* the stack. This was a glibc bug, and starting from 2.27 they are moving the guard *past* the end of the stack. However, there's no simple way for us to know where the guard page actually lies, so now we declare it as the whole range of `stackaddr ± guardsize`, and any fault therein will be called a stack overflow. This fixes #47863.
2018-02-04Rollup merge of #47896 - ↵kennytm-9/+83
zackmdavis:and_the_case_of_the_necessary_unnecessary_parens, r=nikomatsakis decline to lint technically-unnecessary parens in function or method arguments inside of nested macros In #46980 ("in which the unused-parens lint..." (14982db2d6)), the unused-parens lint was made to check function and method arguments, which it previously did not (seemingly due to oversight rather than willful design). However, in #47775 and discussion thereon, user–developers of Geal/nom and graphql-rust/juniper reported that the lint was seemingly erroneously triggering on certain complex macros in those projects. While this doesn't seem like a bug in the lint in the particular strict sense that the expanded code would, in fact, contain unncecessary parentheses, it also doesn't seem like the sort of thing macro authors should have to think about: the spirit of the unused-parens lint is to prevent needless clutter in code, not to give macro authors extra heartache in the handling of token trees. We propose the expediency of declining to lint unused parentheses in function or method args inside of nested expansions: we believe that this should eliminate the petty, troublesome lint warnings reported in the issue, without forgoing the benefits of the lint in simpler macros. It seemed like too much duplicated code for the `Call` and `MethodCall` match arms to duplicate the nested-macro check in addition to each having their own `for` loop, so this occasioned a slight refactor so that the function and method cases could share code—hopefully the overall intent is at least no less clear to the gentle reader. This is concerning #47775.
2018-02-04Rollup merge of #47877 - spastorino:lifetime-bounds-in-copy, r=nikomatsakiskennytm-7/+37
Do not ignore lifetime bounds in Copy impls cc #29149 r? @nikomatsakis
2018-02-04Rollup merge of #47862 - GuillaumeGomez:const-evaluation-ice, r=eddybkennytm-2/+31
Fix const evaluation ICE in rustdoc Fixes #47860. r? @eddyb
2018-02-04Remove 'the this' in doc comments.Jay Strict-2/+2
2018-02-04Auto merge of #47834 - Mark-Simulacrum:no-cgu-release, r=alexcrichtonbors-6/+22
Do not enable ThinLTO on stable, beta, or nightly builds. Fixes #45444
2018-02-04Run the `run-make` tests last, so more tests run on Windows when `make` is ↵John Kåre Alsaker-1/+1
unavailable
2018-02-04Auto merge of #47991 - nrc:update, r=alexcrichtonbors-33/+47
Update RLS and Rustfmt r? @alexcrichton
2018-02-04Remove delay_span_bug() in check_aliasabilitySeiichi Uchida-12/+20
This path was considered to be unreachable. However, `&mut` could potentially live inside `static`. For example, `static TAB: [&mut [u8]; 0] = [];`.
2018-02-04Auto merge of #47915 - eddyb:layout-of, r=nikomatsakisbors-84/+107
rustc: prefer ParamEnvAnd and LayoutCx over tuples for LayoutOf. This PR provides `tcx.layout_of(param_env.and(ty))` as the idiomatic replacement for the existing `(tcx, param_env).layout_of(ty)` and removes fragile (coherence-wise) layout-related tuple impls. r? @nikomatsakis
2018-02-04Update RLS and RustfmtNick Cameron-33/+47
2018-02-03Disable ThinLTO for dist builds.Mark Simulacrum-6/+22
Dist builds should always be as fast as we can make them, and since those run on CI we don't care quite as much for the build being somewhat slower. As such, we don't automatically enable ThinLTO on builds for the dist builders.
2018-02-03Auto merge of #47845 - Zoxc:gen-fixes, r=nikomatsakisbors-52/+342
Generator bugfixes r? @nikomatsakis
2018-02-03Clarify shared file handler behavior of File::try_clone.Corey Farwell-7/+29
Fixes https://github.com/rust-lang/rust/issues/46578.
2018-02-03Auto merge of #46254 - Dylan-DPC:ellided-lifetime, r=nikomatsakisbors-4/+55
elided lifetime Closes #45992 Hey Having a problem with my config so decided to make a WIP PR nevertheless. Will add some more tests.