220423 Commits

Author SHA1 Message Date
Santiago Pastorino
39d19ca9f2
Make impl_trait_in_trait_container consider newly generated RPITITs 2023-03-15 12:27:16 -03:00
Santiago Pastorino
39ffe9699a
Properly implement generics_of for traits 2023-03-15 12:27:16 -03:00
Santiago Pastorino
26c4c1ea97
Rename impl_trait_in_trait_parent to impl_trait_in_trait_parent_fn 2023-03-15 12:27:16 -03:00
Rémy Rakic
5ad1083e5b Revert "Auto merge of #107376 - aliemjay:remove-givens, r=lcnr"
This reverts commit e84e5ff04a647ce28540300244a26ba120642eea, reversing
changes made to 1716932743a7b3705cbf0c34db0c4e070ed1930d.
2023-03-15 15:09:29 +00:00
Alan Egerton
d10b113b35
Set CMAKE_SYSTEM_NAME for Linux targets
When bootstrap compiles native dependencies like LLVM, it should set
CMAKE_SYSTEM_NAME for the target system; otherwise cmake may not
identify that it is cross-compiling.

In particular, when building a Linux rustc on a macOS host, cmake was
including `-isysroot /path/to/macOS.sdk` options that caused things to
break.  By setting `CMAKE_SYSTEM_NAME=Linux` when building for Linux
targets, the macOS SDK is no longer passed as sysroot to the compiler.
2023-03-15 14:57:59 +00:00
bors
a167cbddac Auto merge of #109164 - Dylan-DPC:rollup-0bwxwos, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #108991 (add `enable-warnings` flag for llvm, and disable it by default.)
 - #109109 (Use `unused_generic_params` from crate metadata)
 - #109111 (Create dirs for build_triple)
 - #109136 (Simplify proc macro signature validity check)
 - #109150 (Update cargo)
 - #109154 (Fix MappingToUnit  to support no span of arg_ty)
 - #109157 (Remove mw from review rotation for a while)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2023-03-15 14:50:03 +00:00
bjorn3
fce629d2e9 Merge commit 'dec0daa8f6d0a0e1c702f169abb6bf3eee198c67' into sync_cg_clif-2023-03-15 2023-03-15 14:41:48 +00:00
bjorn3
dec0daa8f6 Rustup to rustc 1.70.0-nightly (171693274 2023-03-14) 2023-03-15 14:33:54 +00:00
bjorn3
fed9534323 Sync from rust 1716932743a7b3705cbf0c34db0c4e070ed1930d 2023-03-15 14:28:47 +00:00
bjorn3
6f6007156b Introduce Box::new in mini_core 2023-03-15 14:26:03 +00:00
bjorn3
b42358a23f Use patched git-subtree from bjorn3/git@tqc-subtree-portable
This patched has been necessary for subtree syncs from the start, but
previously it was necessary to locally install tqc's patched git
version, which hasn't been updated for quite a while. I made a small
change to allow downloading it as script without requiring an entire git
installation for the patched version.
2023-03-15 14:20:18 +00:00
bors
924d277f32 Auto merge of #14361 - Veykril:if-then-parse, r=Veykril
fix: Fix `ast::IfExpr` child accessors

Fixes https://github.com/rust-lang/rust-analyzer/issues/14360
2023-03-15 14:02:16 +00:00
bors
8330f8efc6 Auto merge of #12958 - zachs18:async_closure, r=Veykril
fix: Fix return type of async closures.

May fix #12957
2023-03-15 13:35:44 +00:00
Lukas Wirth
9fe206956f fix: Fix ast::IfExpr child accessors 2023-03-15 14:34:31 +01:00
bors
c16f051792 Auto merge of #14362 - Veykril:remove-dbg, r=Veykril
internal: Prioritize remove-dbg assist over inline-macro
2023-03-15 13:20:18 +00:00
Lukas Wirth
802d7ea335 internal: Prioritize remove-dbg assist over inline-macro 2023-03-15 14:19:50 +01:00
Mark Rousskov
df0be2d65e Bump to latest rustc-perf
This removes a dependency on ntapi 0.3.x which failed to compiled with
latest beta.
rust-lang/rustc-perf@93dc60d995 removed
that dependency in the upstream rustc-perf.
2023-03-15 09:05:25 -04:00
lcnr
d2b7604db9 always make define_opaque_types explicit 2023-03-15 14:00:15 +01:00
Mark Rousskov
bb8a0ffa23 Bump to latest beta 2023-03-15 08:55:22 -04:00
Mark Rousskov
01d7af11e1 Bump version placeholders 2023-03-15 08:55:22 -04:00
Lukas Wirth
3bf07a5f04 Simplify 2023-03-15 13:54:06 +01:00
bors
3ad2fece14 Auto merge of #2806 - saethlin:better-install, r=RalfJung
Install binaries to the miri toolchain's sysroot

