Commit Graph

125621 Commits

Author SHA1 Message Date
bors 390bb3406d Auto merge of #92155 - m-ou-se:panic-fn, r=eddyb
Use panic() instead of panic!() in some places in core.

See https://github.com/rust-lang/rust/pull/92068 and https://github.com/rust-lang/rust/pull/92140.

This avoids the `panic!()` macro in a few potentially hot paths. This becomes more relevant when switching `core` to Rust 2021, as it'll avoid format_args!() and save some compilation time. (It doesn't make a huge difference, but still.) (Also the errors in const panic become slightly nicer.)
2021-12-23 05:17:47 +00:00
Eric Huss 4bbbdb7f45 Remove VCVARS_BAT 2021-12-22 19:18:06 -08:00
Matthias Krüger 051d91a5ce Rollup merge of #92146 - willcrichton:example-analyzer, r=jyn514
Don't emit shared files when scraping examples from dependencies in Rustdoc

This PR fixes #91605. The issue is that `Context::init` gets called when scraping dependencies. By default, just calling `init` calls into `write_shared` and `build_index` which register the scraped crate into a list that later gets used for the Rustdoc sidebar. The fix is to ensure that `write_shared` is not called when scraping.

r? `@jyn514`
2021-12-23 00:28:55 +01:00
Matthias Krüger 9f68b6e01e Rollup merge of #92026 - jsha:jsdoc-search, r=GuillaumeGomez
Add some JSDoc comments to rustdoc JS

This follows the Closure Compiler dialect of JSDoc, so we can use it to do some basic type checking. We don't plan to compile with Closure Compiler, just use it to check types. See https://github.com/google/closure-compiler/wiki/ for details.

To try checking the annotations, run:

```
npm i -g google-closure-compiler
google-closure-compiler -W VERBOSE build/x86_64-unknown-linux-gnu/doc/{search-index1.59.0.js,crates1.59.0.js} src/librustdoc/html/static/js/{search.js,main.js,storage.js} --externs src/librustdoc/html/static/js/externs.js >/dev/null
```

You'll see some warnings that "String continuations are not recommended". I'm not addressing those right now.

[Discussed on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/doc.20format.20for.20JS/near/265209466).

r? `@GuillaumeGomez`
2021-12-23 00:28:52 +01:00
Matthias Krüger d8bf974df5 Rollup merge of #91544 - rukai:91492, r=wesleywiser
Fix duplicate derive clone suggestion

closes https://github.com/rust-lang/rust/issues/91492

The addition of:
```rust
derives.sort();
derives.dedup();
```
is what actually solves the problem.
The rest is just cleanup.

I want to improve the diagnostic message to provide the suggestion as a proper diff but ran into some problems, so I'll attempt that again in a follow up PR.
2021-12-23 00:28:51 +01:00
Jacob Hoffman-Andrews 7ba086c6db Add some JSDoc comments to rustdoc JS
This follows the Closure Compiler dialect of JSDoc, so we
can use it to do some basic type checking. We don't plan to
compile with Closure Compiler, just use it to check types. See
https://github.com/google/closure-compiler/wiki/ for details.
2021-12-22 14:20:04 -08:00
Tomasz Miąsko 0db192a48c Delay remaining span_bugs in drop elaboration
This follows changes from #67967 and converts remaining `span_bug`s into
delayed bugs, since for const items drop elaboration might be executed
on a MIR which failed borrowck.
2021-12-22 21:32:06 +01:00
pierwill 155a4a87af Upgrade tracing-subscriber 2021-12-22 10:47:36 -06:00
Mara Bos 22c4160c76 Bless clippy test. 2021-12-22 17:25:44 +01:00
pierwill ea25b779eb Update chalk to 0.75.0
- Compute flags in `intern_ty`
- Remove tracing-serde from PERMITTED_DEPENDENCIES
- Disable `tracing-full` feature in `chalk-solve`
- Bump tracing-tree to 0.2.0
2021-12-22 10:07:44 -06:00
Jack Huey d3aecc1001 When obligation is a sized predicate, prefer projection or object candidates instead of param_env candidates 2021-12-22 04:14:20 -05:00
Noah Lev 82d8ed4909 Remove apparently unnecessary conditional in doc_value
I need to remove this conditional for #91072, but while it seems
unnecessary, we are not certain. So, the plan is to first remove the
conditional and see if any regressions pop up before doing the refactor.
This way, it will be easier to revert if there are subtle regressions.
2021-12-21 18:00:25 -08:00
Guillaume Gomez 0d33f6dfa9 Move pattern matching outside of the loop 2021-12-21 23:13:45 +01:00
Aaron Hill f1d682334d Add #[rustc_clean(loaded_from_disk)] to assert loading of query result
Currently, you can use `#[rustc_clean]` to assert to that a particular
query (technically, a `DepNode`) is green or red. However, a green
`DepNode` does not mean that the query result was actually deserialized
from disk - we might have never re-run a query that needed the result.

