Commit Graph

122684 Commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
0cf4b9de68 rustc_lint: only query typeck_tables_of when a lint needs it. 2020-06-26 02:56:23 +03:00
Nell Shamrell
5e28eb580f Adds a clearer message for when the async keyword is missing from a function
Signed-off-by: Nell Shamrell <nellshamrell@gmail.com>
2020-06-25 16:01:45 -07:00
bors
1033351a51 Auto merge of #71858 - petrochenkov:env, r=Mark-Simulacrum
Print environment variables accessed by rustc as special comments into depinfo files

So cargo (and perhaps others tools) can use them for linting (at least) or for actually rebuilding crates on env var changes.

---
I've recently observed one more forgotten environment variable in a build script 8a77d1ca3f and thought it would be nice to provide the list of accessed variables to cargo automatically as a part of depinfo.

Unsurprisingly, I wasn't the first who had this idea - cc https://github.com/rust-lang/rust/issues/70517 https://github.com/rust-lang/rust/issues/40364 https://github.com/rust-lang/rust/issues/44074.

Also, there are dozens of uses of `(option_)env!` in rustc repo and, like, half of them are not registered in build scripts.

---
Description:
- depinfo files are extended with special comments containing info about environment variables accessed during compilation.
- Comment format for environment variables with successfully retrieved value: `# env-dep:KEY=VALUE`.
- Comment format for environment variables without successfully retrieved value: `# env-dep:KEY` (can happen with `option_env!`).
- `KEY` and `VALUE` are minimally escaped (`\n`, `\r`, `\\`) so they don't break makefile comments and can be unescaped by anything that can unescape standard `escape_default` and friends.

FCP report: https://github.com/rust-lang/rust/pull/71858#issuecomment-633071488

Closes https://github.com/rust-lang/rust/issues/70517
Closes https://github.com/rust-lang/rust/issues/40364
Closes https://github.com/rust-lang/rust/issues/44074
A new issue in the cargo repo will be needed to track the cargo side of this feature.

r? @ehuss
2020-06-25 22:52:59 +00:00
Gary Guo
f9af59def2 Remove irrelevant comment 2020-06-25 23:08:58 +01:00
Vadim Petrochenkov
77b0ed70b3 proc_macro: Stop flattening groups with dummy spans 2020-06-26 00:39:31 +03:00
Nell Shamrell
5c88b5172f add exception for liballoc benches to tidy
Signed-off-by: Nell Shamrell <nellshamrell@gmail.com>
2020-06-25 13:57:29 -07:00
Nell Shamrell
f13d89eb2e disable collectionbenches for android
Signed-off-by: Nell Shamrell <nellshamrell@gmail.com>
2020-06-25 11:14:16 -07:00
Charles Lew
25e864e198 Implement mixed script confusable lint. 2020-06-26 01:39:31 +08:00
bors
50fc24d8a1 Auto merge of #72717 - poliorcetics:try-from-int-to-nzint, r=dtolnay
Add TryFrom<{int}> for NonZero{int}

Adds `TryFrom<{int}> for NonZero{int}`.

It uses the existing `NonZero{int}::new()` and `Option::ok_or()` functions, meaning the checks are not repeated.

I also added tests, I tried to follow the convention I saw in the test file.

I also used `#[stable(feature = "nzint_try_from_int_conv", since = "1.46.0")]`, but I have no idea if the feature/version are correctly named or even correct.
2020-06-25 17:37:02 +00:00
Oliver Scherer
1a355a21eb Document some invariants correctly/more 2020-06-25 19:08:06 +02:00
Andrew Paverd
8b368dbcbb Bootstrap: fallback detection of Windows 2020-06-25 15:45:24 +01:00
Anirban
4c33b7c8d6
Add responsiveness to logo
Added responsiveness to image logo based on device width (set at 90% of device width, which can be changed as per requirement)
2020-06-25 19:33:19 +05:30
bors
9f3c96b869 Auto merge of #73711 - Dylan-DPC:rollup-kzx15of, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #72700 (`improper_ctypes_definitions` lint)
 - #73516 (Allow dynamic linking for iOS/tvOS targets)
 - #73616 (Liballoc minor hash import tweak)
 - #73634 (Add UI test for issue 73592)
 - #73688 (Document the self keyword)
 - #73698 (Add procedure for prioritization notifications on Zulip)

Failed merges:

