about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2020-07-06Edit librustc_lexer top-level docspierwill-4/+5
Add link to librustc_parse::lexer
2020-06-28Rollup merge of #73833 - bjorn3:remove_gcx_enter_local, r=matthewjasperManish Goregaokar-46/+22
Remove GlobalCtxt::enter_local
2020-06-28Rollup merge of #73826 - cjrh:cjrh-patch-1, r=jonas-schievinkManish Goregaokar-1/+1
Fix docstring typo
2020-06-28Rollup merge of #73817 - jumbatm:rename-to-clashing-extern-declarations, ↵Manish Goregaokar-64/+91
r=petrochenkov Rename clashing_extern_decl to clashing_extern_declarations. Rename clashing_extern_decl to clashing_extern_declarations to bring in-line with lint naming conventions. Fixes #73802. r? @petrochenkov
2020-06-28Rollup merge of #73813 - petrochenkov:restrait, r=davidtwcoManish Goregaokar-25/+24
Rename two `Resolver` traits `trait Resolver` -> `trait ResolverExpand` for the resolver interface available from expansion. `trait Resolver` -> `trait ResolverAstLowering` for the resolver interface available from AST lowering. Addresses https://github.com/rust-lang/rust/pull/73587#discussion_r443242556
2020-06-28Rollup merge of #73800 - nikic:hash_i, r=kennytmManish Goregaokar-5/+5
Forward Hash::write_iN to Hash::write_uN The `Hasher::write_iN()` methods should forward to `Hasher::write_uN()`, because some Hasher implementations implement only the `write_uN()` variants, with the expectation that `write_iN()` will use the same implementation. Most notably, this is the case for the [FxHasher](https://github.com/rust-lang/rustc-hash/blob/5e09ea0a1c7ab7e4f9e27771f5a0e5a36c58d1bb/src/lib.rs#L111) used by rustc itself. This used to be the case previously, but was broken in #59982. As the PR description makes no mention of this particular change, I assume it was unintentional. In a local test, this mitigates the regression from #73526 on at least one test-case (cc @cuviper), because we're no longer at the mercy of `FxHasher::write()` getting inlined to get reasonable performance.
2020-06-28Rollup merge of #73795 - JohnTitor:tests-for-const-fn-ptrs, r=oli-obkManish Goregaokar-0/+125
Add some `const_compare_raw_pointers`-related regression tests Closes #71381 Closes #71382 Closes #71611 Closes #72352 r? @oli-obk, the author of #73398
2020-06-28Rollup merge of #73774 - ecstatic-morse:liveness-of-projections, r=oli-obkManish Goregaokar-2/+73
Make liveness more precise for assignments to fields Previously, we were too conservative and `x.field = 4` was treated as a "use" of `x`. Now it neither kills `x` (since other fields of `x` may still be live) nor marks it as live. cc @jonas-schievink, who ran into this problem.
2020-06-28Rollup merge of #73757 - oli-obk:const_prop_hardening, r=wesleywiserManish Goregaokar-16/+90
Const prop: erase all block-only locals at the end of every block I messed up this erasure in https://github.com/rust-lang/rust/pull/73656#discussion_r446040140. I think it is too fragile to have the previous scheme. Let's benchmark the new scheme and see what happens. r? @wesleywiser cc @felix91gr
2020-06-28Rollup merge of #73577 - VillSnow:master, r=AmanieuManish Goregaokar-0/+95
Add partition_point Add partition_point in C++. Although existing binary_search in rust does not suitable when the slice has multiple hits, this function returns exact point of partition. The definition of this function is very clear and able to accept general matter, therefore you can easily get index which you want like lower/upper_bound. https://github.com/rust-lang/rfcs/issues/2184
2020-06-28Update src/libcore/slice/mod.rsVillSnow-1/+1
Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
2020-06-28Erase all block-only locals at the end of every block, even if they have not ↵Oliver Scherer-16/+90
been touched.
2020-06-28Remove GlobalCtxt::enter_localbjorn3-46/+22
2020-06-28Update tracking issue numberVillSnow-1/+1
2020-06-28Auto merge of #73830 - Manishearth:rollup-8k68ysm, r=Manishearthbors-623/+1645
Rollup of 10 pull requests Successful merges: - #72796 (MIR sanity check: validate types on assignment) - #73243 (Add documentation to point to `File::open` or `OpenOptions::open` instead of `is_file` to check read/write possibility) - #73525 (Prepare for LLVM 11) - #73672 (Adds a clearer message for when the async keyword is missing from a f…) - #73708 (Explain move errors that occur due to method calls involving `self` (take two)) - #73758 (improper_ctypes: fix remaining `Reveal:All`) - #73763 (errors: use `-Z terminal-width` in JSON emitter) - #73796 (replace more `DefId`s with `LocalDefId`) - #73797 (fix typo in self-profile.md) - #73809 (Add links to fs::DirEntry::metadata) Failed merges: r? @ghost
2020-06-28Update doc commentVillSnow-6/+10
2020-06-28Merge branch 'master' of https://github.com/VillSnow/rustVillSnow-1/+2
2020-06-28Update src/libcore/slice/mod.rsVillSnow-1/+2
Co-authored-by: Lukas Kalbertodt <lukas.kalbertodt@gmail.com>
2020-06-28Add comment on use of unsafeVillSnow-0/+9
2020-06-27Rollup merge of #73809 - robyoung:docs/add-links-to-DirEntry-metadata, ↵Manish Goregaokar-1/+4
r=hanna-kruppe Add links to fs::DirEntry::metadata `fs::DirEntry::metadata` doesn't traverse symlinks. It is not immediately clear what to do if you do want to traverse symlinks. This change adds links to the two other `metadata` functions that will follow symlinks.
2020-06-27Rollup merge of #73797 - atetubou:patch-1, r=jonas-schievinkManish Goregaokar-1/+1
fix typo in self-profile.md
2020-06-27Rollup merge of #73796 - lcnr:LocalDefId, r=matthewjasperManish Goregaokar-301/+304
replace more `DefId`s with `LocalDefId` part of https://github.com/rust-lang/rust/issues/70853
2020-06-27Rollup merge of #73763 - davidtwco:terminal-width-json-emitter, r=estebankManish Goregaokar-7/+96
errors: use `-Z terminal-width` in JSON emitter This PR makes the JSON emitter use `-Z terminal-width` in the "rendered" field of the JSON output. r? @estebank
2020-06-27Rollup merge of #73758 - davidtwco:issue-60855-remaining-reveal-all, ↵Manish Goregaokar-62/+66
r=matthewjasper improper_ctypes: fix remaining `Reveal:All` Fixes #60855. This PR replaces the remaining uses of `ParamEnv::reveal_all` with `LateContext`'s `param_env` (normally `Reveal::UserFacing`) in the improper ctypes lint.
2020-06-27Rollup merge of #73708 - Aaron1011:feature/reland-move-fn-self-msg, r=davidtwcoManish Goregaokar-123/+779
Explain move errors that occur due to method calls involving `self` (take two) This is a re-attempt of #72389 (which was reverted in #73594) Instead of using `ExpnKind::Desugaring` to represent operators, this PR checks the lang item directly.
2020-06-27Rollup merge of #73672 - nellshamrell:async-fix, r=estebankManish Goregaokar-15/+22
Adds a clearer message for when the async keyword is missing from a f… …unction This is a somewhat simple fix for #66731. Under the current version of Rust, if a user has a rust file that looks like this: ```rust fn boo (){} async fn foo() { boo().await; } fn main() { } ``` And they attempt to run it, they will receive an error message that looks like this: ```bash error: incorrect use of `await` --> test.rs:4:14 | 4 | boo.await(); | ^^ help: `await` is not a method call, remove the parentheses error[E0277]: the trait bound `fn() {boo}: std::future::Future` is not satisfied --> test.rs:4:5 | 4 | boo.await(); | ^^^^^^^^^ the trait `std::future::Future` is not implemented for `fn() {boo}` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0277`. ``` This is not very clear. With the changes made in this PR, when a user compiles and runs that same rust code, they will receive an error message that looks like this: ```bash error[E0277]: `()` is not a future. --> test.rs:4:5 | 4 | boo().await; | ^^^^^^^^^^^ `()` is not a future | = help: the trait `std::future::Future` is not implemented for `()` = note: required by `std::future::Future::poll` ``` In the future, I think we should make this error message even clearer, perhaps through a solution like the one described in [this comment](https://github.com/rust-lang/rust/issues/66731#issuecomment-644394287). However, as that potentially involves a major change proposal, I would rather get this change in now and make the error message a little clearer while an MCP is drafted and discussed. Signed-off-by: Nell Shamrell <nellshamrell@gmail.com>
2020-06-27Rollup merge of #73525 - cuviper:llvm11, r=nikicManish Goregaokar-57/+167
Prepare for LLVM 11 These are just the code changes needed to build with the current LLVM master (version 11). r? @nikic
2020-06-27Rollup merge of #73243 - poliorcetics:discourage-is-file, r=AmanieuManish Goregaokar-5/+30
Add documentation to point to `File::open` or `OpenOptions::open` instead of `is_file` to check read/write possibility Fixes #64170. This adds documentation to point user towards `!is_dir` instead of `is_file` when all they want to is read from a source. I ran `rg "fn is_file\("` to find all `is_file` methods, I hope I did not miss one.
2020-06-27Rollup merge of #72796 - RalfJung:mir-assign-sanity, r=matthewjasperManish Goregaokar-51/+176
MIR sanity check: validate types on assignment This expands the MIR validation added by @jonas-schievink in https://github.com/rust-lang/rust/pull/72093 to also check that on an assignment, the types of both sides match. Cc @eddyb @oli-obk
2020-06-28Auto merge of #72705 - Lucretiel:stdio-forwarding, r=Amanieubors-0/+77
Added io forwarding methods to the stdio structs Added methods to forward the `io::Read` and `io::Write` methods of the myriad wrapper structs in `stdio.rs` to their underlying readers / writers. This is especially important for the structs on the outside of a locking boundary, to ensure that the lock isn't being dropped and re-acquired in a loop.
2020-06-28Fix docstring typoCaleb Hattingh-1/+1
2020-06-28Rename the lint to clashing_extern_declarations.jumbatm-64/+91
Also, run RustFmt on the clashing_extern_fn test case and update stderrs.
2020-06-27Added the parapgrah to path::Path::is_file tooAlexis Bourget-2/+7
2020-06-27Rename two `Resolver` traitsVadim Petrochenkov-25/+24
2020-06-27Auto merge of #73671 - ehuss:update-mdbook, r=Mark-Simulacrumbors-133/+12
Update mdbook This updates mdbook to 0.4. The list of changes can be found at https://github.com/rust-lang/mdBook/blob/master/CHANGELOG.md#mdbook-040. I think the most important one is the change to include fonts with the book instead of using the Google Fonts CDN. This adds a few megabytes of fonts to the docs component. It may be possible to share the fonts across the books, but would take a fair bit of work to make that happen, so I'm not sure if it is necessary. This also removes mdbook-linkcheck. It is currently not being used, and I don't foresee it going back into use anytime soon. I would prefer not to maintain something that isn't being used, and it removes a very large number of dependencies.
2020-06-27Fix comment.ecstatic-morse-1/+1
2020-06-28Add test for issue-72352Yuki Okushi-0/+29
2020-06-28Add test for issue-71611Yuki Okushi-0/+17
2020-06-28Add test for issue-71382Yuki Okushi-0/+32
2020-06-27Add links to fs::DirEntry::metadataRob Young-1/+4
`fs::DirEntry::metadata` doesn't traverse symlinks. It is not immediately clear what to do if you do want to traverse symlinks. This change adds links to the two other `metadata` functions that will follow symlinks.
2020-06-27Update the documentation to point to open instead of is_file and is_dirAlexis Bourget-11/+15
2020-06-27Forward Hash::write_iN to Hash::write_uNNikita Popov-5/+5
2020-06-27fix typo in self-profile.mdTakuto Ikuta-1/+1
2020-06-27more LocalDefId cleanupBastian Kauschke-260/+259
2020-06-27Add test for issue-71381Yuki Okushi-0/+47
2020-06-27more LocalDefId in ty::contextBastian Kauschke-6/+10
2020-06-27use LocalDefId in module checkingBastian Kauschke-39/+39
2020-06-27Auto merge of #73779 - Manishearth:rollup-lwqd9jm, r=Manishearthbors-116/+445
Rollup of 12 pull requests Successful merges: - #72771 (Warn if linking to a private item) - #72937 (Fortanix SGX target libunwind build process changes) - #73485 (Perform obligation deduplication to avoid buggy `ExistentialMismatch`) - #73529 (Add liballoc impl SpecFromElem for i8) - #73579 (add missing doc links) - #73627 (Shortcuts for min/max on double-ended BTreeMap/BTreeSet iterators) - #73691 (Bootstrap: detect Windows based on sys.platform) - #73694 (Document the Self keyword) - #73718 (Document the super keyword) - #73728 (Document some invariants correctly/more) - #73738 (Remove irrelevant comment) - #73765 (Remove blank line) Failed merges: r? @ghost
2020-06-26Auto merge of #73596 - petrochenkov:shebang2, r=Mark-Simulacrumbors-20/+21
rustc_lexer: Simplify shebang parsing once more Fixes https://github.com/rust-lang/rust/issues/73250 (beta regression) Treat any line starting with `!#` as a shebang candidate, not only lines with something non-whitespace. This way we no longer need to define what `is_whitespace` means ([Linux shebang whitespace](https://github.com/torvalds/linux/blob/master/fs/binfmt_script.c), ASCII whitespace, Rust lexer whitespace, etc), which is nice. This change makes some invalid Rust code valid (see the regression above), but still never interprets a fragment of valid Rust code as a shebang. (This PR also removes one duplicate test.)
2020-06-26Rollup merge of #73765 - kraai:remove-blank-line, r=jonas-schievinkManish Goregaokar-1/+0
Remove blank line