Some incremental tests are written as regression tests for ICEs that
occured during query result decoding. Using
`#[rustc_clean(loaded_from_disk="typeck")]`, you can now assert
that the result of a particular query (e.g. `typeck`) was actually
loaded from disk, in addition to being green.
2021-12-21 16:34:12 -05:00
Caleb Cartwright 7b8303d479 chore: cleanup unused imports 2021-12-21 10:55:39 -06:00
Caleb Cartwright 97c3e48834 refactor: encapsulate cfg_if parsing within parse mod 2021-12-21 10:55:39 -06:00
Caleb Cartwright 62987562e2 refactor: extract final rustc_parse touchpoint from macros.rs 2021-12-21 10:55:39 -06:00
Caleb Cartwright c8cf454173 refactor: move lazy_static parsing to parse mod 2021-12-21 10:55:39 -06:00
Caleb Cartwright 9ce5470a8c refactor: move macro arg parsing to parse mod 2021-12-21 10:55:39 -06:00
Caleb Cartwright 40b73d8fee refactor: rename syntux mod to parse 2021-12-21 10:55:39 -06:00
fee1-dead 1ea4aa0036 Fixed a small typo in ui test comments 2021-12-22 00:25:50 +08:00
bors e100ec5bc7 Auto merge of #92095 - vacuus:master, r=jyn514
rustdoc: Remove 'need_backline' field from `DocFragment`

