Commit Graph

14081 Commits

Author SHA1 Message Date
klensy
2d2577cdec typo: -Zcodegen-backend=llvm -Cpasses=list should work now 2022-06-05 07:02:32 +03:00
cole
f3d93b6c62 Allow unstable items to be re-exported unstably without requiring the feature be enabled 2022-06-04 17:05:33 -05:00
Matthias Krüger
1794309e0a Rollup merge of #97737 - jackh726:verbose-pretty-printing-fix, r=compiler-errors
Fix pretty printing named bound regions under -Zverbose

Fixed regression introduced in #97023

r? `@compiler-errors`

cc `@cjgillot`
2022-06-04 23:42:04 +02:00
Matthias Krüger
01453219de Rollup merge of #97707 - Nilstrieb:data-structures-ub, r=cjgillot
Improve soundness of rustc_data_structures

Make it runnable in miri by adding some ignores and changing N in miri. Also fix a stacked borrows issue in sip128.
2022-06-04 23:42:02 +02:00
Matthias Krüger
326315bf54 Rollup merge of #97609 - Elliot-Roberts:unused-trait-refactor, r=cjgillot
Iterate over `maybe_unused_trait_imports` when checking dead trait imports

Closes #96873
r? `@cjgillot`

Some questions, if you have time:

- Is there a way to shorten the `rustc_data_structures::fx::FxIndexSet` path in the query declaration? I wasn't sure where to put a `use`.
- Was returning by reference from the query the right choice here?
- How would I go about evaluating the importance of the `is_dummy()` call in `check_crate`? I don't see failing tests when I comment it out. Should I just try to determine whether dummy spans can ever be put into `maybe_unused_trait_imports`?
- Am I doing anything silly with the various ID types?
- Is that `let-else` with `unreachable!()` bad? (i.e is there a better idiom? Would `panic!("<explanation>")` be better?)
- If I want to evaluate the perf of using a `Vec` as mentioned in #96873, is the best way to use the CI or is it feasible locally?

Thanks :)
2022-06-04 23:42:00 +02:00
Jack Huey
dd38fecb78 Fix pretty printing named bound regions under -Zverbose 2022-06-04 17:32:27 -04:00
Ralf Jung
467e0f4446 use precise spans for recursive const evaluation 2022-06-04 16:18:03 -04:00
Ralf Jung
9ab4f876a1 const_prop_lint: ensure we have up-to-date cur_span() 2022-06-04 15:59:24 -04:00
Ralf Jung
7892e1cedb Move statement_index increment out of statement() function
That function is called by const_prop, where updating the index like that is totally meaningless.
2022-06-04 15:59:24 -04:00
Elliot Roberts
76c6845a85 Iterate over maybe_unused_trait_imports when checking dead trait imports 2022-06-04 12:38:55 -07:00
Chase Wilson
ba2f14e065 Fixed premature assertions that caused -Z randomize-layout to fail on alloc 2022-06-04 12:33:01 -05:00
Nilstrieb
7e3bee6d8e Fix stacked borrows invalidation in rustc_data_structures sip128
It creates the src pointer first, which is then invalidated by a
unique borrow of the destination pointer. Swap the borrows around
to fix this. Found with miri.
2022-06-04 17:46:36 +02:00
Nilstrieb
fc8b13cb96 Adapt rustc_data_structures tests to run in strict miri
Some tests took too long and owning_ref is fundamentally flawed,
so don't run these tests or run them with a shorter N. This makes
miri with `-Zmiri-strict-provenance` usable to find UB.
2022-06-04 17:46:29 +02:00
Ralf Jung
9e00fb0d89 tweak some bug!s 2022-06-04 11:15:36 -04:00
Camille GILLOT
af8739b96e Completely remove LifetimeScopeForPath. 2022-06-04 15:33:27 +02:00
Camille GILLOT
a07290047e Compute lifetimes in scope at diagnostic time. 2022-06-04 15:28:15 +02:00
Sean Cross
9f6e6872c2 riscv32imac-unknown-xous-elf: add target
Xous is a microkernel operating system designed to run on small systems.
The kernel contains a wide range of userspace processes that provide
common services such as console output, networking, and time access.

The kernel and its services are completely written in Rust using a
custom build of libstd. This adds support for this target to upstream
Rust so that we can drop support for our out-of-tree `target.json` file.

