about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-02-20rustc_mir: do not remove dead user variables if debuginfo needs them.Eduard-Mihai Burtescu-4/+13
2018-02-20rustc_mir: handle all aggregate kinds in the deaggregator.Eduard-Mihai Burtescu-84/+70
2018-02-20rustc_mir: use the "idiomatic" optimization gating in the deaggregator.Eduard-Mihai Burtescu-11/+16
2018-02-18Rollup merge of #48312 - frewsxcv:frewsxcv-section-headings, r=QuietMisdreavusGuillaume Gomez-9/+9
Unify 'Platform-specific behavior' documentation headings. None
2018-02-18Rollup merge of #48282 - Centril:spelling-fix/iter-repeat-with, r=kennytmGuillaume Gomez-1/+1
Fix spelling in core::iter::repeat_with: s/not/note Fixes spelling error in https://github.com/rust-lang/rust/pull/48156#discussion_r168718452. Tracking issue: https://github.com/rust-lang/rust/issues/48169
2018-02-18Rollup merge of #48275 - matthiaskrgr:codespell, r=kennytm,varkorGuillaume Gomez-86/+86
fix more typos found by codespell.
2018-02-18Rollup merge of #48274 - GuillaumeGomez:remove-hoedown, r=QuietMisdreavusGuillaume Gomez-1344/+113
Remove hoedown from rustdoc Finally the time has come! r? @QuietMisdreavus
2018-02-18Rollup merge of #48273 - alercah:file-warning, r=joshtriplettGuillaume Gomez-0/+15
Add a warning to File about mutability. Fixes #47708.
2018-02-18Rollup merge of #48194 - GuillaumeGomez:doc-test-command, r=Mark-SimulacrumGuillaume Gomez-0/+15
Doc test command r? @Mark-Simulacrum
2018-02-18Auto merge of #47687 - SimonSapin:panic-impl, r=sfacklerbors-199/+279
RFC 2070 part 1: PanicInfo and Location API changes This implements part of https://rust-lang.github.io/rfcs/2070-panic-implementation.html Tracking issue: https://github.com/rust-lang/rust/issues/44489 * Move `std::panic::PanicInfo` and `std::panic::Location` to a new `core::panic` module. The two types and the `std` module were already `#[stable]` and stay that way, the new `core` module is `#[unstable]`. * Add a new `PanicInfo::message(&self) -> Option<&fmt::Arguments>` method, which is `#[unstable]`. * Implement `Display` for `PanicInfo` and `Location`
2018-02-18Auto merge of #47544 - U007D:master, r=nikomatsakisbors-18/+77
Relax termination_trait's error bound As per [this conversation](https://github.com/withoutboats/failure/issues/130#issuecomment-358572413) with @withoutboats and @bkchr
2018-02-17Unify 'Platform-specific behavior' documentation headings.Corey Farwell-9/+9
2018-02-17Remove useless commentGuillaume Gomez-1/+0
2018-02-17Auto merge of #47408 - eddyb:deref-danger, r=nikomatsakisbors-15/+46
Don't promote to 'static the result of dereferences. This is a **breaking change**, removing copies out of dereferences from rvalue-to-`'static` promotion. With miri we won't easily know whether the dereference itself would see the same value at runtime as miri (e.g. after mutating a `static`) or even if it can be interpreted (e.g. integer pointers). One alternative to this ban is defining at least *some* of those situations as UB, i.e. you shouldn't have a reference in the first place, and you should work through raw pointers instead, to avoid promotion. **EDIT**: The other *may seem* to be to add some analysis which whitelists references-to-constant-values and assume any values produced by arbitrary computation to not be safe to promote dereferences thereof - but that means producing a reference from an associated constant or `const fn` would necessarily obscure it, and in the former case, this could still impact code that runs on stable today. What we do today to track "references to statics" only works because we restrict taking a reference to a `static` at all to other `static`s (which, again, are currently limited in that they can't be read at compile-time) and to runtime-only `fn`s (*not* `const fn`s). I'm primarily opening this PR with a conservative first approximation (e.g. `&(*r).a` is not allowed, only reborrows are, and in the old borrow only implicit ones from adjustments, at that) for cratering. r? @nikomatsakis
2018-02-17Fix unstable bookGuillaume Gomez-0/+3
2018-02-17fix more typos found by codespell.Matthias Krüger-86/+86
2018-02-17Add command to launch only doc testsGuillaume Gomez-0/+15
2018-02-17Update to last repository versionGuillaume Gomez-0/+0
2018-02-17Auto merge of #48294 - GuillaumeGomez:rollup, r=GuillaumeGomezbors-1741/+2151
Rollup of 8 pull requests - Successful merges: #48095, #48152, #48234, #48239, #48243, #48260, #48284, #48286 - Failed merges:
2018-02-17Wording fixes from review for File.Alexis Hunt-5/+5
2018-02-17Rollup merge of #48286 - SergioBenitez:master, r=BurntSushiGuillaume Gomez-5/+5
Clarify contiguity of Vec's elements. Small doc changes for clarity.
2018-02-17Rollup merge of #48284 - crawford:string, r=sfacklerGuillaume Gomez-4/+4
Remove unneeded string allocations
2018-02-17Rollup merge of #48260 - dns2utf8:add_link_to_yield, r=kennytmGuillaume Gomez-3/+4
[doc] Add link to yield_now A convenient link.
2018-02-17Rollup merge of #48243 - rust-lang:steveklabnik-patch-1, r=kennytmGuillaume Gomez-1/+1
spelling fix in comment r? @Manishearth
2018-02-17Rollup merge of #48239 - GuillaumeGomez:fix-condvar-example, r=QuietMisdreavusGuillaume Gomez-2/+4
Fix condvar example Fixes #48230. r? @QuietMisdreavus
2018-02-17Rollup merge of #48234 - zombiezen:patch-1, r=steveklabnikGuillaume Gomez-2/+0
Remove "empty buffer" doc in read_until This appears copied from fill_buf, but the above paragraph already indicates that a lack of delimiter at the end is EOF.
2018-02-17Rollup merge of #48152 - antoyo:primitive-docs-relevant, r=QuietMisdreavusGuillaume Gomez-1719/+1914
Primitive docs relevant This fixes the documentation to show the right types in the examples for many integer methods. I need to check if the result is correct before we merge.
2018-02-17Rollup merge of #48095 - QuietMisdreavus:doctest-assembly, r=GuillaumeGomezGuillaume Gomez-5/+219
add unit tests for rustdoc's processing of doctests cc #42018 There's a lot of things that rustdoc will do to massage doctests into something that can be compiled, and a lot of options that can be toggled to affect this. Hopefully this list of tests can show off that functionality. The first commit is slightly unrelated but doesn't touch public functionality, because i found that if you have a manual `fn main`, it adds an extra line break at the end, whereas it would trim this extra line break if it were putting a `fn main` in automatically. That first commit makes it trim out that whitespace ahead of time.
2018-02-17Auto merge of #47956 - retep998:is-nibbles, r=BurntSushibors-21/+44
This is the ideal FileType on Windows. You may not like it, but this is what peak performance looks like. Theoretically this would fix https://github.com/rust-lang/rust/issues/46484 The current iteration of this PR should not cause existing code to break, but instead merely improves handling around reparse points. Specifically... * Reparse points are considered to be symbolic links if they have the name surrogate bit set. Name surrogates are reparse points that effectively act like symbolic links, redirecting you to a different directory/file. By checking for this bit instead of specific tags, we become much more general in our handling of reparse points, including those added by third parties. * If something is a reparse point but does not have the name surrogate bit set, then we ignore the fact that it is a reparse point because it is actually a file or directory directly there, despite having additional handling by drivers due to the reparse point. * For everything which is not a symbolic link (including non-surrogate reparse points) we report whether it is a directory or a file based on the presence of the directory attribute bit. * Notably this still preserves invariant that when `is_symlink` returns `true`, both `is_dir` and `is_file` will return `false`. The potential for breakage was far too high. * Adds an unstable `FileTypeExt` to allow users to determine whether a symbolic link is a directory or a file, since `FileType` by design is incapable of reporting this information.
2018-02-17Auto merge of #47926 - mikhail-m1:subslice_pattern_array_drop2, r=nikomatsakisbors-1/+302
add transform for uniform array move out reworked second step for fix #34708 previous try #46686 r? @nikomatsakis
2018-02-17Auto merge of #47917 - davidtwco:issue-47703, r=nikomatsakisbors-7/+134
Fixes NLL: error from URL crate Fixes #47703. r? @nikomatsakis
2018-02-17Auto merge of #47906 - Zoxc:nocycle, r=nikomatsakisbors-9/+27
Add a `fatal_cycle` attribute for queries which indicates that they will cause a fatal error on query cycles This moves us towards the goal of having cycle errors be non-fatal by not relying on the default implementation of `ty::maps::values::Value` which aborts on errors. r? @nikomatsakis
2018-02-16Clarify contiguity of Vec's elements.Sergio Benitez-5/+5
2018-02-16Remove unneeded string allocationsAlex Crawford-4/+4
2018-02-16Remove hoedown from rustdocGuillaume Gomez-1343/+110
Is it really time? Have our months, no, *years* of suffering come to an end? Are we finally able to cast off the pall of Hoedown? The weight which has dragged us down for so long? ----- So, timeline for those who need to catch up: * Way back in December 2016, [we decided we wanted to switch out the markdown renderer](https://github.com/rust-lang/rust/issues/38400). However, this was put on hold because the build system at the time made it difficult to pull in dependencies from crates.io. * A few months later, in March 2017, [the first PR was done, to switch out the renderers entirely](https://github.com/rust-lang/rust/pull/40338). The PR itself was fraught with CI and build system issues, but eventually landed. * However, not all was well in the Rustdoc world. During the PR and shortly after, we noticed [some differences in the way the two parsers handled some things](https://github.com/rust-lang/rust/issues/40912), and some of these differences were major enough to break the docs for some crates. * A couple weeks afterward, [Hoedown was put back in](https://github.com/rust-lang/rust/pull/41290), at this point just to catch tests that Pulldown was "spuriously" running. This would at least provide some warning about spurious tests, rather than just breaking spontaneously. * However, the problems had created enough noise by this point that just a few days after that, [Hoedown was switched back to the default](https://github.com/rust-lang/rust/pull/41431) while we came up with a solution for properly warning about the differences. * That solution came a few weeks later, [as a series of warnings when the HTML emitted by the two parsers was semantically different](https://github.com/rust-lang/rust/pull/41991). But that came at a cost, as now rustdoc needed proc-macro support (the new crate needed some custom derives farther down its dependency tree), and the build system was not equipped to handle it at the time. It was worked on for three months as the issue stumped more and more people. * In that time, [bootstrap was completely reworked](https://github.com/rust-lang/rust/pull/43059) to change how it ordered compilation, and [the method by which it built rustdoc would change](https://github.com/rust-lang/rust/pull/43482), as well. This allowed it to only be built after stage1, when proc-macros would be available, allowing the "rendering differences" PR to finally land. * The warnings were not perfect, and revealed a few [spurious](https://github.com/rust-lang/rust/pull/44368) [differences](https://github.com/rust-lang/rust/pull/45421) between how we handled the renderers. * Once these were handled, [we flipped the switch to turn on the "rendering difference" warnings all the time](https://github.com/rust-lang/rust/pull/45324), in October 2017. This began the "warning cycle" for this change, and landed in stable in 1.23, on 2018-01-04. * Once those warnings hit stable, and after a couple weeks of seeing whether we would get any more reports than what we got from sitting on nightly/beta, [we switched the renderers](https://github.com/rust-lang/rust/pull/47398), making Pulldown the default but still offering the option to use Hoedown. And that brings us to the present. We haven't received more new issues from this in the meantime, and the "switch by default" is now on beta. Our reasoning is that, at this point, anyone who would have been affected by this has run into it already.
2018-02-16core::iter::repeat_with: fix spelling, s/not/noteMazdak Farrokhzad-1/+1
2018-02-16Notify users that this example is shared through integer typesGuillaume Gomez-19/+47
2018-02-16Auto merge of #48252 - Mark-Simulacrum:exclude-paths, r=alexcrichtonbors-7/+9
Fix not running some steps in CI We'd previously assumed that these paths would be relative to the src dir, and that for example our various CI scripts would, when calling x.py, use `../x.py build ../src/tools/...` but this isn't the case -- they use `../x.py` without using the relevant source-relative path. We eventually may want to make this (actually somewhat logical) change, but this is not that time. r? @kennytm
2018-02-16Add a warning to File about mutability.Alexis Hunt-0/+15
Fixes #47708.
2018-02-16Force the link to std::thread::yield_now()Stefan Schindler-1/+1
2018-02-16Add link to yield_nowStefan Schindler-3/+4
2018-02-16Fix panic when `x.py` is called without any arguments.kennytm-2/+4
2018-02-16Auto merge of #46714 - leodasvacas:refactor-structurally-resolve-type, ↵bors-94/+73
r=nikomatsakis Refactor diverging and numeric fallback. This refactoring tries to make numeric fallback easier to reason about. Instead of applying all fallbacks at an arbitrary point in the middle of inference, we apply the fallback only when necessary and only for the variable that requires it. The only place that requires early fallback is the target of numeric casts. The visible consequences is that some error messages that got `i32` now get `{integer}` because we are less eager about fallback. The bigger goal is to make it easier to integrate user fallbacks into inference, if we ever figure that out.
2018-02-15Consider paths passed to x.py to be root-relative.Mark Simulacrum-6/+6
We'd previously assumed that these paths would be relative to the src dir, and that for example our various CI scripts would, when calling x.py, use `../x.py build ../src/tools/...` but this isn't the case -- they use `../x.py` without using the relevant source-relative path. We eventually may want to make this (actually somewhat logical) change, but this is not that time.
2018-02-15Prevent silently ignoring unmatched pathsMark Simulacrum-1/+1
Primarily for CI purposes; this is intended to avoid cases where we update rustbuild and unintentionally make CI stop running some builds to the arguments being passed no longer applying for some reason.
2018-02-16Auto merge of #45404 - giannicic:defaultimpl2, r=nikomatsakisbors-703/+117
#37653 support `default impl` for specialization this commit implements the second part of the `default impl` feature: > - a `default impl` need not include all items from the trait > - a `default impl` alone does not mean that a type implements the trait The first point allows rustc to compile and run something like this: ``` trait Foo { fn foo_one(&self) -> &'static str; fn foo_two(&self) -> &'static str; } default impl<T> Foo for T { fn foo_one(&self) -> &'static str { "generic" } } struct MyStruct; fn main() { assert!(MyStruct.foo_one() == "generic"); } ``` but it shows a proper error if trying to call `MyStruct.foo_two()` The second point allows a `default impl` to be considered as not implementing the `Trait` if it doesn't implement all the trait items. The tests provided (in the compile-fail section) should cover all the possible trait resolutions. Let me know if some tests is missed. See [referenced ](https://github.com/rust-lang/rust/issues/37653) issue for further info r? @nikomatsakis
2018-02-15spelling fix in commentSteve Klabnik-1/+1
2018-02-15Fix condvar exampleGuillaume Gomez-2/+4
2018-02-15Remove "empty buffer" doc in read_untilRoss Light-2/+0
This appears copied from fill_buf, but the above paragraph already indicates that a lack of delimiter at the end is EOF.
2018-02-15add Self: Trait<..> inside the param_env of a default implGianni Ciccarelli-62/+51