r? @ghost
2020-06-25 12:43:50 +00:00
Guillaume Gomez
33302fa7d2 Update UI test 2020-06-25 13:28:45 +02:00
Guillaume Gomez
eb6d9a49a8 Add E0766 error for unterminated double quote byte string 2020-06-25 13:28:45 +02:00
Anirban
3a1ac28231
Added clickable-link
Linked the logo/svg to https://www.rust-lang.org/
(change if required)
2020-06-25 16:43:27 +05:30
Anirban
8edcc6d00d
Add alternate text for rust logo image 2020-06-25 16:32:54 +05:30
Anirban
22fc18f177
Commit suggestion
Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
2020-06-25 16:29:37 +05:30
David Wood
11a3584de4
emitter: column width defaults to 140
This commit modifies the column width computation in the emitter when
`termize::dimensions` returns `None` so that it uses the default value
of 140 (which is used in UI testing currently) instead of `usize::MAX`
which just ends up causing overflows in later computations. This is hard
to test but appears to produce the same output as using saturating
functions instead.

Signed-off-by: David Wood <david@davidtw.co>
2020-06-25 11:56:15 +01:00
Adrian Cruceru
db6fa2fff5 Remove deprecated comments 2020-06-25 12:30:27 +02:00
Adrian Cruceru
343a9212b0 Fix comments 2020-06-25 12:01:02 +02:00
Alexis Bourget
5232e2025f Document the super keyword 2020-06-25 11:40:07 +02:00
Mateusz Mikuła
f27dcd7ee0 Rename remaining fallback to self_contained 2020-06-25 11:32:27 +02:00
Mateusz Mikuła
54293c1f15 Rename get_self_contained_lib_path 2020-06-25 11:32:09 +02:00
Mateusz Mikuła
2e3f51775a Add unstable rustc option to control self-contained linkage mode 2020-06-25 11:27:06 +02:00
bors
229e5b2640 Auto merge of #72559 - Aaron1011:feature/assoc-lang-items, r=oli-obk
Implement associated lang items

Fixes #70718

This commit allows making associated items (e.g. associated functions
and types) into lang items via the `#[lang]` attribute. This allows such
items to be accessed directly, rather than by iterating over the parent
item's associated items.

I've added `FnOnce::Output` as a lang item, and updated one old usage to
use the new lang item. The remaining uses can be updated separately.
2020-06-25 08:58:37 +00:00
Alexis Bourget
3d09017477 Add a compile fail example, binding -> variable, apply suggestions 2020-06-25 10:05:30 +02:00
Esteban Küber
520461f1fb Provide suggestions for some moved value errors
When encountering an used moved value where the previous move happened
in a `match` or `if let` pattern, suggest using `ref`. Fix #63988.

When encountering a `&mut` value that is used in multiple iterations of
a loop, suggest reborrowing it with `&mut *`. Fix #62112.
2020-06-24 17:42:26 -07:00
Dylan DPC
8d1934ec8d
Rollup merge of #73698 - spastorino:patch-1, r=wesleywiser
Add procedure for prioritization notifications on Zulip

This PR was originally opened by @LeSeulArtichaut as #73695, closing that one in favor of this one. Made some slight changes to it but can't push to @LeSeulArtichaut branch.

r? @wesleywiser @rust-lang/wg-prioritization
2020-06-25 02:03:42 +02:00
Dylan DPC
a5839f35b6
Rollup merge of #73688 - poliorcetics:self-keyword, r=joshtriplett
Document the self keyword

Partial fix of #34601.

This documents the `self` keyword, adding several examples and a link to the reference.
2020-06-25 02:03:40 +02:00
Dylan DPC
3b710970e8
Rollup merge of #73634 - nbdd0121:typeck, r=nikomatsakis
Add UI test for issue 73592

It happens that #72280 accidentally fixed a bug which is later discovered in #73592. This PR adds a UI test to prevent future regression.

Closes #73592
2020-06-25 02:03:38 +02:00
Dylan DPC
6c1a91edd9
Rollup merge of #73616 - pickfire:liballoc-hash, r=joshtriplett
Liballoc minor hash import tweak
2020-06-25 02:03:36 +02:00
Dylan DPC
d6c674bc14
Rollup merge of #73516 - Crabapple-iOS:feature/apple-dynamic-linking, r=nikomatsakis
Allow dynamic linking for iOS/tvOS targets

During the development and testing of the [Crabapple project](https://github.com/Crabapple-iOS/Crabapple), one obstacle was the lack of `cdylib` target support for iOS. Surprisingly, once `dynamic_linking` was enabled for iOS targets, it worked seemingly flawlessly.

I could not find any information on why this was initially or still is disabled.
2020-06-25 02:03:34 +02:00
Dylan DPC
67db7a2d05
Rollup merge of #72700 - davidtwco:issue-66220-improper-ctypes-declarations, r=lcnr,varkor
`improper_ctypes_definitions` lint

Addresses #19834, #66220, and #66373.

This PR takes another attempt at #65134 (reverted in #66378). Instead of modifying the existing `improper_ctypes` lint to consider `extern "C" fn` definitions in addition to `extern "C" {}` declarations, this PR adds a new lint - `improper_ctypes_definitions` - which only applies to `extern "C" fn` definitions.

In addition, the `improper_ctype_definitions` lint differs from `improper_ctypes` by considering `*T` and `&T` (where `T: Sized`) FFI-safe (addressing #66220).

There wasn't a clear consensus in #66220 (where the issues with #65134 were primarily discussed) on the approach to take, but there has [been some discussion in Zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/.2366220.20improper_ctypes.20definitions.20vs.20declarations/near/198903086). I fully expect that we'll want to iterate on this before landing.

cc @varkor + @shepmaster (from #19834) @hanna-kruppe (active in discussing #66220), @SimonSapin (#65134 caused problems for Servo, want to make sure that this PR doesn't)
2020-06-25 02:03:32 +02:00
Esteban Küber
8f40dae93b Suggest type param trait bound for binop only when appropriate
Verify that the binop trait *is* implemented for the types *if* all the
involved type parameters are replaced with fresh inferred types. When
this is the case, it means that the type parameter was indeed missing a
trait bound. If this is not the case, provide a generic `note` refering
to the type that doesn't implement the expected trait.
2020-06-24 16:17:04 -07:00
Aaron Hill
a13d4678fe
Implement associated lang items
Fixes #70718

This commit allows making associated items (e.g. associated functions
and types) into lang items via the `#[lang]` attribute. This allows such
items to be accessed directly, rather than by iterating over the parent
item's associated items.

I've added `FnOnce::Output` as a lang item, and updated one old usage to
use the new lang item. The remaining uses can be updated separately.
2020-06-24 19:08:11 -04:00
Tyler Mandry
887fbd9d34 Split out async fn and generator test
This keeps FileCheck from tripping over unimportant differences in
codegen.
2020-06-24 15:08:59 -07:00
Tyler Mandry
fe3df646fe Give up on checking filename 2020-06-24 15:08:59 -07:00
Tyler Mandry
2d652d9d73 Add generator-debug test for MSVC
..which doesn't use variant types.
2020-06-24 15:08:59 -07:00
Tyler Mandry
477ecc51ca Generalize generator-debug test a bit
Don't be so reliant on particular line ordering (though FileCheck makes
this hard in general, IMO). Also disable for MSVC.
2020-06-24 14:53:30 -07:00
Tyler Mandry
547d86307c Improve GeneratorLayout debug output 2020-06-24 14:53:30 -07:00
Tyler Mandry
242a5cd4c6 Allow calling GeneratorSubsts::variant_name() without substs 2020-06-24 14:53:29 -07:00
Tyler Mandry
367858aedc Add test for generator debuginfo 2020-06-24 14:53:29 -07:00
Tyler Mandry
eb726c0fce Add Artificial flag to generator variants 2020-06-24 14:53:29 -07:00
Tyler Mandry
a5a831f511 Emit line info for generator variants 2020-06-24 14:53:29 -07:00
LeSeulArtichaut
2735f43cef
Fix links in SliceIndex documentation 2020-06-24 23:34:19 +02:00
Esteban Küber
09af1845d7 review comments: clean up code
* deduplicate logic
* fix typos
* remove unnecessary state
2020-06-24 14:23:45 -07:00
bors
67100f61e6 Auto merge of #73660 - flip1995:clippyup, r=nikomatsakis
Update Clippy
2020-06-24 19:33:02 +00:00
Eduardo Sánchez Muñoz
771a1d8e0a Make std::panicking::panic_count::is_zero inline and move the slow path into a separate cold function. 2020-06-24 18:17:27 +02:00
bors
d8ed1b03c2 Auto merge of #73692 - Dylan-DPC:rollup-ehzsbfw, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #73638 (Remove unused crate imports in 2018 edition crates)
 - #73639 (Change heuristic for determining range literal)
 - #73646 (Add some regression tests)
 - #73652 (Add re-exports to use suggestions)
 - #73667 (Update BTreeMap::new() doc)
 - #73675 (Update books)

Failed merges:

r? @ghost
2020-06-24 15:47:22 +00:00