The default install produces this behavior:
```
$ cargo +miri miri --version
miri 0.1.0 (0ba1f4a0 2023-03-05)
$ cargo +nightly miri --version
miri 0.1.0 (0ba1f4a0 2023-03-05)
```
Which is not good. We've effectively erased the toolchain selection, and users may reasonably conclude that their rustup install is broken.

After this change, we now get this:
```
$ cargo +miri miri --version
miri 0.1.0 (0ba1f4a0 2023-03-05)
$ cargo +nightly miri --version
miri 0.1.0 (f63ccaf 2023-03-06)
```

Thanks `@jyn514` who all but wrote this for me.
2023-03-15 12:45:04 +00:00
Ralf Jung
3aa4de3fa8
use date-based cache key 2023-03-15 13:44:36 +01:00
Dylan DPC
ff8f659501
Rollup merge of #109157 - michaelwoerister:tb, r=Mark-Simulacrum
Remove mw from review rotation for a while

I'm triple booked right now 📚
2023-03-15 17:51:34 +05:30
Dylan DPC
19d575851a
Rollup merge of #109154 - chenyukang:yukang/fix-109152, r=compiler-errors
Fix MappingToUnit  to support no span of arg_ty

Fixes #109152
2023-03-15 17:51:33 +05:30
Dylan DPC
a08516be86
Rollup merge of #109150 - weihanglo:update-cargo, r=weihanglo
Update cargo

