about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2021-12-31Auto merge of #92437 - flip1995:clippyup, r=Manishearthbors-439/+1493
Update Clippy r? `@Manishearth`
2021-12-30Auto merge of #92426 - calebcartwright:sync-rustfmt-subtree, r=calebcartwrightbors-410/+710
Sync rustfmt subtree r? `@ghost` Mostly refactoring and a few minor lint fixes, along with a couple small bug fixes
2021-12-30Auto merge of #92434 - matthiaskrgr:rollup-m8wuq0v, r=matthiaskrgrbors-37/+176
Rollup of 4 pull requests Successful merges: - #91519 (ast: Avoid aborts on fatal errors thrown from mutable AST visitor) - #92414 (Fix spacing of pretty printed const item without body) - #92423 (Add UI test for #92292) - #92427 (Use `UnsafeCell::get_mut()` in `core::lazy::OnceCell::get_mut()`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-12-30Merge commit '0eff589afc83e21a03a168497bbab6b4dfbb4ef6' into clippyupflip1995-439/+1493
2021-12-30Auto merge of #8196 - flip1995:rustup, r=flip1995bors-141/+168
Rustup r? `@ghost` changelog: none
2021-12-30Bump nightly version -> 2021-12-30flip1995-1/+1
2021-12-30Merge remote-tracking branch 'upstream/master' into rustupflip1995-451/+1518
2021-12-30Rollup merge of #92427 - ChayimFriedman2:patch-1, r=kennytmMatthias Krüger-2/+1
Use `UnsafeCell::get_mut()` in `core::lazy::OnceCell::get_mut()` This removes one unnecessary `unsafe` block.
2021-12-30Rollup merge of #92423 - weirane:ui-92292, r=fee1-deadMatthias Krüger-0/+32
Add UI test for #92292 Closes #92292
2021-12-30Rollup merge of #92414 - dtolnay:constnoexpr, r=oli-obkMatthias Krüger-14/+16
Fix spacing of pretty printed const item without body Follow-up to #92238 fixing one of the FIXMEs. ```rust macro_rules! repro { ($item:item) => { stringify!($item) }; } fn main() { println!("{}", repro!(extern "C" { static S: i32; })); } ``` Before: `extern "C" { static S: i32 ; }` After: `extern "C" { static S: i32; }`
2021-12-30Rollup merge of #91519 - petrochenkov:cratexp2, r=Aaron1011Matthias Krüger-21/+127
ast: Avoid aborts on fatal errors thrown from mutable AST visitor Set the node to some dummy value and rethrow the error instead. When using the old aborting `visit_clobber` in `InvocationCollector::visit_crate` the next tests abort due to fatal errors: ``` ui\modules\path-invalid-form.rs ui\modules\path-macro.rs ui\modules\path-no-file-name.rs ui\parser\issues\issue-5806.rs ui\parser\mod_file_with_path_attr.rs ``` Follow up to https://github.com/rust-lang/rust/pull/91313.
2021-12-30Auto merge of #89336 - Aaron1011:variance-struct-diag, r=cjgillotbors-40/+247
Refactor variance diagnostics to work with more types Instead of special-casing mutable pointers/references, we now support general generic types (currently, we handle `ty::Ref`, `ty::RawPtr`, and `ty::Adt`) When a `ty::Adt` is involved, we show an additional note explaining which of the type's generic parameters is invariant (e.g. the `T` in `Cell<T>`). Currently, we don't explain *why* a particular generic parameter ends up becoming invariant. In the general case, this could require printing a long 'backtrace' of types, so doing this would be more suitable for a follow-up PR. We still only handle the case where our variance switches to `ty::Invariant`.
2021-12-30Auto merge of #92377 - compiler-errors:rustdoc-lifetimes, r=camelid,jyn514bors-20/+19
remove in_band_lifetimes from librustdoc r? `@camelid` closes #92368
2021-12-30Use `UnsafeCell::get_mut()` in `core::lazy::OnceCell::get_mut()`Chayim Refael Friedman-2/+1
This removes one unnecessary `unsafe` block.
2021-12-30Auto merge of #91125 - eskarn:llvm-passes-plugin-support, r=nagisabors-27/+58
Allow loading LLVM plugins with both legacy and new pass manager Opening a draft PR to get feedback and start discussion on this feature. There is already a codegen option `passes` which allow giving a list of LLVM pass names, however we currently can't use a LLVM pass plugin (as described here : https://llvm.org/docs/WritingAnLLVMPass.html), the only available passes are the LLVM built-in ones. The proposed modification would be to add another codegen option `pass-plugins`, which can be set with a list of paths to shared library files. These libraries are loaded using the LLVM function `PassPlugin::Load`, which calls the expected symbol `lvmGetPassPluginInfo`, and register the pipeline parsing and optimization callbacks. An example usage with a single plugin and 3 passes would look like this in the `.cargo/config`: ```toml rustflags = [ "-C", "pass-plugins=/tmp/libLLVMPassPlugin", "-C", "passes=pass1 pass2 pass3", ] ``` This would give the same functionality as the opt LLVM tool directly integrated in rust build system. Additionally, we can also not specify the `passes` option, and use a plugin which inserts passes in the optimization pipeline, as one could do using clang.
2021-12-29Merge commit '4a053f206fd6799a25823c307f7d7f9d897be118' into ↵Caleb Cartwright-410/+710
sync-rustfmt-subtree
2021-12-29Add UI test for #92292Wang Ruochen-0/+32
Closes #92292
2021-12-29Refactor variance diagnostics to work with more typesAaron Hill-40/+247
Instead of special-casing mutable pointers/references, we now support general generic types (currently, we handle `ty::Ref`, `ty::RawPtr`, and `ty::Adt`) When a `ty::Adt` is involved, we show an additional note explaining which of the type's generic parameters is invariant (e.g. the `T` in `Cell<T>`). Currently, we don't explain *why* a particular generic parameter ends up becoming invariant. In the general case, this could require printing a long 'backtrace' of types, so doing this would be more suitable for a follow-up PR. We still only handle the case where our variance switches to `ty::Invariant`.
2021-12-29Do not flatten match arm block with leading attributesDavid Lattimore-1/+43
This is a backport of #4124. Fixes #4109
2021-12-29Auto merge of #88354 - Jmc18134:hint-space-pauth-opt, r=nagisabors-6/+202
Add codegen option for branch protection and pointer authentication on AArch64 The branch-protection codegen option enables the use of hint-space pointer authentication code for AArch64 targets.
2021-12-29Move equal sign back into head iboxDavid Tolnay-5/+5
2021-12-29Fix spacing of pretty printed const item without bodyDavid Tolnay-16/+18
2021-12-29Auto merge of #92244 - petrochenkov:alltraits, r=cjgillotbors-112/+95
rustc_metadata: Encode list of all crate's traits into metadata While working on https://github.com/rust-lang/rust/pull/88679 I noticed that rustdoc is casually doing something quite expensive, something that is used only for error reporting in rustc - collecting all traits from all crates in the dependency tree. This PR trades some minor extra time spent by metadata encoder in rustc for major gains for rustdoc (and for rustc runs with errors, which execute the `all_traits` query for better diagnostics).
2021-12-29Auto merge of #92309 - ehuss:remove-check_lines, r=Mark-Simulacrumbors-11/+0
compiletest: Remove some vestigial code The `check_lines` header is no longer parsed as a header, but instead inside the debuginfo tests. I believe this was changed in #13726.
2021-12-29Auto merge of #92397 - matthiaskrgr:rollup-xnfou17, r=matthiaskrgrbors-130/+382
Rollup of 7 pull requests Successful merges: - #92075 (rustdoc: Only special case struct fields for intra-doc links, not enum variants) - #92118 (Parse and suggest moving where clauses after equals for type aliases) - #92237 (Visit expressions in-order when resolving pattern bindings) - #92340 (rustdoc: Start cleaning up search index generation) - #92351 (Add long error explanation for E0227) - #92371 (Remove pretty printer space inside block with only outer attrs) - #92372 (Print space after formal generic params in fn type) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-12-29Rollup merge of #92372 - dtolnay:fntype, r=jackh726Matthias Krüger-9/+3
Print space after formal generic params in fn type Follow-up to #92238 fixing one of the FIXMEs. ```rust macro_rules! repro { ($ty:ty) => { stringify!($ty) }; } fn main() { println!("{}", repro!(for<'a> fn(&'a u8))); } ``` Before:&ensp;`for<'a>fn(&'a u8)` After:&ensp;`for<'a> fn(&'a u8)` The pretty printer's `print_formal_generic_params` already prints formal generic params correctly with a space, we just need to call it when printing BareFn types instead of reimplementing the printing incorrectly without a space. https://github.com/rust-lang/rust/blob/83b15bfe1c15f325bc186ebfe3691b729ed59f2b/compiler/rustc_ast_pretty/src/pprust/state.rs#L1394-L1400
2021-12-29Rollup merge of #92371 - dtolnay:attrblock, r=oli-obkMatthias Krüger-23/+24
Remove pretty printer space inside block with only outer attrs Follow-up to #92238 fixing one of the FIXMEs. ```rust macro_rules! repro { ($expr:expr) => { stringify!($expr) }; } fn main() { println!("{}", repro!(#[attr] {})); } ``` Before:&ensp;`#[attr] { }` After:&ensp;`#[attr] {}`
2021-12-29Rollup merge of #92351 - TmLev:master, r=GuillaumeGomezMatthias Krüger-3/+57
Add long error explanation for E0227 Part of the #61137.
2021-12-29Rollup merge of #92340 - camelid:search-index-cleanup, r=GuillaumeGomezMatthias Krüger-50/+65
rustdoc: Start cleaning up search index generation I'm trying to simplify and clean up the code, partly to make #90779 easier. r? `@GuillaumeGomez`
2021-12-29Rollup merge of #92237 - compiler-errors:issue-92100, r=cjgillotMatthias Krüger-1/+50
Visit expressions in-order when resolving pattern bindings [edited:] Visit the pattern's sub-expressions before defining any bindings. Otherwise, we might get into a case where a Lit/Range expression in a pattern has a qpath pointing to a Ident pattern that is defined after it, causing an ICE when lowering to HIR. I have a more detailed explanation in the issue linked. Fixes #92100
2021-12-29Rollup merge of #92118 - jackh726:type-alias-position-error, r=petrochenkovMatthias Krüger-28/+158
Parse and suggest moving where clauses after equals for type aliases ~Mostly the same as #90076, but doesn't make any syntax changes.~ Whether or not we want to land the syntax changes, we should parse the invalid where clause position and suggest moving. r? `@nikomatsakis` cc `@petrochenkov` you might have thoughts on implementation
2021-12-29Rollup merge of #92075 - jyn514:resolve-cleanup, r=camelidMatthias Krüger-16/+25
rustdoc: Only special case struct fields for intra-doc links, not enum variants Variants are already handled by `resolve_str_path_error`, rustdoc doesn't need to consider them separately. Thanks `@camelid` for catching this! Eventually I'd like to fix the "combine this with `variant_field`" comment but that needs `resolve_field` to take a `ty_res` parameter to avoid it being super hacky (cc https://github.com/rust-lang/rust/issues/83761#issuecomment-813026026). r? `@camelid`
2021-12-29Auto merge of #92254 - krasimirgg:gsgdt-up, r=Mark-Simulacrumbors-4/+4
Bump `gsgdt` to 0.1.3 No functional changes intended. The 0.1.2 -> 0.1.3 commit https://github.com/vn-ki/gsgdt-rs/commit/3e1dcec5398d281e1b33afb41e43dfb248321a1d renames `Node::new` to `Node::from_list`.
2021-12-29Auto merge of #92291 - AngelicosPhosphoros:typeid_inline_revert_92135, ↵bors-1/+0
r=joshtriplett Reverts #92135 because perf regression Please, start a perf test for this. r? `@joshtriplett` You approved original PR.
2021-12-29Auto merge of #92283 - vacuus:print-generic-bounds, r=camelid,GuillaumeGomezbors-3/+1
rustdoc: Remove `String` allocation in iteration in `print_generic_bounds` (I realized only after making the commit that maybe I shouldn't refer to iteration as looping, but it's close enough) The string representation of a `clean::GenericBound` instance (evaluated [here](https://github.com/rust-lang/rust/blob/master/src/librustdoc/html/format.rs#L397)) is deterministic for a given `self` (the instance), `cx` and `f`, and since `cx` and `f` are constant (as far as I can tell) for a given invocation of `print_generic_bounds`, `self` is the determining factor. Therefore, using the data in `self` shouldn't differ in effect from using its string representation. Given the totality of the function calls needed to evaluate the string representation as well as the actual allocation, at the very least, this shouldn't negatively affect performance.
2021-12-28feat: support parsing asm! argsCaleb Cartwright-0/+13
2021-12-28chore: bump toolchainCaleb Cartwright-1/+1
2021-12-28remove in_band_lifetimes from librustdocMichael Goulet-20/+19
2021-12-28Auto merge of #92269 - vacuus:clean-generics-print, r=camelidbors-5/+6
rustdoc: Remove `collect` call in `clean::Generics::print`
2021-12-28Auto merge of #8117 - hotate29:issue7320, r=camsteffenbors-128/+307
update: ```Sugg::not()``` replacing the comparison operator. #7320 fixes #7320 changelog: ```needless_bool```: Changed to make a smart suggestion.
2021-12-28Add regression test for #59502Noah Lev-0/+13
This issue was fixed using a hacky recursion "fuel" argument, but the issue was never minimized nor was a regression test added. The underlying bug is still unfixed, so this test should help with fixing it and removing the `recurse` hack.
2021-12-28Explain why struct fields are handled by assoc. item codeNoah Lev-0/+12
2021-12-28Auto merge of #8183 - alex-ozdemir:limit-ident, r=camsteffenbors-18/+56
Limit the ``[`identity_op`]`` lint to integral operands. changelog: limit ``[`identity_op`]`` to integral operands In the ``[`identity_op`]`` lint, if the operands are non-integers, then the lint is likely wrong.
2021-12-28Remove unused parameterNoah Lev-6/+5
2021-12-28Print space after formal generic params in fn typeDavid Tolnay-9/+3
2021-12-28Only special case struct fields for intra-doc links, not enum variantsJoshua Nelson-16/+13
Variants are already handled by `resolve_str_path_error`, rustdoc doesn't need to consider them separately.
2021-12-28Remove pretty printer space inside block with only outer attrsDavid Tolnay-23/+24
2021-12-28Parse and suggest moving where clauses after equals for type aliasesJack Huey-28/+158
2021-12-28Auto merge of #8187 - ApamNapat:fix_7651, r=llogiqbors-4/+64
Fixed issues with to_radians and to_degrees lints fixes #7651 I fixed the original problem as described in the issue, but the bug remains for complex expressions (the commented out TC I added is an example). I would also love some feedback on how to cleanup my code and reduce duplication. I hope it's not a problem that the issue has been claimed by someone else - that was over two months ago. changelog: ``[`suboptimal_flops`]`` no longer proposes broken code with `to_radians` and `to_degrees`
2021-12-28Auto merge of #92352 - matthiaskrgr:rollup-19fbq7u, r=matthiaskrgrbors-26/+1008
Rollup of 7 pull requests Successful merges: - #92076 (Ignore other `PredicateKind`s in rustdoc auto trait finder) - #92219 (Remove VCVARS_BAT) - #92238 (Add a test suite for stringify macro) - #92330 (Add myself to .mailmap) - #92333 (Tighten span when suggesting lifetime on path) - #92335 (Document units for `std::column`) - #92344 (:arrow_up: rust-analyzer) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup