Commit Graph

137094 Commits

Author SHA1 Message Date
bors b0c6527912 Auto merge of #103150 - joboet:remove_lock_wrappers, r=m-ou-se
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-12 01:31:39 +00:00
bors 42325c525b Auto merge of #104293 - Manishearth:rollup-xj92d0k, r=Manishearth
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-11 20:11:07 +00:00
bors 7d85104b96 Auto merge of #104289 - Dylan-DPC:rollup-v7wei2t, r=Dylan-DPC
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-11 17:29:10 +00:00
Manish Goregaokar b74d042be2 Rollup merge of #104129 - notriddle:notriddle/102576-js-notable-trait, 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-11 12:12:31 -05:00
Manish Goregaokar e8bc6e1328 Rollup merge of #104051 - RalfJung:miri, r=RalfJung
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-11 12:12:31 -05:00
Manish Goregaokar f00897e2f4 Rollup merge of #103531 - chenyukang:yukang/fix-103474, r=estebank
Suggest calling the instance method of the same name when method not found

Fixes #103474
2022-11-11 12:12:30 -05:00
Manish Goregaokar fd5ff82f28 Rollup merge of #103468 - chenyukang:yukang/fix-103435-extra-parentheses, r=estebank
Fix unused lint and parser caring about spaces to won't produce invalid code

Fixes #103435
2022-11-11 12:12:29 -05:00
Manish Goregaokar 76ce198128 Rollup merge of #100386 - compiler-errors:sized-coinductive-redux, r=lcnr
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-11 12:12:28 -05:00
Manish Goregaokar cd30ccf974 Rollup merge of #95292 - BGR360:const-trait-specialize, r=lcnr
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-11 12:12:27 -05:00
Michael Howell 05824cd7b7 rustdoc: fix HTML validation failure by escaping data-ty 2022-11-11 10:01:54 -07:00
Dylan DPC 378112034e Rollup merge of #104245 - kubycsolutions:master, r=jyn514
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-11 20:51:42 +05:30
Dylan DPC e83b4765c3 Rollup merge of #104216 - Nilstrieb:dont-ice-invalid-operator-traits, r=estebank
Don't ICE on operator trait methods with generic methods

Emit a fatal error instead.
fixes #104213
2022-11-11 20:51:41 +05:30
Dylan DPC f3931c8be5 Rollup merge of #104202 - camsteffen:103748, r=estebank
Fix ICE #103748

Fixes #103748
2022-11-11 20:51:40 +05:30
Dylan DPC eca27a2f94 Rollup merge of #104169 - GuillaumeGomez:migrate-css-target, r=notriddle
Migrate `:target` rules to use CSS variables

There should be no GUI changes.