14 commits in 7d3033d2e59383fd76193daf9423c3d141972a7d..4a3c588b1f0a8e2dc8dd8789dbf3b6a71b02ed49
2023-03-08 17:05:08 +0000 to 2023-03-14 14:05:36 +0000
- ci: make clean-test-output a script for reuse (rust-lang/cargo#11848)
- Accurately show status when downgrading dependencies (rust-lang/cargo#11839)
- docs(contrib): Move Design Principles earlier in the book (rust-lang/cargo#11842)
- docs(contrib): Point compilation docs to doc comments (rust-lang/cargo#11841)
- `cargo install --git` multiple packages with binaries found hint (rust-lang/cargo#11835)
- Disable flaky auth tests when `gitoxide` runs them (rust-lang/cargo#11830)
- Add some documentation on writing cross-compilation tests (rust-lang/cargo#11825)
- chore: Use sparse protocol on stable CI (rust-lang/cargo#11829)
- Notice for potential unexpected shell expansions in help text of `cargo-add` (rust-lang/cargo#11826)
- Add tracking issue to gitoxide unstable docs (rust-lang/cargo#11822)
- Bump crates-io to 0.36.0 (rust-lang/cargo#11820)
- Bump to 0.71.0; update changelog (rust-lang/cargo#11815)
- docs(contrib): Move overview to lib (rust-lang/cargo#11809)
- Fix semver check for 1.68 (rust-lang/cargo#11817)

r? `@ghost`
2023-03-15 17:51:33 +05:30
Dylan DPC
8c5ea6188f
Rollup merge of #109136 - compiler-errors:simplify-proc-macro-checking, r=oli-obk
Simplify proc macro signature validity check

Use an `ObligationCtxt` instead of `normalize_erasing_regions` + `DeepRejectCtxt`. This should both give us a more accurate error message, and also avoid issues like not-well-formed proc macro signatures. Also, let's fall back on the regular type mismatch error reporting for making these diagnostic notes, instead of hard-coding a bunch of specific diagnostics.

Fixes #109129
2023-03-15 17:51:32 +05:30
Dylan DPC
d133c36fa9
Rollup merge of #109111 - MU001999:master, r=jyn514
Create dirs for build_triple

Fixes #109103
2023-03-15 17:51:32 +05:30
Dylan DPC
2aa3eea5fc
Rollup merge of #109109 - compiler-errors:polymorphize-foreign, r=Nilstrieb
Use `unused_generic_params` from crate metadata

Due to the way that `separate_provide_extern` interacted with the implementation of `<ty::InstanceDef<'tcx> as Key>::query_crate_is_local`, we actually never hit the foreign provider for `unused_generic_params`.

Additionally, since the *local* provider of `unused_generic_params` calls `should_polymorphize`, which always returns false if the def-id is foreign, this means that we never actually polymorphize monomorphic instances originating from foreign crates.

We don't actually encode `unused_generic_params` for items where all generics are used, so I had to tweak the foreign provider to fall back to `ty::UnusedGenericParams::new_all_used()` to avoid more ICEs when the above bugs were fixed.
2023-03-15 17:51:31 +05:30
Dylan DPC
c11399b2e2
Rollup merge of #108991 - ozkanonur:new-llvm-flag, r=albertlarsan68
add `enable-warnings` flag for llvm, and disable it by default.

This flag allows to turn off warnings of llvm compilation for people who are not interested on those warnings.
2023-03-15 17:51:31 +05:30
hi-rustin
c4939f1eb2 Add RANLIB_x86_64_unknown_illumos env for dist-x86_64-illumos dockerfile
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-03-15 20:11:52 +08:00
Zachary S
af175ddcdc Add test for async closure types.
(rebased onto 6dfd8ae)
2023-03-15 13:10:35 +01:00
Zachary S
6746a08b44 fix: Fix return type of async closures.
(rebased onto 6dfd8ae)
2023-03-15 13:10:00 +01:00
Oli Scherer
d87fbb918c Deduplicate logic between projection normalization with and without escaping bound vars 2023-03-15 12:02:00 +00:00
Oli Scherer
d3d537b972 Exhaustively match over all alias kinds 2023-03-15 12:00:25 +00:00
bors
adbda94303 Auto merge of #14359 - Veykril:opt-out-retry, r=Veykril
fix: Do not retry inlay hint requests

Should close https://github.com/rust-lang/rust-analyzer/issues/13372, retrying the way its currently implemented is not ideal as we do not adjust offsets in the requests, but doing that is a major PITA, so this should at least work around one of the more annoying issues stemming from it.
2023-03-15 11:44:29 +00:00
bors
e4b9f86054 Auto merge of #109035 - scottmcm:ptr-read-should-know-undef, r=WaffleLapkin,JakobDegen
Ensure `ptr::read` gets all the same LLVM `load` metadata that dereferencing does

I was looking into `array::IntoIter` optimization, and noticed that it wasn't annotating the loads with `noundef` for simple things like `array::IntoIter<i32, N>`.  Trying to narrow it down, it seems that was because `MaybeUninit::assume_init_read` isn't marking the load as initialized (<https://rust.godbolt.org/z/Mxd8TPTnv>), which is unfortunate since that's basically its reason to exist.

The root cause is that `ptr::read` is currently implemented via the *untyped* `copy_nonoverlapping`, and thus the `load` doesn't get any type-aware metadata: no `noundef`, no `!range`.  This PR solves that by lowering `ptr::read(p)` to `copy *p` in MIR, for which the backends already do the right thing.

Fortuitiously, this also improves the IR we give to LLVM for things like `mem::replace`, and fixes a couple of long-standing bugs where `ptr::read` on `Copy` types was worse than `*`ing them.

Zulip conversation: <https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/Move.20array.3A.3AIntoIter.20to.20ManuallyDrop/near/341189936>

cc `@erikdesjardins` `@JakobDegen` `@workingjubilee` `@the8472`

Fixes #106369
Fixes #73258
2023-03-15 11:44:12 +00:00
Lukas Wirth
74e08cb60d fix: Do not retry inlay hint requests 2023-03-15 12:44:11 +01:00
bors
1787c14e72 Auto merge of #14358 - Veykril:err-reporting, r=Veykril
Report sysroot and rustc crate loading errors

Also aggregates the warnings and errors so we don't discard previous ones.
cc https://github.com/rust-lang/rust-analyzer/issues/14327
2023-03-15 10:36:50 +00:00
Lukas Wirth
d9c7d28e0d Report sysroot and rustc crate loading errors 2023-03-15 11:35:34 +01:00
Ezra Shaw
35103fe8ab
error-msg: expand suggestion for unused lint 2023-03-15 23:30:12 +13:00
Lukas Wirth
e2ab0ff124 Aggregate errors and warnings in the status message 2023-03-15 11:28:37 +01:00
ozkanonur
2e7249fa0f add enable-warnings flag for llvm
Signed-off-by: ozkanonur <work@onurozkan.dev>
2023-03-15 13:20:02 +03:00
bors
579797f0ec Auto merge of #14357 - Veykril:rustc-priv, r=Veykril
fix: Don't pass feature flags to rustc private crates metadata invocation

Fixes https://github.com/rust-lang/rust-analyzer/issues/14327

Better error reporting I'll do in a follow up
2023-03-15 10:00:23 +00:00
Lukas Wirth
8b8cd04825 fix: Don't pass feature flags to rustc private crates metadata invocation 2023-03-15 10:52:50 +01:00
bors
e611fbe6ab Auto merge of #14355 - Veykril:completion-ref-strip, r=Veykril
fix: Fix reference completions being emitted in places other than argument lists

Fixes https://github.com/rust-lang/rust-analyzer/issues/14331
2023-03-15 09:47:20 +00:00
Lukas Wirth
82ed68c95e fix: Fix reference completions being emitted in places other than argument lists 2023-03-15 10:41:17 +01:00
bors
1a318965fe Auto merge of #14353 - lowr:fix/inline-call-bad-ast, r=Veykril
fix: don't replace `SyntaxToken` with `SyntaxNode`

Fixes #14339

When we inline method calls, we replace the `self` parameter with a local variable `this`. We have been replacing the `self` **tokens** with `NameRef` **nodes**, which makes the AST malformed. This leads to crash when we apply path transformation after the replacement (which only takes place when the method is generic and such scenario was not tested).
2023-03-15 09:32:34 +00:00
Ezra Shaw
bd1732240b
error-msg: impl better suggestion for E0532 2023-03-15 22:19:54 +13:00
bors
05f95cbb0c Auto merge of #14354 - Veykril:sighelp, r=Veykril
feat: Add signature help for record and tuple struct patterns
2023-03-15 09:19:13 +00:00