Commit Graph

571 Commits

Author SHA1 Message Date
Dylan DPC fffc6504bc Rollup merge of #99436 - Nilstrieb:toggle-box-noalias, r=fee1-dead
Add flag to configure `noalias` on `Box<T>`

The aliasing rules of `Box<T>` are still not decided, but currently, `Box<T>` is unique and gets `noalias`. To aid making an informed decision about the future of `Box<T>`, this PR adds a flag `-Zbox-noalias` to configure `noalias` for `Box<T>` (for example, for benchmarking). The same flag already exists for `&mut T` `noalias`, where it was added because it was the problem of various miscompilations in LLVM.

For more information, see rust-lang/unsafe-code-guidelines#326
2022-07-20 16:17:20 +05:30
nils 7c900c9b45 Add flag to configure noalias on Box<T>
To aid making an informed decision about the aliasing
rules of box, give users an option to remove `noalias`
from box.
2022-07-19 16:02:59 +02:00
Michael Howell 1169832f2f rustdoc: extend #[doc(tuple_variadic)] to fn pointers
The attribute is also renamed `fake_variadic`.
2022-07-17 16:32:06 -07:00
David Wood 78b19a90b7 passes: migrate half of check_attr
Migrate half of the `rustc_passes::check_attr` diagnostics to using
diagnostic derives and being translatable.
2022-07-15 16:13:49 +01:00
Guillaume Gomez 349a3fc6a3 Update -zhelp and -chelp rustdoc-ui tests to use regex-error-pattern 2022-07-12 11:20:36 +02:00
Matthias Krüger 24d241a884 Rollup merge of #99142 - notriddle:notriddle/doctest-multiline-crate-attributes, r=GuillaumeGomez
fix(doctest): treat fatal parse errors as incomplete attributes

Fixes #99089
2022-07-11 22:39:07 +02:00
Guillaume Gomez b65d3a6ef2 Add tests for -Chelp and -Zhelp 2022-07-11 11:27:35 +02:00
Michael Howell 6c44357e14 fix(doctest): treat fatal parse errors as incomplete attributes
Fixes #99089
2022-07-10 20:58:54 -07:00
Matthias Krüger b36e58a458 Rollup merge of #95635 - davidtwco:terminal-width-stabilization, r=oli-obk
sess: stabilize `--terminal-width` as `--diagnostic-width`

Formerly `-Zterminal-width`, `--terminal-width` allows the user or build
tool to inform rustc of the width of the terminal so that diagnostics
can be truncated.

Pending agreement to stabilize, see tracking issue at #84673.

r? ```@oli-obk```
2022-07-08 08:00:36 +02:00
David Wood 44c1fcc04d session: output-width -> diagnostic-width
Rename the `--output-width` flag to `--diagnostic-width` as this appears
to be the preferred name within the compiler team.

Signed-off-by: David Wood <david.wood@huawei.com>
2022-07-06 17:43:33 +01:00
David Wood cd23af6793 session: terminal-width -> output-width
Rename the `--terminal-width` flag to `--output-width` as the behaviour
doesn't just apply to terminals (and so is slightly less accurate).

Signed-off-by: David Wood <david.wood@huawei.com>
2022-07-06 17:38:18 +01:00
David Wood e5288842fa sess: stabilize --terminal-width
Formerly `-Zterminal-width`, `--terminal-width` allows the user or build
tool to inform rustc of the width of the terminal so that diagnostics
can be truncated.

Signed-off-by: David Wood <david.wood@huawei.com>
2022-07-06 17:32:59 +01:00
Takayuki Maeda 83dea35384 replace guess_head_span with def_span 2022-07-06 19:09:47 +09:00
Takayuki Maeda dcd6620e36 add regression test for #79467 2022-07-04 22:29:03 +09:00
Ralf Jung ce76d7312f Rollup merge of #98799 - jyn514:rustdoc-lint-help, r=GuillaumeGomez
Fix bug in `rustdoc -Whelp`

Previously, this printed the debugging options, not the lint options,
and only handled `-Whelp`, not `-A/-D/-F`.

This also fixes a few other misc issues:
- Fix `// check-stdout` for UI tests; previously it only worked for run-fail and compile-fail tests
- Add lint headers for tool lints, not just builtin lints