r? `@notriddle`
2022-11-11 20:51:40 +05:30
Dylan DPC e9b4a84dfa Rollup merge of #104146 - Ayush1325:remote-test-server, r=jyn514
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-11 20:51:39 +05:30
Dylan DPC bc9567fbf6 Rollup merge of #103445 - fmease:fix-50291, r=estebank
`#[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-11 20:51:38 +05:30
Dylan DPC 978e7abece Rollup merge of #100633 - estebank:must_use_async_fn_return, r=tmandry
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-11 20:51:38 +05:30
Michael Benfield 51918dcc51 rustc_codegen_ssa: Better code generation for niche discriminants.
In some cases we can avoid arithmetic before checking whether a niche
represents an untagged variant.

This is relevant to #101872
2022-11-11 05:54:30 +00:00
Ben Reeves 94f67e667b Oops, bless this test. 2022-11-10 22:14:08 -06:00
Esteban Küber f57713b010 Fix tests after rebase 2022-11-10 19:01:33 -08:00
bors 5b82ea74b7 Auto merge of #99918 - WaffleLapkin:fnFnfun, r=estebank
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-11 02:07:52 +00:00
Esteban Küber 8bd8484972 review comments 2022-11-10 18:06:59 -08:00
Esteban Küber 243496e129 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-10 18:01:03 -08:00
Esteban Küber 50bb7a40e1 Tweak span for #[must_use]
Do not point at whole statement, only at the expression (skip pointing at `;`)
2022-11-10 18:01:02 -08:00
kubycsolutions b8edf0213e Avoid runtime dependency on static libstdc++
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-10 19:37:09 -05:00
Michael Goulet fea8d0eb99 More nits 2022-11-10 21:29:20 +00:00
Michael Goulet 43ad19b250 bless tests 2022-11-10 21:18:06 +00:00
lcnr 8ec6c84bb3 add some more tests 2022-11-10 21:18:06 +00:00
lcnr 0f2e45b18f make Sized coinductive 2022-11-10 21:18:06 +00:00
Ben Reeves fe53cacff9 Apply PR feedback. 2022-11-10 12:56:33 -06:00
Ben Reeves c0ae62ee95 Require ~const qualifier on trait bounds in specializing impls if present in base impl. 2022-11-10 12:37:07 -06:00
Ben Reeves d492b9b000 Add #[const_trait] where needed in tests. 2022-11-10 12:37:07 -06:00
Ben Reeves ce03d259da Disallow specializing on const impls with non-const impls. 2022-11-10 12:37:06 -06:00
Ben Reeves 5c25d30f6f Allow specialized const trait impls.
Fixes #95186.
Fixes #95187.
2022-11-10 12:37:06 -06:00
Guillaume Gomez 149ab45ead Add GUI test for :target 2022-11-10 18:53:31 +01:00
Guillaume Gomez 384059a07a Migrate :target rules to use CSS variables 2022-11-10 18:53:30 +01:00
joboet f30614a088 update debuginfo check 2022-11-10 17:31:23 +01:00
Manish Goregaokar 77fde5d49a Rollup merge of #104233 - compiler-errors:issue-104209, r=lcnr
Don't ICE when encountering `ConstKind::Error` in `RequiredConstsVisitor`

Fixes #104209
2022-11-10 10:47:41 -05:00
Manish Goregaokar 819c9315c3 Rollup merge of #104186 - chenyukang:yukang/fix-104086-let-binding-issue, r=oli-obk
Tighten the 'introduce new binding' suggestion

Fixes #104086
2022-11-10 10:47:40 -05:00
Manish Goregaokar 8f2c1f8469 Rollup merge of #104077 - nicholasbishop:bishop-uefi-aapcs, r=nagisa
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
2022-11-10 10:47:39 -05:00
Manish Goregaokar 529f7149d2 Rollup merge of #104036 - compiler-errors:option-sugg, r=petrochenkov
Suggest `is_some` when we've found `Option` but expected `bool`

Thanks `@lunasorcery` for the suggestion.
2022-11-10 10:47:38 -05:00
Manish Goregaokar 9c0e783f6d Rollup merge of #103863 - compiler-errors:fulfillcx-less, r=wesleywiser
Use `TraitEngine` in more places, restrict visibility of `FulfillmentCtxt` constructor

Most places that are constructing a `FulfillmentContext` should be constructing a `TraitEngine` generically, so later on if/when we're transitioning it'll be easier.

Logical extension of #99746
2022-11-10 10:47:37 -05:00
bors 01a6f30324 Auto merge of #104236 - compiler-errors:rollup-adjshd6, r=compiler-errors
Rollup of 9 pull requests

Successful merges:

 - #102763 (Some diagnostic-related nits)
 - #103443 (Parser: Recover from using colon as path separator in imports)
 - #103675 (remove redundent "<>" for ty::Slice with reference type)
 - #104046 (bootstrap: add support for running Miri on a file)
 - #104115 (Migrate crate-search element to CSS variables)
 - #104190 (Ignore "Change InferCtxtBuilder from enter to build" in git blame)
 - #104201 (Add check in GUI test for file loading failure)
 - #104211 (⬆️ rust-analyzer)
 - #104231 (Update mailmap)

Failed merges:

 - #104169 (Migrate `:target` rules to use CSS variables)

r? `@ghost`
`@rustbot` modify labels: rollup
2022-11-10 13:04:51 +00:00
Michael Goulet 1b1fcf0a4c Rollup merge of #104211 - lnicola:rust-analyzer-2022-11-09, r=lnicola
⬆️ rust-analyzer

r? ``@ghost``
2022-11-09 21:53:38 -08:00
Michael Goulet 985fa02783 Rollup merge of #104201 - GuillaumeGomez:gui-test-check-file-errors, r=notriddle
Add check in GUI test for file loading failure

Since https://github.com/rust-lang/rust/pull/101702, some resources location need to be updated in case their content changed because then their hash will change too. This will prevent errors like https://github.com/rust-lang/rust/pull/104114 to happen again.

The second commit is to prevent CORS errors: when a file is linked from a file itself imported, the web browser considers they come from a different domain and therefore triggers the error. The option tells the web browser to ignore this case.

cc ```@jsha```
r? ```@notriddle```
2022-11-09 21:53:37 -08:00
Michael Goulet 5499687128 Rollup merge of #104115 - GuillaumeGomez:migrate-crate-search-div, r=notriddle
Migrate crate-search element to CSS variables

There should no UI changes.

r? ```@notriddle```
2022-11-09 21:53:36 -08:00
Michael Goulet 7124590dcc Rollup merge of #104046 - RalfJung:run-miri-run, r=oli-obk
bootstrap: add support for running Miri on a file

This enables:
```
./x.py run src/tools/miri --stage 0 --args src/tools/miri/tests/pass/hello.rs
```
That can be super helpful for debugging.

Also avoid sharing the Miri sysroot dir with a system-wide (rustup-managed) installation of Miri.

Fixes https://github.com/rust-lang/rust/issues/76666
2022-11-09 21:53:35 -08:00
Michael Goulet f9160224cf Rollup merge of #103675 - lyming2007:issue-103271-fix, r=fee1-dead
remove redundent "<>" for ty::Slice with reference type

this fix #103271
2022-11-09 21:53:35 -08:00
Michael Goulet 0c4a81c97b Rollup merge of #103443 - mucinoab:recover-colon-as-path-separetor, r=compiler-errors
Parser: Recover from using colon as path separator in imports

I don't know if this is the right approach, any feedback is welcome.

r? ```@compiler-errors```

Fixes #103269
2022-11-09 21:53:34 -08:00
bors 11fa0850f0 Auto merge of #103636 - chenyukang:yukang/fix-103587-sugg-if-let, r=jackh276,davidtwco
Recover from common if let syntax mistakes/typos

Fixes #103587
2022-11-10 05:19:10 +00:00