Fixes [#92084](https://github.com/rust-lang/rust/issues/92084)
2021-12-21 16:04:54 +00:00
bors 8ad3c1dd1d Auto merge of #92149 - fee1-dead:cache-fix, r=oli-obk
Fix bad caching of `~const Drop` bounds

Fixes #92111.
2021-12-21 12:49:10 +00:00
Mara Bos ad6ef48dd9 Use panic() instead of panic!() in some places in core. 2021-12-21 10:39:00 +01:00
Matthias Krüger b9c3243801 Rollup merge of #92127 - GuillaumeGomez:search-results-duplicate-removal, r=jsha
Move duplicates removal when generating results instead of when displaying them

Currently, we store 200 results per tab and then display them. However, it was possible to have duplicates which is why we have this check. However, instead of doing it when displaying the results, it's much better instead to do it even before to simplify the display part a bit.

r? `@jsha`
2021-12-21 08:33:41 +01:00
Matthias Krüger 790950a530 Rollup merge of #91770 - TaKO8Ki:suggest-adding-cfg-test, r=joshtriplett
Suggest adding a `#[cfg(test)]` to to a test module

closes #88138
2021-12-21 08:33:39 +01:00
Matthias Krüger af09d24ff6 Rollup merge of #91412 - compiler-errors:issue-86035, r=oli-obk
Improve suggestions for importing out-of-scope traits reexported as `_`

1. Fix up the `parent_map` query to prefer visible parents that _don't_ export items with the name `_`.
    * I'm not sure if I modified this query properly. Not sure if we want to check for other idents than `kw::Underscore`.
    * This also has the side-effect of not doing BFS on any modules re-exported as `_`, but I think that's desirable here too (or else we get suggestions for paths like `a::_::b` like in [this doctest example](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=d9505ea45bb80adf40bb991298f952be)).
2. Bail in `try_print_visible_def_path` if the `def_id` is re-exported as `_`, which will fall back to printing the def-id's real (definition) path.
    * Side-effect of this is that we print paths that are not actually public, but it seems we already sometimes suggest `use`ing paths that are private anyways. See [this doctest example](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=bad513ed3241f8ff87579eed8046ad10) for demonstration of current behavior.
3. Suggest a glob-import (for example `my_library::prelude::*`) if the trait in question is only pub-exported as `_`, as a fallback.
    ```
    use foo::bar::prelude::*; // trait MyTrait
    ```
    * I think this is good fallback behavior to suggest instead of doing nothing. Thanks to the original issue filer for suggesting this.

I was somewhat opinionated about behaviors in this PR, and I'm totally open to limiting the impact of my changes or only landing parts of this. Happy to receive feedback if there are better ways to the same end.

Fixes #86035
2021-12-21 08:33:37 +01:00
Deadbeef aaaad5b46b Fix bad caching of ~const Drop bounds 2021-12-21 13:25:43 +08:00
Michael Goulet 682a3428a3 Fixup tests for issue-86035 2021-12-20 19:53:31 -08:00
Michael Goulet 48dab5c960 Test for issue-86035 2021-12-20 19:50:06 -08:00
Wesley Wiser ef57f249a2 [code coverage] Fix missing dead code in modules that are never called
The issue here is that the logic used to determine which CGU to put the
dead function stubs in doesn't handle cases where a module is never
assigned to a CGU.

The partitioning logic also caused issues in #85461 where inline
functions were duplicated into multiple CGUs resulting in duplicate
symbols.

This commit fixes the issue by removing the complex logic used to assign
dead code stubs to CGUs and replaces it with a much simplier model: we
pick one CGU to hold all the dead code stubs. We pick a CGU which has
exported items which increases the likelihood the linker won't throw
away our dead functions and we pick the smallest to minimize the impact
on compilation times for crates with very large CGUs.

Fixes #86177
Fixes #85718
Fixes #79622
2021-12-20 17:08:29 -05:00
Wesley Wiser 341d65d975 Add test case for #86177 and #85718 2021-12-20 16:53:20 -05:00
Ralf Jung b5c7530fcf compare calling convention instead of call ABI 2021-12-20 22:37:14 +01:00
Guillaume Gomez 879d28d3c1 Move duplicates removal when generating results instead of when displaying them 2021-12-20 18:01:04 +01:00
Ralf Jung c6382869de update Miri 2021-12-20 17:02:29 +01:00
bors 60f3bd78ee Auto merge of #92041 - Aaron1011:remove-speculative-evaluation, r=jackh726
Remove 'speculative evaluation' of predicates

Performing 'speculative evaluation' introduces caching bugs that
cannot be fixed without invasive changes to projection.

Hopefully, we can win back most of the performance lost by
re-adding 'cache completion'

Fixes #90662
2021-12-20 07:30:16 +00:00
bors 940a97a910 Auto merge of #91900 - pitaj:fix-91714, r=jyn514
rustdoc: make `--passes` and `--no-defaults` have no effect

Fixes #91714

One potential issue is that currently there is no stable way to achieve `--document-hidden-items`. This affects test `issue-15347`.

I also had to modify the tests `issue-42875` and `no-compiler-export`. Regardless of combinations of `--document-hidden-items` and `--document-private-items`, I was unable to get these to pass without the modifications. I left behind a comment noting the change.
2021-12-20 04:21:12 +00:00
SparrowLii 643484416b add test files 2021-12-20 10:39:02 +08:00
Roc Yu 386ab1ed5c Remove 'need_backline' field of DocFragment 2021-12-19 19:38:59 -05:00
vacuus 38167a806c Omit check of a successive line in loop
I think that s == "" is the only edge case (as it makes iter.next() return None the first time). The early return is necessary so that the last character of 'out' isn't popped if s == "" && !frag.need_backline
2021-12-19 17:30:37 -05:00
Simonas Kazlauskas 2b821f211b Backport LLVM changes to disable deferred inlining 2021-12-19 23:49:03 +02:00
Caleb Cartwright 8bf82aeb83 Merge remote-tracking branch 'upstream/master' into subtree-sync-2021-12-19 2021-12-19 15:22:45 -06:00
Matthias Krüger c088e5092b Rollup merge of #91791 - terrarier2111:fix-float-ice, r=nagisa
Fix an ICE when lowering a float with missing exponent magnitude

This fixes: https://github.com/rust-lang/rust/issues/91434
2021-12-19 17:38:33 +01:00
bors 41c3017c82 Auto merge of #92099 - matthiaskrgr:rollup-4gwv67m, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #91141 (Revert "Temporarily rename int_roundings functions to avoid conflicts")
 - #91984 (Remove `in_band_lifetimes` from `rustc_middle`)
 - #92028 (Sync portable-simd to fix libcore build for AVX-512 enabled targets)
 - #92042 (Enable `#[thread_local]` for all windows-msvc targets)
 - #92071 (Update example code for Vec::splice to change the length)
 - #92077 (rustdoc: Remove unused `collapsed` field)
 - #92081 (rustdoc: Remove unnecessary `need_backline` function)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-12-19 12:36:56 +00:00
threadexception 0003280b9b Fix an ICE when lowering a float with missing exponent magnitude
Co-authored-by: Simonas Kazlauskas <github@kazlauskas.me>
2021-12-19 11:52:33 +01:00
Matthias Krüger 3340666812 Rollup merge of #92081 - jyn514:need-backline, r=GuillaumeGomez
rustdoc: Remove unnecessary `need_backline` function

r? `@GuillaumeGomez`
2021-12-19 10:45:56 +01:00
Matthias Krüger 1f080f64ee Rollup merge of #92077 - jyn514:remove-collapsed, r=GuillaumeGomez
rustdoc: Remove unused `collapsed` field

`render/context` always runs after `run_global_context`, so it was always set to `true`.

This is a holdover from when rustdoc allowed configuring passes, but the `collapse-docs` pass was
removed ages ago, and the ability to configure passes is about to be removed.

Found while reviewing https://github.com/rust-lang/rust/pull/91305.
2021-12-19 10:45:55 +01:00
bors a41a6925ba Auto merge of #91957 - nnethercote:rm-SymbolStr, r=oli-obk
Remove `SymbolStr`

This was originally proposed in https://github.com/rust-lang/rust/pull/74554#discussion_r466203544. As well as removing the icky `SymbolStr` type, it allows the removal of a lot of `&` and `*` occurrences.

Best reviewed one commit at a time.

r? `@oli-obk`
2021-12-19 09:31:37 +00:00
bors 8f54061900 Auto merge of #91871 - camelid:urlpartsbuilder, r=GuillaumeGomez
rustdoc: Add `UrlPartsBuilder`

This is a type for efficiently and easily constructing the part of a URL
after the domain: `nightly/core/str/struct.Bytes.html`.

It allows simplifying some code and avoiding some allocations in the
`href_*` functions.

It will also allow making `Cache.paths` et al. use `Symbol` without
having to allocate `String`s in the `href_*` functions. `String`s would
be necessary otherwise because `Symbol::as_str()` returns `SymbolStr`,
whose `Deref<Target = str>` impl requires the `str` to not outlive it.
This is the primary motivation for the addition of `UrlPartsBuilder`.
2021-12-19 06:26:07 +00:00
Matthias Krüger d486e68ab2 Rollup merge of #92082 - jyn514:remove-from-iterator, r=jyn514
rustdoc: Write doc-comments directly instead of using FromIterator

The FromIterator impl made the code much harder to understand. The types
don't make sense until you realize there's a custom FromIterator impl.

This is the first commit from https://github.com/rust-lang/rust/pull/91305; since ``@camelid`` wrote it originally I don't feel bad unilaterally approving it.

r? ``@ghost``
``@bors`` r+

Note that this will conflict with https://github.com/rust-lang/rust/pull/92078.
2021-12-19 00:38:44 +01:00