about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2022-11-23Auto merge of #104776 - Dylan-DPC:rollup-rf4c2u0, r=Dylan-DPCbors-433/+516
Rollup of 6 pull requests Successful merges: - #104269 (Fix hang in where-clause suggestion with `predicate_can_apply`) - #104286 (copy doc output files by format) - #104509 (Use obligation ctxt instead of dyn TraitEngine) - #104721 (Remove more `ref` patterns from the compiler) - #104744 (rustdoc: give struct fields CSS `display: block`) - #104751 (Fix an ICE parsing a malformed attribute.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-11-23Rollup merge of #104751 - nnethercote:fix-104620, r=petrochenkovDylan DPC-3/+18
Fix an ICE parsing a malformed attribute. Fixes #104620. r? `@petrochenkov`
2022-11-23Rollup merge of #104744 - notriddle:notriddle/struct-fields-display-block, ↵Dylan DPC-0/+12
r=GuillaumeGomez rustdoc: give struct fields CSS `display: block` Fixes #104737
2022-11-23Rollup merge of #104721 - WaffleLapkin:deref-harder, r=oli-obkDylan DPC-349/+312
Remove more `ref` patterns from the compiler r? `@oli-obk` Previous PR: https://github.com/rust-lang/rust/pull/104500
2022-11-23Rollup merge of #104509 - spastorino:use-obligation-ctxt, r=lcnrDylan DPC-63/+48
Use obligation ctxt instead of dyn TraitEngine r? `@lcnr`
2022-11-23Rollup merge of #104286 - ozkanonur:fix-doc-bootstrap-recompilation, r=jyn514Dylan DPC-14/+52
copy doc output files by format This pr provides copying doc outputs by checking output format without removing output directory on each trigger. Resolves #103785
2022-11-23Rollup merge of #104269 - compiler-errors:hang-in-where-clause-sugg, r=lcnrDylan DPC-4/+74
Fix hang in where-clause suggestion with `predicate_can_apply` Using `predicate_may_hold` during error reporting causes an evaluation overflow, which (because we use `evaluate_obligation_no_overflow`) then causes the predicate to need to be re-evaluated locally, which results in a hang. ... but since the "add a where clause" suggestion is best-effort, just throw any overflow errors. No need for 100% accuracy. r? `@lcnr` who has been thinking about overflows... Let me know if you want more context about this issue, and as always, feel free to reassign. Fixes #104225
2022-11-23Auto merge of #103947 - camsteffen:place-clones, r=cjgillotbors-150/+134
Reduce `PlaceBuilder` cloning Some API tweaks with an eye towards reducing clones.
2022-11-23Pass ObligationCtxt from enter_canonical_trait_query and use ObligationCtxt APISantiago Pastorino-16/+13
2022-11-23Call fully_solve_obligations instead of repeating codeSantiago Pastorino-6/+11
2022-11-23Use ObligationCtxt intead of dyn TraitEngineSantiago Pastorino-47/+30
2022-11-23Auto merge of #102750 - the8472:opt-field-order, r=wesleywiserbors-31/+78
optimize field ordering by grouping m*2^n-sized fields with equivalently aligned ones ```rust use std::ptr::addr_of; use std::mem; struct Foo { word: u32, byte: u8, ary: [u8; 4] } fn main() { let foo: Foo = unsafe { mem::zeroed() }; println!("base: {:p}\nword: {:p}\nbyte: {:p}\nary: {:p}", &foo, addr_of!(foo.word), addr_of!(foo.byte), addr_of!(foo.ary)); } ``` prints ``` base: 0x7fffc1a8a668 word: 0x7fffc1a8a668 byte: 0x7fffc1a8a66c ary: 0x7fffc1a8a66d ``` I.e. the `u8` in the middle causes the array to sit at an odd offset, which might prevent optimizations, especially on architectures where unaligned loads are costly. Note that this will make field ordering niche-dependent, i.e. a `Bar<T>` with `T=char` and `T=u32` may result in different field order, this may break some code that makes invalid assumptions about `repr(Rust)` types.
2022-11-23Auto merge of #104758 - Manishearth:rollup-rh1tfum, r=Manishearthbors-540/+902
Rollup of 6 pull requests Successful merges: - #103488 (Allow opaque types in trait impl headers and rely on coherence to reject unsound cases) - #104359 (Refactor must_use lint into two parts) - #104612 (Lower return type outside async block creation) - #104621 (Fix --extern library finding errors) - #104647 (enable fuzzy_provenance_casts lint in liballoc and libstd) - #104750 (Bump `fd-lock` in `bootstrap` again) Failed merges: - #104732 (Refactor `ty::ClosureKind` related stuff) r? `@ghost` `@rustbot` modify labels: rollup
2022-11-23Add fatal overflow testMichael Goulet-0/+41
2022-11-23Drive-by: Don't manually call evaluate_obligation_no_overflowMichael Goulet-3/+2
2022-11-23Do not need to account for overflow in predicate_can_applyMichael Goulet-1/+31
2022-11-22Rollup merge of #104750 - mati865:bump-fd-lock-again, r=jyn514Manish Goregaokar-61/+22
Bump `fd-lock` in `bootstrap` again Followup to https://github.com/rust-lang/rust/pull/103778 Sorry for the quick succession but this fixes one more building issue for Tier 3 `windows-gnullvm` that I have previously missed, and it would be nice to have it in the release.
2022-11-22Rollup merge of #104647 - RalfJung:alloc-strict-provenance, r=thomccManish Goregaokar-10/+19
enable fuzzy_provenance_casts lint in liballoc and libstd r? ````@thomcc````
2022-11-22Rollup merge of #104621 - YC:master, r=davidtwcoManish Goregaokar-3/+50
Fix --extern library finding errors - `crate_name` is not specified/passed to `metadata_crate_location_unknown_type` https://github.com/rust-lang/rust/blob/c493bae0d8efd75723460ce5c371f726efa93f15/compiler/rustc_error_messages/locales/en-US/metadata.ftl#L274-L275 - `metadata_lib_filename_form` is missing `$` - Add additional check to ensure that library is file Testing 1. Create file `a.rs` ```rust extern crate t; fn main() {} ``` 1. Create empty file `x` 1. Create empty directory `y` 1. Run ```sh $ rustc -o a a.rs --extern t=x $ rustc -o a a.rs --extern t=y ``` Both currently panic with stable.
2022-11-22Rollup merge of #104612 - Swatinem:async-ret-y, r=estebankManish Goregaokar-9/+9
Lower return type outside async block creation This allows feeding a different output type to async blocks with a different `ImplTraitContext`. Spotted this while working on #104321
2022-11-22Rollup merge of #104359 - Nilstrieb:plus-one, r=fee1-deadManish Goregaokar-146/+259
Refactor must_use lint into two parts Before, the lint did the checking for `must_use` and pretty printing the types in a special format in one pass, causing quite complex and untranslatable code. Now the collection and printing is split in two. That should also make it easier to translate or extract the type pretty printing in the future. Also fixes an integer overflow in the array length pluralization calculation. fixes #104352
2022-11-22Rollup merge of #103488 - oli-obk:impl_trait_for_tait, r=lcnrManish Goregaokar-311/+543
Allow opaque types in trait impl headers and rely on coherence to reject unsound cases r? ````@lcnr```` fixes #99840
2022-11-23Auto merge of #104752 - weihanglo:update-cargo, r=weihanglobors-53/+10
Update cargo 7 commits in eb5d35917b2395194593c9ca70c3778f60c1573b..ba607b23db8398723d659249d9abf5536bc322e5 2022-11-17 22:08:43 +0000 to 2022-11-22 20:52:39 +0000 - Fix failure to parse rustc's JSON output if it is too nested (rust-lang/cargo#11368) - Add suggestions when `cargo add` multiple packages (rust-lang/cargo#11186) - Update mod.rs (rust-lang/cargo#11395) - Fix typo `try use` -> `try to use` (rust-lang/cargo#11394) - Add warning when `cargo tree -i <spec>` can not find packages (rust-lang/cargo#11377) - Clean profile, patch, and replace in cargo remove (rust-lang/cargo#11194) - chore: Upgrade miow (rust-lang/cargo#11391)
2022-11-23Fix an ICE parsing a malformed attribute.Nicholas Nethercote-3/+18
Fixes #104620.
2022-11-23Update cargoWeihang Lo-53/+10
7 commits in eb5d35917b2395194593c9ca70c3778f60c1573b..ba607b23db8398723d659249d9abf5536bc322e5 2022-11-17 22:08:43 +0000 to 2022-11-22 20:52:39 +0000 - Fix failure to parse rustc's JSON output if it is too nested (rust-lang/cargo#11368) - Add suggestions when `cargo add` multiple packages (rust-lang/cargo#11186) - Update mod.rs (rust-lang/cargo#11395) - Fix typo `try use` -> `try to use` (rust-lang/cargo#11394) - Add warning when `cargo tree -i <spec>` can not find packages (rust-lang/cargo#11377) - Clean profile, patch, and replace in cargo remove (rust-lang/cargo#11194) - chore: Upgrade miow (rust-lang/cargo#11391)
2022-11-22Auto merge of #104743 - JohnTitor:rollup-9z9u7yd, r=JohnTitorbors-54/+218
Rollup of 7 pull requests Successful merges: - #101368 (Forbid inlining `thread_local!`'s `__getit` function on Windows) - #102293 (Add powerpc64-ibm-aix as Tier-3 target) - #104717 (Add failing test for projections used as const generic) - #104720 (rustdoc: remove no-op CSS `.popover::before / a.test-arrow { display: inline-block }`) - #104722 (Speed up mpsc_stress test) - #104724 (Fix `ClosureKind::to_def_id`) - #104728 (Use `tcx.require_lang_item` instead of unwrapping lang items) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-11-23Bump `fd-lock` in `bootstrap` againMateusz Mikuła-61/+22
Followup to https://github.com/rust-lang/rust/pull/103778 Sorry for the quick succession but this fixes one more building issue for Tier 3 `windows-gnullvm` that I have previously missed, and it would be nice to have it in the release.
2022-11-22add tests for field ordering optimizationThe 8472-0/+21
2022-11-22fix tests, update size assertsThe 8472-26/+34
2022-11-22also sort fields by niche sizes to retain optimizationsThe 8472-3/+16
2022-11-22group fields based on largest power of two dividing its sizeThe 8472-7/+3
2022-11-22optimize field ordering by grouping power-of-two arrays with larger typesThe 8472-4/+13
2022-11-22rustdoc: make struct fields `display: block`Michael Howell-0/+12
2022-11-23Rollup merge of #104728 - WaffleLapkin:require-lang-items-politely, ↵Yuki Okushi-12/+14
r=compiler-errors Use `tcx.require_lang_item` instead of unwrapping lang items I clearly remember esteban telling me that there is `require_lang_item` but he was from a phone atm and I couldn't find it, so I didn't use it. Stumbled on it today, so here we are :)
2022-11-23Rollup merge of #104724 - WaffleLapkin:to_def_idn't, r=compiler-errorsYuki Okushi-14/+41
Fix `ClosureKind::to_def_id` `Fn` and `FnOnce` were mixed up in https://github.com/rust-lang/rust/pull/99131.
2022-11-23Rollup merge of #104722 - mejrs:stress, r=ChrisDentonYuki Okushi-16/+51
Speed up mpsc_stress test See https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/mpsc_stress for context r? windows
2022-11-23Rollup merge of #104720 - notriddle:notriddle/popover-before-display-inline, ↵Yuki Okushi-2/+0
r=GuillaumeGomez rustdoc: remove no-op CSS `.popover::before / a.test-arrow { display: inline-block }` Since this box is absolutely positioned, its display type is [blockified] anyway. We just need to make sure it isn't `display: none`. [blockified]: https://www.w3.org/TR/css-display-3/#transformations
2022-11-23Rollup merge of #104717 - ↵Yuki Okushi-0/+31
GuillaumeGomez:test-projection-used-as-const-generic, r=oli-obk Add failing test for projections used as const generic Based on the experiment done in https://github.com/rust-lang/rust/pull/104443, we realized it's currently not possible to support projections in const generics. More information about it in https://github.com/rust-lang/rust/pull/104443#discussion_r1029375633. This PR adds the UI test in any case so we can gather data in order to work towards adding `TyAlias` into the ABI in the future. r? ``@oli-obk``
2022-11-23Rollup merge of #102293 - ecnelises:aix.initial, r=davidtwcoYuki Okushi-1/+65
Add powerpc64-ibm-aix as Tier-3 target This is part of the effort mentioned in https://github.com/rust-lang/compiler-team/issues/553. A reference to these options are definitions from [clang](https://github.com/llvm/llvm-project/blob/ad6fe32032a6229e0c40510e9bed419a01c695b3/clang/lib/Basic/Targets/PPC.h#L414-L448) and [llvm](https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp). AIX has a system `ld` but [its options and behaviors](https://www.ibm.com/docs/en/aix/7.3?topic=l-ld-command) are different from GNU ld. Thanks to ``@bzEq`` for contributing the linking args.
2022-11-23Rollup merge of #101368 - thomcc:wintls-noinline, r=ChrisDentonYuki Okushi-9/+16
Forbid inlining `thread_local!`'s `__getit` function on Windows Sadly, this will make things slower to avoid UB in an edge case, but it seems hard to avoid... and really whenever I look at this code I can't help but think we're asking for trouble. It's pretty dodgy for us to leave this as a normal function rather than `#[inline(never)]`, given that if it *does* get inlined into a dynamically linked component, it's extremely unsafe (you get some other thread local, or if you're lucky, crash). Given that it's pretty rare for people to use dylibs on Windows, the fact that we haven't gotten bug reports about it isn't really that convincing. Ideally we'd come up with some kind of compiler solution (that avoids paying for this cost when static linking, or *at least* for use within the same crate...), but it's not clear what that looks like. Oh, and because all this is only needed when we're implementing `thread_local!` with `#[thread_local]`, this patch adjusts the `cfg_attr` to be `all(windows, target_thread_local)` as well. r? ``@ChrisDenton`` See also #84933, which is about improving the situation.
2022-11-22Auto merge of #104735 - the8472:simd-contains-fix, r=thomccbors-4/+18
Simd contains fix Fixes #104726 The bug was introduced by an improvement late in the original PR (#103779) which added the backtracking when the last and first byte of the needle were the same. That changed the meaning of the variable for the last probe offset, which I should have split into the last byte offset and last probe offset. Not doing so lead to incorrect loop conditions.
2022-11-22fix OOB access in SIMD impl of str.contains()The 8472-4/+6
2022-11-22add test for issue 104726The 8472-0/+12
2022-11-22`rustc_ast_lowering`: remove `ref` patternsMaybe Waffle-300/+267
2022-11-22`rustc_arena`: remove a couple of `ref` patternsMaybe Waffle-10/+6
2022-11-22`rustc_parse`: remove `ref` patternsMaybe Waffle-39/+39
2022-11-22Speed up mpsc_stress testmejrs-16/+51
2022-11-22Use `tcx.require_lang_item` instead of unwrappingMaybe Waffle-12/+14
2022-11-22Auto merge of #104688 - flip1995:clippyup, r=Manishearth,flip1995bors-18379/+8262
Update Clippy r? `@Manishearth` Sorry for taking so long. There were so many blockers and so little time. This situation should be mitigated with #104007 in the future.
2022-11-22Fix `ClosureKind::to_def_id`Maybe Waffle-14/+41