Commit Graph

137045 Commits

Author SHA1 Message Date
Jonas Schievink
05a95a4372
Rollup merge of #81170 - xfix:vecdeque-bug-fix, r=sfackler
Avoid hash_slice in VecDeque's Hash implementation

Fixes #80303.
2021-01-23 20:16:02 +01:00
Jonas Schievink
57d655368b
Rollup merge of #81130 - pierwill:edit-depnode, r=jyn514
Edit rustc_middle::dep_graph module documentation

This is similar to work approved and then closed in https://github.com/rust-lang/rust/pull/80325 due to a bad rebase.
2021-01-23 20:16:00 +01:00
Jonas Schievink
3382771dfd
Rollup merge of #81072 - RalfJung:place-ref-ty, r=oli-obk
PlaceRef::ty: use method call syntax
2021-01-23 20:15:59 +01:00
Jonas Schievink
7635462fe8
Rollup merge of #79841 - fintelia:patch-6, r=kennytm
More clear documentation for NonNull<T>

Rephrase and hopefully clarify the discussion of covariance in `NonNull<T>` documentation.

I'm very much not an expert so someone should definitely double check the correctness of what I'm saying. At the same time, the new language makes more sense to me, so hopefully it also is more logical to others whose knowledge of covariance basically begins and ends with the [Rustonomicon chapter](https://doc.rust-lang.org/nomicon/subtyping.html).

Related to #48929.
2021-01-23 20:15:54 +01:00
Arpad Borsos
9b1d27d440 Add option to control doctest run directory
This option will allow splitting the compile-time from the run-time
directory of doctest invocations and is one step to solve
https://github.com/rust-lang/cargo/issues/8993#issuecomment-760088944
2021-01-23 18:52:51 +01:00
David
2f5ce8e802
Fix small typo 2021-01-23 12:31:40 -05:00
LeSeulArtichaut
1129e86780 Cleanup render_stability_since_raw to remove code duplication 2021-01-23 18:05:59 +01:00
bjorn3
fa12fdbc29 Fix review comments 2021-01-23 17:55:39 +01:00
oli
03c6364160 Move test to mir-opt so we actually see that no inlining is happening 2021-01-23 16:51:23 +00:00
oli
209889ddc1 Leave some notes for future changes to the MIR opt level of mir inlining 2021-01-23 16:51:23 +00:00
oli
f238148214 Allow libcore to be built with MIR inlining
Inlining caused new lints to get emitted, so we silence those lints now that we actually can.
2021-01-23 16:51:23 +00:00
oli
0491e74dd9 Make sure that const prop does not produce unsilenceable lints after inlining 2021-01-23 16:51:23 +00:00
oli
b8727e2d60 Prevent query cycles during inlining 2021-01-23 16:51:22 +00:00
Joshua Nelson
ca72f9ed70 Calculate self-profile strings in Compiler::enter instead in codegen
This avoids each tool having to separately find and call
`self_profile_alloc_strings`.

- Don't compute the global context if it hasn't yet been computed

  This avoids giving extraneous errors about unresolved names if an error
  occurs during parsing.
2021-01-23 11:42:15 -05:00
Joshua Nelson
1d1010f1af Add more timing info to render_html
- Show `create_renderer` and `renderer_after_crate` by default
- Don't rewrite `extra_verbose_generic_activity`
2021-01-23 11:42:11 -05:00
bors
4d0dd02ee0 Auto merge of #80579 - RalfJung:no-fallible-promotion, r=oli-obk
avoid promoting division, modulo and indexing operations that could fail

For division, `x / y` will still be promoted if `y` is a non-zero integer literal; however, `1/(1+1)` will not be promoted any more.

While at it, also see if we can reject promoting floating-point arithmetic (which are [complicated](https://github.com/rust-lang/unsafe-code-guidelines/issues/237) so maybe we should not promote them).

This will need a crater run to see if there's code out there that relies on these things being promoted.

If we can land this, promoteds in `fn`/`const fn` cannot fail to evaluate any more, which should let us do some simplifications in codegen/Miri!

Cc https://github.com/rust-lang/rfcs/pull/3027
Fixes https://github.com/rust-lang/rust/issues/61821
r? `@oli-obk`
2021-01-23 13:19:04 +00:00
Camille GILLOT
97ee7c7e5a Allow to query the HIR crate node. 2021-01-23 13:58:09 +01:00
Camille GILLOT
89360931f2 Fix proc macro crate encoding. 2021-01-23 13:57:43 +01:00
Camille GILLOT
4eb0bbd2a8 Filter stability. 2021-01-23 13:57:17 +01:00
Camille GILLOT
4e60ecf783 Iterate on deprecation. 2021-01-23 13:56:50 +01:00
Camille GILLOT
4468473e1b Iterate on const_stability. 2021-01-23 13:56:24 +01:00
Camille GILLOT
f1a7e1df3a Iterate on stability. 2021-01-23 13:55:57 +01:00
Camille GILLOT
7a5620c63a Iterate DefId to encode expn_that_defined. 2021-01-23 13:55:35 +01:00
Camille GILLOT
293e885daa Iterate DefId to encode attributes. 2021-01-23 13:54:22 +01:00
Camille GILLOT
f1bf6d0e48 Iterate DefId to encode visibility. 2021-01-23 13:53:26 +01:00
Camille GILLOT
a185cdbc59 Iterate to encode def_kind. 2021-01-23 13:51:00 +01:00
Camille GILLOT
c58a6fa422 Iterate DefId to encode spans. 2021-01-23 13:44:02 +01:00
Camille GILLOT
0b6c9e9f88 Encode DefKind directly. 2021-01-23 13:42:56 +01:00
oli
819b008d8b Put dynamic check tests into their own file 2021-01-23 12:35:45 +00:00
Camille GILLOT
064a351953 Infallible version of def_span. 2021-01-23 13:35:22 +01:00
oli
cd09871157 Cover more cases in the test suite 2021-01-23 11:58:58 +00:00
bjorn3
c3367dbc6f Add some comments to PassMode 2021-01-23 12:57:35 +01:00
oli
14f39aa81a Do not allow arbitrary mutable references in static mut, just keep with the existing exceptions 2021-01-23 11:33:45 +00:00
oli
00e62fabf1 Adjust wording of a diagnostic 2021-01-23 11:33:45 +00:00
oli
3cd0b46bac Fix a comment that only made sense in the context of a dataflow based mutability check 2021-01-23 11:33:45 +00:00
oli
b217fab960 Rename tests to what their code actually does 2021-01-23 11:33:45 +00:00
oli
d118021f8b Permit mutable references in all const contexts 2021-01-23 11:33:45 +00:00
Bastian Kauschke
688cf6406a replace RefCell with Cell in FnCtxt 2021-01-23 11:47:38 +01:00
bjorn3
794880c6b5 Don't provide backend_optimization_level query for extern crates 2021-01-23 11:11:51 +01:00
bjorn3
a93dace55c Never create an temporary PassMode::Direct when it is not a valid pass mode for a type 2021-01-23 10:30:39 +01:00
bjorn3
ba484de538 Move some code around 2021-01-23 10:30:39 +01:00
bjorn3
da0309c711 Use PassMode::Pair by default for Abi::ScalarPair for all abi's and in return position
Abi::ScalarPair is only ever used for types that don't have a stable
layout anyway so this doesn't break any FFI. It does however reduce the
amount of special casing on the abi outside of the code responsible for
abi specific adjustments to the pass mode.
2021-01-23 10:30:38 +01:00
bjorn3
2bde7d21cc Remove unused dependency 2021-01-23 10:30:38 +01:00
bors
4153fa82ff Auto merge of #80715 - JulianKnodt:skip_opt, r=nagisa
Change branching in `iter.skip()`

Optimize branching in `Skip`, which was brought up in #80416.
This assumes that if `next` is called, it's likely that there will be more calls to `next`, and the branch for skip will only be hit once thus it's unlikely to take that path. Even w/o the `unlikely` intrinsic, it compiles more efficiently, I believe because the path where `next` is called is always taken.

It should be noted there are very few places in the compiler where `Skip` is used, so probably won't have a noticeable perf impact.

[New impl](https://godbolt.org/z/85rdj4)
[Old impl](https://godbolt.org/z/Wc74rh)

[Some additional asm examples](https://godbolt.org/z/feKzoz) although they really don't have a ton of difference between them.
2021-01-23 09:25:11 +00:00
bors
1986b58c64 Auto merge of #80065 - b-naber:parse-angle-arg-diagnostics, r=petrochenkov
Improve diagnostics when parsing angle args

https://github.com/rust-lang/rust/pull/79266 introduced parsing of generic arguments in associated type constraints, this however resulted in possibly very confusing error messages in cases in which closing angle brackets were missing such as in `Vec<(u32, _, _) = vec![]`, which outputs an incorrectly parsed equality constraint error, as noted by `@cynecx.`

This PR tries to provide better error messages in such cases.

r? `@petrochenkov`
2021-01-23 06:27:21 +00:00
bors
fe0fa59b50 Auto merge of #76391 - danii:master, r=cuviper
Split up core/test/iter.rs into multiple files

This PR removes the `// ignore-tidy-filelength` at the top of [iter.rs](04f44fb923/library/core/tests/iter.rs) by splitting it into several sub files. I have split the file per test, based on what I felt the test was really trying to test.
Addresses issue #60302.
- [associated_util.rs](d29180a8ed/library/core/tests/iter/associated_util.rs) - For testing the module level functions. (Maybe should be renamed?)
- [collection.rs](d29180a8ed/library/core/tests/iter/collection.rs) - For testing methods that use the values of all the items in an iterator, and creates one value from them, whether it be a Vec of all the values, or a number that represents the sum.
- [mod.rs](d29180a8ed/library/core/tests/iter/mod.rs) - For utility structs used in all tests, and other tests I didn't know where to place.
- [range.rs](d29180a8ed/library/core/tests/iter/range.rs) - For testing ranges.
- [transformation.rs](d29180a8ed/library/core/tests/iter/transformation.rs) - For testing methods that transform all the values in an iterator.
- [util.rs](d29180a8ed/library/core/tests/iter/util.rs) - For testing methods that provide utility in more specific use cases.

"Programatically"
-----------------------
You may have noticed I "Programatically" split up the file. [This is how](https://gist.github.com/danii/a58b3bcafa9faf1c3e4b01ad7495baf4) I managed to do that. 😛 Hope that's fine.
2021-01-23 03:33:16 +00:00
Camelid
93e51b185a rustdoc: Fix visibility of trait and impl items 2021-01-22 18:30:30 -08:00
bors
693ed05bbd Auto merge of #81017 - Aaron1011:collect-trailing-token, r=petrochenkov
Refactor token collection to capture trailing token immediately

Split out from https://github.com/rust-lang/rust/pull/80689 - when we start capturing more information about attribute targets, we'll need to know in advance if we're capturing a trailing token or not.

r? `@ghost`
2021-01-23 00:42:37 +00:00
Joshua Nelson
bf86fd5221 Fix <unknown> queries
This happened because `alloc_query_strings` was never called.
2021-01-22 19:20:37 -05:00
Tomasz Miąsko
99a1dea1b7 Do not mark unit variants as used when in path pattern
Record that we are processing a pattern so that code responsible for
handling path resolution can correctly decide whether to mark it as
used or not.
2021-01-23 00:00:00 +00:00