https://github.com/rust-lang/rust/pull/98533#issuecomment-1172004197

r? ```@GuillaumeGomez```
2022-07-03 16:41:57 -04:00
Joshua Nelson 17da4e06f2 Fix bug in rustdoc -Whelp
Previously, this printed the debugging options, not the lint options,
and only handled `-Whelp`, not `-A/-D/-F`.

This also fixes a few other misc issues:
- Fix `// check-stdout` for UI tests; previously it only worked for run-fail and compile-fail tests
- Add lint headers for tool lints, not just builtin lints
- Remove duplicate run-make test
2022-07-02 02:11:49 -05:00
Dylan DPC 83dde88fbd Rollup merge of #98653 - TaKO8Ki:add-regression-test-for-79494, r=Mark-Simulacrum
Add regression test for #79494

closes #79494
2022-07-02 12:23:39 +05:30
bors 9a6fa4f118 Auto merge of #98781 - GuillaumeGomez:rollup-798kb8u, r=GuillaumeGomez
Rollup of 5 pull requests

Successful merges:

 - #97249 (`<details>`/`<summary>` UI fixes)
 - #98418 (Allow macOS to build LLVM as shared library)
 - #98460 (Use CSS variables to handle theming)
 - #98497 (Improve some inference diagnostics)
 - #98708 (rustdoc: fix 98690 Panic if invalid path for -Z persist-doctests)

Failed merges:

 - #98761 (more `need_type_info` improvements)

r? `@ghost`
`@rustbot` modify labels: rollup
2022-07-01 22:55:22 +00:00
Camille GILLOT 42e4eee893 Shorten def_span for more items. 2022-07-01 17:39:19 +02:00
pinkforest 6565509c19 rustdoc: fix 98690 2022-07-01 05:16:37 +10:00
Takayuki Maeda 9ebe2d0c92 add regression test for #79494
use MCVE
2022-06-30 11:49:01 +09:00
Guillaume Gomez 768129d4bd Finish rustdoc error improvement 2022-06-27 10:52:53 +02:00
Takayuki Maeda 3a023e7e58 collapse dead code warnings into a single diagnostic
add comments in `store_dead_field_or_variant`

support multiple log level

add a item ident label

fix ui tests

fix a ui test

fix a rustdoc ui test

use let chain

refactor: remove `store_dead_field_or_variant`

fix a tiny bug
2022-06-19 18:32:56 +09:00
bors 0cb9899e78 Auto merge of #97892 - klensy:fix-spaces, r=oli-obk
diagnostics: remove trailing spaces

Remove few occurrences of trailing spaces and drive by fix of needless alloc of const string.
2022-06-17 17:30:16 +00:00
klensy 449ad044f2 bless rustdoc-ui tests 2022-06-16 14:40:30 +03:00
Michael Howell 94396711dd rustdoc: add missing article
Co-authored-by: Jacob Hoffman-Andrews <github@hoffman-andrews.com>
2022-06-13 09:28:49 -07:00
Michael Howell 95ae4c9295 rustdoc: change error message for invalid #[doc(tuple_variadic)]
Add test case.
2022-06-12 13:49:42 -07:00
Matthias Krüger daedae7b23 Rollup merge of #97264 - TaKO8Ki:suggest-extern-crate-when-failing-to-resolve-use-crate, r=estebank
Suggest `extern crate foo` when failing to resolve `use foo`

closes #97095

r? ``@estebank``
2022-06-01 17:11:05 +02:00
hafeoz c6cda15a16 Remove few characters for tidy check to pass 2022-05-26 23:13:37 +01:00
hafeoz 73ba7a756d Add tests 2022-05-26 22:55:29 +01:00
Takayuki Maeda b2480a0251 suggest extern crate foo when failing to resolve use foo
fix ci error
2022-05-25 09:58:19 +09:00
Vadim Petrochenkov b4019ded77 rustdoc: Remove doc link resolution fallback to all macro_rules in the crate 2022-05-15 21:08:32 +03:00
xFrednet 897404e1d9 Support #[expect] attributes for rustdoc lints (RFC 2383) 2022-05-08 14:37:16 +02:00
Yuki Okushi b255bf9eb4 Rollup merge of #96668 - GuillaumeGomez:fix-rustdoc-ui-flaky-test, r=petrochenkov
Fix flaky rustdoc-ui test because it did not replace time result