Add a Tier 3 target for Xous running on RISC-V.

Signed-off-by: Sean Cross <sean@xobs.io>
2022-06-04 18:47:27 +08:00
Dylan DPC
8c4c698efb Rollup merge of #97722 - compiler-errors:tighten-copy-type-error-spans, r=Dylan-DPC
Tighten spans for bad fields in struct deriving `Copy`

r? `@estebank`

Closes #89137 for good, I think

Not sure if this is what you were looking for in https://github.com/rust-lang/rust/issues/89137#issuecomment-1146201791
2022-06-04 11:06:42 +02:00
Dylan DPC
9917f3816a Rollup merge of #97716 - compiler-errors:issue-97708, r=wesleywiser
Fix reachability analysis for const methods

Use `method_might_be_inlined` directly for `ImplItemKind::Fn` instead of duplicating the logic in `def_id_represents_local_inlined_item`.

This is parallel to how we use `item_might_be_inlined` for `ItemKind::Fn` in that same body.

Fixes #97708
2022-06-04 11:06:42 +02:00
Dylan DPC
9c794b46cf Rollup merge of #97715 - xFrednet:97650-expect-in-fuction-arg, r=wesleywiser
Support the `#[expect]` attribute on fn parameters (RFC-2383)

A small PR to allow the `#[expect]` attribute on function parameters.

Nothing more to say, I hope everyone reading this has a lovely day.

---

r? ``@wesleywiser``

closes: https://github.com/rust-lang/rust/issues/97650

cc: https://github.com/rust-lang/rust/issues/85549
2022-06-04 11:06:41 +02:00
Michael Goulet
4c6a6bc3f9 Tighten spans for bad fields in Copy struct 2022-06-03 19:17:12 -07:00
bors
c3384ea35c Auto merge of #97717 - matthiaskrgr:rollup-lalaii2, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #97446 (Make hir().get_generics and generics_of consistent.)
 - #97656 (Add a suggestion to replace parentheses with angle brackets on associated trait constraint)
 - #97692 (Add `#T-types/nominated` zulip notification)
 - #97696 (Do not ICE when failing to normalize during inlining.)
 - #97702 (Remove useless LocalDefId in ImplTraitContext::Universal.)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-04 02:10:35 +00:00
Michael Goulet
15cccb97d6 Encode MIR for 'unreachable' non-generic fns 2022-06-03 17:39:10 -07:00
bors
f15370b4e4 Auto merge of #97670 - spastorino:simplify-universal-impl-trait-lowering2, r=Dylan-DPC
Make params be SmallVec as originally was

