about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2022-11-12Auto merge of #103150 - joboet:remove_lock_wrappers, r=m-ou-sebors-655/+406
Remove lock wrappers in `sys_common` This moves the lazy allocation to `sys` (SGX and UNIX). While this leads to a bit more verbosity, it will simplify future improvements by making room in `sys_common` for platform-independent implementations. This also removes the condvar check on SGX as it is not necessary for soundness and will be removed anyway once mutex has been made movable. For simplicity's sake, `libunwind` also uses lazy allocation now on SGX. This will require an update to the C definitions before merging this (CC `@raoulstrackx).` r? `@m-ou-se`
2022-11-11Auto merge of #104293 - Manishearth:rollup-xj92d0k, r=Manishearthbors-521/+2191
Rollup of 8 pull requests Successful merges: - #95292 (Allow specialized const trait impls.) - #100386 (Make `Sized` coinductive, again) - #102215 (Implement the `+whole-archive` modifier for `wasm-ld`) - #103468 (Fix unused lint and parser caring about spaces to won't produce invalid code) - #103531 (Suggest calling the instance method of the same name when method not found) - #103960 (piece of diagnostic migrate) - #104051 (update Miri) - #104129 (rustdoc: use javascript to layout notable traits popups) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-11-11Auto merge of #104289 - Dylan-DPC:rollup-v7wei2t, r=Dylan-DPCbors-151/+384
Rollup of 9 pull requests Successful merges: - #100633 (Consider `#[must_use]` annotation on `async fn` as also affecting the `Future::Output`) - #103445 (`#[test]`: Point at return type if `Termination` bound is unsatisfied) - #103924 (Fix broken link in description of error code E0706) - #104146 (Retry binding TCP Socket in remote-test-server) - #104169 (Migrate `:target` rules to use CSS variables) - #104202 (Fix ICE #103748) - #104216 (Don't ICE on operator trait methods with generic methods) - #104217 (Display help message when fluent arg was referenced incorrectly) - #104245 (Reduce default configuration's dependency upon static libstdcpp library (#103606)) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-11-11Rollup merge of #104129 - notriddle:notriddle/102576-js-notable-trait, ↵Manish Goregaokar-110/+360
r=Manishearth rustdoc: use javascript to layout notable traits popups Fixes #102576 Preview: https://notriddle.com/notriddle-rustdoc-demos/102576-js-notable-trait/std/iter/trait.Iterator.html#method.step_by ## Before ![image](https://user-images.githubusercontent.com/1593513/200432713-23aa8d49-ba2b-469f-9eab-089e0c174039.png) ## After ![image](https://user-images.githubusercontent.com/1593513/200432735-edd5b53d-e99d-4fc5-9410-8a79e0efdc9d.png)
2022-11-11Rollup merge of #104051 - RalfJung:miri, r=RalfJungManish Goregaokar-218/+831
update Miri Notable PRs: - https://github.com/rust-lang/miri/pull/2636 - https://github.com/rust-lang/miri/pull/2641 - https://github.com/rust-lang/miri/pull/2638
2022-11-11Rollup merge of #103960 - AndyJado:var_path_only_diag, r=davidtwcoManish Goregaokar-60/+261
piece of diagnostic migrate r? `@davidtwco`
2022-11-11Rollup merge of #103531 - chenyukang:yukang/fix-103474, r=estebankManish Goregaokar-16/+88
Suggest calling the instance method of the same name when method not found Fixes #103474
2022-11-11Rollup merge of #103468 - chenyukang:yukang/fix-103435-extra-parentheses, ↵Manish Goregaokar-20/+149
r=estebank Fix unused lint and parser caring about spaces to won't produce invalid code Fixes #103435
2022-11-11Rollup merge of #102215 - alexcrichton:wasm-link-whole-archive, r=estebankManish Goregaokar-2/+2
Implement the `+whole-archive` modifier for `wasm-ld` This implements the `Linker::{link_whole_staticlib,link_whole_rlib}` methods for the `WasmLd` linker used on wasm targets. Previously these methods were noops since I think historically `wasm-ld` did not have support for `--whole-archive` but nowadays it does, so the flags are passed through.
2022-11-11Rollup merge of #100386 - compiler-errors:sized-coinductive-redux, r=lcnrManish Goregaokar-70/+118
Make `Sized` coinductive, again A revival of #83647 --- What exactly makes co-induction sound? Better question: are there any unsoundness risks from this? `Sized` can't be implemented by custom `impl` blocks, nor can it be conditionally implemented based on anything other than child fields being `Sized`, right? r? `@nikomatsakis` for whenever he gets back from vacation
2022-11-11Rollup merge of #95292 - BGR360:const-trait-specialize, r=lcnrManish Goregaokar-25/+382
Allow specialized const trait impls. Fixes #95186. Fixes #95187. I've done my best to create a comprehensive test suite for the interaction between `min_specialization` and `const_trait_impls`. I wouldn't be surprised if there are interesting cases I haven't tested, please let me know.
2022-11-11rustdoc: fix HTML validation failure by escaping `data-ty`Michael Howell-2/+2
2022-11-11Rollup merge of #104245 - kubycsolutions:master, r=jyn514Dylan DPC-4/+9
Reduce default configuration's dependency upon static libstdcpp library (#103606) Fixes #103606 Remove default dependency on static libstdcpp except during dist llvm builds (where we want static libraries so `libLLVM.so` is self-contained).
2022-11-11Rollup merge of #104217 - Nilstrieb:funny-dollar-syntax, r=TaKO8KiDylan DPC-10/+31
Display help message when fluent arg was referenced incorrectly The fluent argument syntax is a little special and easy to get wrong, so we emit a small help message when someone gets it wrong. Example: ``` parser_mismatched_closing_delimiter = mismatched closing delimiter: `${delimiter}` ``` panics with ``` thread 'rustc' panicked at 'Encountered errors while formatting message for `parser_mismatched_closing_delimiter` help: Argument `delimiter` exists but was not referenced correctly. Try using `{$delimiter}` instead attr: `None` args: `FluentArgs([("delimiter", String("}"))])` errors: `[ResolverError(Reference(Message { id: "delimiter", attribute: None }))]`', compiler/rustc_errors/src/translation.rs:123:21 ``` fixes #103539
2022-11-11Rollup merge of #104216 - Nilstrieb:dont-ice-invalid-operator-traits, r=estebankDylan DPC-1/+50
Don't ICE on operator trait methods with generic methods Emit a fatal error instead. fixes #104213
2022-11-11Rollup merge of #104202 - camsteffen:103748, r=estebankDylan DPC-1/+61
Fix ICE #103748 Fixes #103748
2022-11-11Rollup merge of #104169 - GuillaumeGomez:migrate-css-target, r=notriddleDylan DPC-15/+43
Migrate `:target` rules to use CSS variables There should be no GUI changes. r? `@notriddle`
2022-11-11Rollup merge of #104146 - Ayush1325:remote-test-server, r=jyn514Dylan DPC-1/+13
Retry binding TCP Socket in remote-test-server This allows retrying binding TCP Socket multiple times. This is useful when using emulators as network might not be available in the beginning. This was orignally implemented in https://github.com/rust-lang/rust/pull/100316 Signed-off-by: Ayush Singh <ayushsingh1325@gmail.com>
2022-11-11Rollup merge of #103924 - PeteDevoy:patch-1, r=estebankDylan DPC-1/+1
Fix broken link in description of error code E0706 Corresponding subsection in async book is `07.05` not `07.06`. The information on the linked page is the same so it may be reasonable to remove the whole sentence.
2022-11-11Rollup merge of #103445 - fmease:fix-50291, r=estebankDylan DPC-13/+17
`#[test]`: Point at return type if `Termination` bound is unsatisfied Together with #103142 (already merged) this fully fixes #50291. I don't consider my current solution of changing a few spans “here and there” very clean since the failed obligation is a `FunctionArgumentObligation` and we point at a type instead of a function argument. If you agree with me on this point, I can offer to keep the spans of the existing nodes and instead inject `let _: AssertRetTyIsTermination<$ret_ty>;` (type to be defined in `libtest`) similar to `AssertParamIsEq` etc. used by some built-in derive-macros. I haven't tried that approach yet though and cannot promise that it would actually work out or be “cleaner” for that matter. ````@rustbot```` label A-libtest A-diagnostics r? ````@estebank````
2022-11-11Rollup merge of #100633 - estebank:must_use_async_fn_return, r=tmandryDylan DPC-105/+159
Consider `#[must_use]` annotation on `async fn` as also affecting the `Future::Output` No longer lint against `#[must_use] async fn foo()`. When encountering a statement that awaits on a `Future`, check if the `Future`'s parent item is annotated with `#[must_use]` and emit a lint if so. This effectively makes `must_use` an annotation on the `Future::Output` instead of only the `Future` itself. Fix #78149.
2022-11-11Auto merge of #102872 - mikebenfield:better-get-discr, r=nagisabors-49/+371
rustc_codegen_ssa: Better code generation for niche discriminants. In some cases we can avoid arithmetic before checking whether a niche is a tag. Also rename some identifiers around niches. This is relevant to #101872
2022-11-11rustc_codegen_ssa: Better code generation for niche discriminants.Michael Benfield-49/+371
In some cases we can avoid arithmetic before checking whether a niche represents an untagged variant. This is relevant to #101872
2022-11-11Auto merge of #103898 - Nilstrieb:match-macro, r=nnethercotebors-143/+289
Retry failed macro matching for diagnostics When a declarative macro fails to match, retry the matching to collect diagnostic info instead of collecting it on the fly in the hot path. Split out of #103439. You made a bunch of changes to declarative macro matching, so r? `@nnethercote` This change should produce a few small perf wins: https://github.com/rust-lang/rust/pull/103439#issuecomment-1294249602
2022-11-10Oops, bless this test.Ben Reeves-1/+1
2022-11-10Fix tests after rebaseEsteban Küber-2/+2
2022-11-11Auto merge of #99918 - WaffleLapkin:fnFnfun, r=estebankbors-42/+286
Recover wrong-cased keywords that start items (_this pr was inspired by [this tweet](https://twitter.com/Azumanga/status/1552982326409367561)_) r? `@estebank` We've talked a bit about this recovery, but I just wanted to make sure that this is the right approach :) For now I've only added the case insensitive recovery to `use`s, since most other items like `impl` blocks, modules, functions can start with multiple keywords which complicates the matter.
2022-11-10review commentsEsteban Küber-7/+14
2022-11-10Consider `#[must_use]` annotation on `async fn` as also affecting the ↵Esteban Küber-43/+93
`Future::Output` No longer lint against `#[must_use] async fn foo()`. When encountering a statement that awaits on a `Future`, check if the `Future`'s parent item is annotated with `#[must_use]` and emit a lint if so. This effectively makes `must_use` an annotation on the `Future::Output` instead of only the `Future` itself. Fix #78149.
2022-11-10Tweak span for `#[must_use]`Esteban Küber-61/+58
Do not point at whole statement, only at the expression (skip pointing at `;`)
2022-11-10Avoid runtime dependency on static libstdc++kubycsolutions-4/+9
Usually, we do want to use the static C++ library when building rustc_llvm, but do not want to have that dependency at compiler runtime. Change the defaults to Make It So.
2022-11-10More nitsMichael Goulet-4/+19
2022-11-10bless testsMichael Goulet-70/+23
2022-11-10add some more testslcnr-0/+35
2022-11-10make `Sized` coinductivelcnr-1/+46
2022-11-10Auto merge of #104164 - cjgillot:u64-cache, r=compiler-errorsbors-3/+2
Use 64 bits for incremental cache in-file positions We currently use a 32-bit integer to encode byte positions into the incremental cache. This is not enough when the query chache file is >4GB. As the overflow check was a `debug_assert`, it was removed in released compilers, making compilation succeed silently. At the next compilation, cache decoding would try to read unrelated data because of garbled file position, triggering an ICE. Fixes https://github.com/rust-lang/rust/issues/79786 (I'm closing that bug since it the original report and the subsequent questions are probably different instances. A new bug should be opened for new instances of that ICE.)
2022-11-10Apply PR feedback.Ben Reeves-11/+10
2022-11-10Require `~const` qualifier on trait bounds in specializing impls if present ↵Ben Reeves-24/+137
in base impl.
2022-11-10Add #[const_trait] where needed in tests.Ben Reeves-1/+10
2022-11-10Disallow specializing on const impls with non-const impls.Ben Reeves-80/+51
2022-11-10Allow specialized const trait impls.Ben Reeves-21/+286
Fixes #95186. Fixes #95187.
2022-11-10Add GUI test for :targetGuillaume Gomez-0/+35
2022-11-10Migrate :target rules to use CSS variablesGuillaume Gomez-15/+8
2022-11-10update debuginfo checkjoboet-2/+2
2022-11-10Auto merge of #104246 - Manishearth:rollup-9o3txc7, r=Manishearthbors-104/+827
Rollup of 9 pull requests Successful merges: - #101939 (Add loongarch64 abi support) - #103863 (Use `TraitEngine` in more places, restrict visibility of `FulfillmentCtxt` constructor) - #104036 (Suggest `is_some` when we've found `Option` but expected `bool`) - #104060 (Make `Hash`, `Hasher` and `BuildHasher` `#[const_trait]` and make `Sip` const `Hasher`) - #104077 (Use aapcs for efiapi calling convention on arm) - #104186 (Tighten the 'introduce new binding' suggestion) - #104194 (`EarlyBinder` docs) - #104233 (Don't ICE when encountering `ConstKind::Error` in `RequiredConstsVisitor`) - #104235 (Use `const_error_with_guaranteed` more) Failed merges: - #104078 (Print "Checking/Building ..." message even when --dry-run is passed) - #104169 (Migrate `:target` rules to use CSS variables) r? `@ghost` `@rustbot` modify labels: rollup
2022-11-10Rollup merge of #104235 - compiler-errors:more-ct-guar, r=oli-obkManish Goregaokar-15/+51
Use `const_error_with_guaranteed` more Better to pass down an ErrorGuaranteed rather than making a new one out of thin air, for some usages. Also for the ones where we *do* need to delay a bug, that delayed bug will have a more descriptive message.
2022-11-10Rollup merge of #104233 - compiler-errors:issue-104209, r=lcnrManish Goregaokar-1/+15
Don't ICE when encountering `ConstKind::Error` in `RequiredConstsVisitor` Fixes #104209
2022-11-10Rollup merge of #104194 - BoxyUwU:early_binder_docs, r=compiler-errorsManish Goregaokar-0/+3
`EarlyBinder` docs
2022-11-10Rollup merge of #104186 - chenyukang:yukang/fix-104086-let-binding-issue, ↵Manish Goregaokar-18/+182
r=oli-obk Tighten the 'introduce new binding' suggestion Fixes #104086
2022-11-10Rollup merge of #104077 - nicholasbishop:bishop-uefi-aapcs, r=nagisaManish Goregaokar-1/+2
Use aapcs for efiapi calling convention on arm On arm, [llvm treats the C calling convention as `aapcs` on soft-float targets and `aapcs-vfp` on hard-float targets](https://github.com/rust-lang/compiler-builtins/issues/116#issuecomment-261057422). UEFI specifies in the arm calling convention that [floating point extensions aren't used](https://uefi.org/specs/UEFI/2.10/02_Overview.html#detailed-calling-convention), so always translate `efiapi` to `aapcs` on arm. https://github.com/rust-lang/rust/issues/65815