As mentioned in https://github.com/rust-lang/rust/pull/93715: a test is flaky because I forgot to replace the time value.

This PR fixes it.

r? ``@petrochenkov``
2022-05-04 17:13:13 +09:00
bors 21d613b111 Auto merge of #96447 - petrochenkov:docregr, r=GuillaumeGomez
rustdoc: Resolve doc links on fields during early resolution

Another subset of https://github.com/rust-lang/rust/pull/94857 which fixes https://github.com/rust-lang/rust/issues/96429.

This case regressed in https://github.com/rust-lang/rust/pull/96135 when `may_have_doc_links`-based filtering was introduced.
Before that filtering structs could collect traits in scope for their fields, but after the filtering structs won't collect anything if they don't have doc comments on them, so we have to visit fields too.
2022-05-04 05:01:47 +00:00
Guillaume Gomez 56c2769de3 Fix flaky rustdoc-ui test because it did not replace time result 2022-05-03 20:46:02 +02:00
Vadim Petrochenkov 8b21421873 rustdoc: Track macro_rules scopes during early doc link resolution
This way links referring to `macro_rules` items are resolved correctly
2022-05-01 00:02:15 +03:00
Vadim Petrochenkov 6d590ba942 rustdoc: Resolve doc links on fields during early resolution 2022-04-26 21:36:46 +03:00
Vadim Petrochenkov 7803a41151 rustdoc: Unindent doc fragments on Attributes construction 2022-04-21 16:13:02 +03:00
Vadim Petrochenkov e2d3a4f631 rustc_metadata: Store a flag telling whether an item may have doc links in its attributes
This should be cheap on rustc side, but it's significant optimization for rustdoc that won't need to decode and process attributes unnecessarily
2022-04-19 22:53:46 +03:00
Dylan DPC 0a8acac7a3 Rollup merge of #95887 - petrochenkov:doclink5, r=cjgillot
resolve: Create dummy bindings for all unresolved imports

Apparently such bindings weren't previously created for all unresolved imports, causing issues like https://github.com/rust-lang/rust/issues/95879.
In this PR I'm trying to create such dummy bindings in a more centralized way by calling `import_dummy_binding` once for all imports in `finalize_imports`.

Fixes https://github.com/rust-lang/rust/issues/95879.
2022-04-16 14:25:55 +02:00
Michael Howell 2af843c57d Update src/test/rustdoc-ui/failed-doctest-output-windows.rs
Co-authored-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
2022-04-12 06:37:00 -07:00
Michael Howell daa903c462 Fix line numbers 2022-04-11 13:02:50 -07:00
Michael Howell dae1df68b0 Fix test case for windows 2022-04-10 17:46:30 -07:00
Vadim Petrochenkov 09195d3822 resolve: Create dummy bindings for all unresolved imports 2022-04-10 21:22:27 +03:00
Michael Howell 898ff01ff9 Fix test case 2022-04-07 14:25:16 -07:00
Vadim Petrochenkov 69d6c3b2e6 rustdoc: Early doc link resolution fixes and refactorings 2022-04-07 00:19:48 +03:00
Vadim Petrochenkov 7faaf8f4aa resolve: Fix resolution of empty paths passed from rustdoc 2022-04-05 16:55:53 +03:00
bors 949b98cab8 Auto merge of #95337 - petrochenkov:doclink3, r=camelid
rustdoc: Fix resolution of `crate`-relative paths in doc links

Resolve `crate::foo` paths transparently to rustdoc, so their resolution no longer affects diagnostics and modules used for determining traits in scope.

The proper solution is to account for the current `module_id`/`parent_scope` in `fn resolve_crate_root`, but it's a slightly larger compiler changes. This PR moves the code closer to it, but keeps it rustdoc-specific.

Fixes https://github.com/rust-lang/rust/issues/78696
Fixes https://github.com/rust-lang/rust/issues/94924
2022-04-05 04:39:34 +00:00
Guillaume Gomez 732ed2adc8 Add test for multi-line attribute handling in doctests 2022-04-02 21:42:12 +02:00