r? `@cjgillot`
It was originally a [`SmallVec`](https://github.com/rust-lang/rust/pull/97598/files#diff-0a61b538a3cec072c76fecae4635af6a12ec3256860029ac70549c2aa53ab394L1497), I've mistakenly changed it [here](https://github.com/rust-lang/rust/pull/97598/files#diff-0a61b538a3cec072c76fecae4635af6a12ec3256860029ac70549c2aa53ab394R1377) to a `Vec`
2022-06-03 23:29:30 +00:00
xFrednet
b5eee17088 Support the #[expect] attribute on fn parameters (RFC-2383) 2022-06-04 00:50:45 +02:00
xFrednet
157e68d01b Fix delayed_good_path_bug ice for expected diagnostics (RFC 2383) 2022-06-04 00:43:24 +02:00
Matthias Krüger
a88d94b072 Rollup merge of #97702 - cjgillot:no-universal-did, r=spastorino
Remove useless LocalDefId in ImplTraitContext::Universal.
2022-06-04 00:42:52 +02:00
Matthias Krüger
74f0bcc9c7 Rollup merge of #97696 - cjgillot:normalize-inline, r=compiler-errors
Do not ICE when failing to normalize during inlining.

Fixes https://github.com/rust-lang/rust/issues/97695
2022-06-04 00:42:51 +02:00
Matthias Krüger
401be78f2c Rollup merge of #97656 - EdwinRy:error_ast_low_type_contraint_parentheses, r=cjgillot
Add a suggestion to replace parentheses with angle brackets on associated trait constraint

This implements a requested suggestion FIXME in [`compiler/rustc_ast_lowering/src/lib.rs` ](9598b4b594/compiler/rustc_ast_lowering/src/lib.rs (L921))

The suggestion asks for the parentheses to either be replaced with angle brackets or removed completely depending on whether there are arguments provided within.

![image](https://user-images.githubusercontent.com/20026256/171770414-ab60bfe2-ae27-44b0-964d-9ffcc32a7475.png)

![image](https://user-images.githubusercontent.com/20026256/171770383-ca8a2766-b3aa-43e3-8ba4-ae18874886ce.png)

r? `@oli-obk`
2022-06-04 00:42:50 +02:00
Jack Huey
410dcc9674 Fully stabilize NLL 2022-06-03 17:16:41 -04:00
Camille GILLOT
623ea5f5d2 Make hir().get_generics and generics_of consistent. 2022-06-03 23:07:04 +02:00
Camille GILLOT
bacd8adeda Fail gracefully when encountering an HRTB in APIT. 2022-06-03 22:50:14 +02:00
Michael Goulet
27af8e4585 Normalize consts' tys when relating with adt_const_params 2022-06-03 13:14:23 -07:00
Camille GILLOT
4120080d66 Remove useless LocalDefId in ImplTraitContext::Universal. 2022-06-03 20:17:12 +02:00
bors
7e9b92cb43 Auto merge of #85993 - bjorn3:serde_json, r=wesleywiser
Remove all json handling from rustc_serialize

Json is now handled using serde_json. Where appropriate I have replaced json usage with binary serialization (rmeta files) or manual string formatting (emcc linker arg generation).

This allowed for removing and simplifying a lot of code, which hopefully results in faster serialization/deserialization and faster compiles of rustc itself.

Where sensible we now use serde. Metadata and incr cache serialization keeps using a heavily modified (compared to crates.io) rustc-serialize version that in the future could probably be extended with zero-copy deserialization or other perf tricks that serde can't support due to supporting more than one serialization format.

Note that I had to remove `-Zast-json` and `-Zast-json-noexpand` as the relevant AST types don't implement `serde::Serialize`.

Fixes #40177

See also https://github.com/rust-lang/compiler-team/issues/418
2022-06-03 17:55:02 +00:00
Camille GILLOT
2e301c89c7 Do not ICE when failing to normalize during inlining. 2022-06-03 19:03:18 +02:00
bjorn3
5cc3593c17 Fix emscripten linker invocation 2022-06-03 17:02:14 +00:00
bjorn3
7381ea019c Remove emit_unit
It doesn't do anything for all encoders
2022-06-03 17:02:14 +00:00
bjorn3
22e8d5f80e Inline many methods of Encoder
They aren't overridden anyway
2022-06-03 17:01:53 +00:00
Nikolai Vazquez
24b1b7c8a8 Fix unsized field order 2022-06-03 12:58:36 -04:00
bjorn3
5cd29225a5 Remove all names from Encoder
They aren't used anymore now that the json format has been removed
2022-06-03 16:56:17 +00:00
bjorn3
ede5ac251c Remove json support from rustc_serialize 2022-06-03 16:46:20 +00:00
bjorn3
15e0d8bdb1 Remove support for -Zast-json and -Zast-json-noexpand 2022-06-03 16:46:20 +00:00
bjorn3
a2591639ec Avoid rustc_serialize in linker.rs 2022-06-03 16:46:20 +00:00
bjorn3
62a4f91a5a Use serde_json for json error messages 2022-06-03 16:46:19 +00:00
bjorn3
fc1df4ff17 Use serde_json for target spec json 2022-06-03 16:46:19 +00:00
bjorn3
fc2abe6952 Remove a couple of unused Encodable and Decodable derives 2022-06-03 16:46:19 +00:00
Maybe Waffle
afaa9854fa Replace &Vec<_>s with &[_]s 2022-06-03 20:42:42 +04:00
EdwinRy
cd03fe18d8 Suggest replace parentheses with angle brackets 2022-06-03 16:48:59 +01:00
bors
9a74608543 Auto merge of #97694 - Dylan-DPC:rollup-2yxo7ce, r=Dylan-DPC
Rollup of 3 pull requests

Successful merges:

 - #97415 (Compute `is_late_bound_map` query separately from lifetime resolution)
 - #97471 (Provide more context when denying invalid type params )
 - #97681 (Add more eslint checks)

Failed merges:

 - #97446 (Make hir().get_generics and generics_of consistent.)

r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-03 15:26:06 +00:00