Commit Graph

210624 Commits

Author SHA1 Message Date
Matthias Krüger
91963cc244
Rollup merge of #103489 - WaffleLapkin:byte_offset_from_you, r=scottmcm
Make `pointer::byte_offset_from` more generic

As suggested by https://github.com/rust-lang/rust/issues/96283#issuecomment-1288792955 (cc ````@scottmcm),```` make `pointer::byte_offset_from` work on pointers of different types. `byte_offset_from` really doesn't care about pointer types, so this is totally fine and, for example, allows patterns like this:
```rust
ptr::addr_of!(x.b).byte_offset_from(ptr::addr_of!(x))
```

The only possible downside is that this removes the `T` == `U` hint to inference, but I don't think this matter much. I don't think there are a lot of cases where you'd want to use `byte_offset_from` with a pointer of unbounded type (and in such cases you can just specify the type).

````@rustbot```` label +T-libs-api
2022-11-16 08:36:10 +01:00
Matthias Krüger
5140bbd102
Rollup merge of #103484 - saschanaz:patch-2, r=ehuss
Add `rust` to `let_underscore_lock` example

Currently https://doc.rust-lang.org/beta/rustc/lints/listing/deny-by-default.html#let-underscore-lock has no colored grammar and raw `{{produces}}` command is exposed.
2022-11-16 08:36:10 +01:00
Ralf Jung
6906f08c13 allow fastrand dependency 2022-11-16 08:30:41 +01:00
bors
e702534763 Auto merge of #102935 - ajtribick:display-float-0.5-fixed-0, r=scottmcm
Fix inconsistent rounding of 0.5 when formatted to 0 decimal places

As described in #70336, when displaying values to zero decimal places the value of 0.5 is rounded to 1, which is inconsistent with the display of other half-integer values which round to even.

From testing the flt2dec implementation, it looks like this comes down to the condition in the fixed-width Dragon implementation where an empty buffer is treated as a case to apply rounding up. I believe the change below fixes it and updates only the relevant tests.

Nevertheless I am aware this is very much a core piece of functionality, so please take a very careful look to make sure I haven't missed anything. I hope this change does not break anything in the wider ecosystem as having a consistent rounding behaviour in floating point formatting is in my opinion a useful feature to have.

Resolves #70336
2022-11-16 07:20:30 +00:00
Nicholas Nethercote
54082dd216 Merge basic blocks where possible when generating LLVM IR.
In `codegen_assert_terminator` we decide if a BB's successor is a
candidate for merging, which requires that it be the only successor, and
that it only have one predecessor. That result then gets passed down,
and if it reaches `funclet_br` with the appropriate BB characteristics,
then no `br` instruction is issued, a `MergingSucc::True` result is
passed back, and the merging proceeds in `codegen_block`.

The commit also adds `CachedLlbb`, a new type to help keep track of
each BB that has been merged into its predecessor.
2022-11-16 15:46:39 +11:00
Nicholas Nethercote
68194aa8d5 Use &mut Bx more.
For the next commit, `FunctionCx::codegen_*_terminator` need to take a
`&mut Bx` instead of consuming a `Bx`. This triggers a cascade of
similar changes across multiple functions. The resulting code is more
concise and replaces many `&mut bx` expressions with `bx`.
2022-11-16 15:46:39 +11:00
bors
3b91b1a37b Auto merge of #104468 - weihanglo:update-cargo, r=weihanglo
Update cargo

5 commits in a3dfea71ca0c888a88111086898aa833c291d497..16b097879b6f117c8ae698aab054c87f26ff325e 2022-11-11 03:50:47 +0000 to 2022-11-14 23:28:16 +0000
- improve error message for cargo add/remove (rust-lang/cargo#11375)
- Bump crate versions of `cargo-util` and `crates-io` (rust-lang/cargo#11369)
- doc(changelog): suggestions of cargo fix are nightly only (rust-lang/cargo#11373)
- Add warning when PATH env separator is in project path (rust-lang/cargo#11318)
- Fix git2 safe-directory disable (rust-lang/cargo#11366)

r? `@ghost`
2022-11-16 03:23:42 +00:00
Stewart Russell
e6e29a8134
Update PROBLEMATIC_CONSTS in style.rs
added 3735932941, since 3735927486 was already present.
2022-11-15 21:19:47 -05:00
Eric Huss
425a7af919 Don't duplicate last cdb debuginfo test command 2022-11-15 17:04:20 -08:00
Weihang Lo
de53bd3eef
Update cargo
5 commits in a3dfea71ca0c888a88111086898aa833c291d497..16b097879b6f117c8ae698aab054c87f26ff325e
2022-11-11 03:50:47 +0000 to 2022-11-14 23:28:16 +0000
- improve error message for cargo add/remove (rust-lang/cargo#11375)
- Bump crate versions of `cargo-util` and `crates-io` (rust-lang/cargo#11369)
- doc(changelog): suggestions of cargo fix are nightly only (rust-lang/cargo#11373)
- Add warning when PATH env separator is in project path (rust-lang/cargo#11318)
- Fix git2 safe-directory disable (rust-lang/cargo#11366)
2022-11-16 00:11:19 +00:00
bors
79146baa9c Auto merge of #102570 - cjgillot:deagg-debuginfo, r=oli-obk
Perform simple scalar replacement of aggregates (SROA) MIR opt

This is a re-open of https://github.com/rust-lang/rust/pull/85796

I copied the debuginfo implementation (first commit) from `@eddyb's` own SROA PR.

This pass replaces plain field accesses by simple locals when possible.
To be eligible, the replaced locals:
- must not be enums or unions;
- must not be used whole;
- must not have their address taken.

The storage and deinit statements are duplicated on each created local.

cc `@tmiasko` who reviewed the former version of this PR.
2022-11-15 23:52:22 +00:00
Michael Howell
7854883b44 rustdoc: remove no-op CSS #crate-search-div { display: inline-block }
`#crate-search-div` is nested directly below `.search-results-title`, which
has `display: inline-flex`. This makes the crate-search-div a [flex item],
which makes its display property irrelevant, because flex items have their
display [blockified] in any case.

[flex item]: https://developer.mozilla.org/en-US/docs/Glossary/Flex_Item
[blockified]: https://www.w3.org/TR/css-flexbox-1/#flex-items
2022-11-15 15:57:00 -07:00
Nicholas Nethercote
358a603f11 Use token::Lit in ast::ExprKind::Lit.
Instead of `ast::Lit`.

Literal lowering now happens at two different times. Expression literals
are lowered when HIR is crated. Attribute literals are lowered during
parsing.

This commit changes the language very slightly. Some programs that used
to not compile now will compile. This is because some invalid literals
that are removed by `cfg` or attribute macros will no longer trigger
errors. See this comment for more details:
https://github.com/rust-lang/rust/pull/102944#issuecomment-1277476773
2022-11-16 09:41:28 +11:00
Nicholas Nethercote
01760265cb Add some more bad suffix cases in a test. 2022-11-16 09:02:19 +11:00
Nicholas Nethercote
b8db4a34ef Add a test for different stages of lexer error reporting. 2022-11-16 09:02:19 +11:00
Michael Howell
74969ac2d1 rustdoc: remove pointless CSS .rightside { padding-right: 2px }
This CSS was added in 34bd2b845b, as
`.since { padding-right: 2px }`, to prevent it from uncomfortably touching
the srclink, which was a separate floated element. It was carried forward
with 962c0a4ee5 to the new `.rightside`, but
its role was replaced with adding " • " between them. All it does now
is pushes the element 2px away from the page's right margin.

Removing this rule changes the page layout, but you have to look for it to
notice it.
2022-11-15 13:23:21 -07:00
Kagami Sascha Rosylight
0a528b16fc
Merge branch 'master' into patch-2 2022-11-15 21:16:11 +01:00
Michael Howell
5649cbb9f8 rustdoc: remove unused JS IIFE from main.js
This [IIFE] made sense when it was added in
f0683f98fa and there was a local variable
scoped to it, but now it only sets two globals, so it does nothing.

[IIFE]: https://developer.mozilla.org/en-US/docs/Glossary/IIFE "immediately invoked function expression"
2022-11-15 13:03:44 -07:00
Mateusz Mikuła
c82353790a Fix building of aarch64-pc-windows-gnullvm
That change had been lost during rebase
2022-11-15 20:54:04 +01:00
Ralf Jung
5516273805 update lockfile 2022-11-15 20:06:42 +01:00
Nilstrieb
b7b67228f9
Only do parser recovery on retried macro matching
This prevents issues with eager parser recovery during macro matching.
2022-11-15 19:34:35 +01:00
bors
209bcbb178 Auto merge of #2667 - RalfJung:josh, r=RalfJung
adjust josh pushing, remove './miri toolchain HEAD/commit'

Looks like pushing works much better if we use as base commit the last commit we pulled from rustc and merged into Miri. Which I guess is fair. Conveniently, the `rust-version` file should usually be pretty much exactly that commit. Also adjust `rustc-pull` to update that file.

Pulling is now the way to update to a newer rustc, so I also removed `./miri toolchain HEAD`.
2022-11-15 18:28:02 +00:00
Ralf Jung
a47e431390 adjust josh pushing and remove ./miri toolchain updating the toolchain file 2022-11-15 19:27:14 +01:00
Camille GILLOT
a18de7084a Mark test as panic=abort. 2022-11-15 18:06:45 +00:00
Camille GILLOT
779007da06 Enable SROA by at mir-opt level 3. 2022-11-15 17:59:36 +00:00
Camille GILLOT
e4f343191a Flatten aggregates into locals. 2022-11-15 17:55:11 +00:00
Camille GILLOT
b550eabfa6 Introduce composite debuginfo. 2022-11-15 17:53:50 +00:00
bors
a00f8ba7fc Auto merge of #104054 - RalfJung:byte-provenance, r=oli-obk
interpret: support for per-byte provenance

Also factors the provenance map into its own module.

The third commit does the same for the init mask. I can move it in a separate PR if you prefer.

Fixes https://github.com/rust-lang/miri/issues/2181

r? `@oli-obk`
2022-11-15 17:37:15 +00:00
The 8472
a2b2010891 - convert from core::arch to core::simd
- bump simd compare to 32bytes
- import small slice compare code from memmem crate
- try a few different probe bytes to avoid degenerate cases
  - but special-case 2-byte needles
2022-11-15 18:30:31 +01:00
The 8472
c37e8fae57 generalize str.contains() tests to a range of haystack sizes
The Big-O is cubic, but this is only called with ~70 chars so it's still fast enough
2022-11-15 18:30:07 +01:00
Ayush Singh
6dfe2395c9
Use custom entry name in gcc
This is a continuation of 9f0a8620bd for
gcc.

Signed-off-by: Ayush Singh <ayushsingh1325@gmail.com>
2022-11-15 22:15:55 +05:30
Andrew Pollack
6211faa7e7 Fuchsia test suite script fix 2022-11-15 16:44:08 +00:00
bors
a046f62bb4 Auto merge of #2666 - RalfJung:josh, r=RalfJung
update josh instructions

https://github.com/josh-project/josh/pull/965 and https://github.com/josh-project/josh/pull/994 have been merged so we don't need a forked josh any more. :)

However, this is blocked on https://github.com/josh-project/josh/issues/1032 which currently prevents me from actually testing this...
2022-11-15 16:24:10 +00:00
Ralf Jung
3c72492e3e update josh instructions 2022-11-15 17:23:31 +01:00
lcnr
b2e6d08e3f use ocx type relation routines 2022-11-15 14:13:47 +01:00
Daniel del Castillo
557226348f Update compiler/rustc_ast_lowering/src/item.rs
Co-authored-by: Camille Gillot <gillot.camille@gmail.com>
2022-11-15 13:57:25 +01:00
CastilloDel
fdb5fe2ed8 Change LoweringContext.children to Vec 2022-11-15 13:57:24 +01:00
CastilloDel
d1eab51f47 Make clobber_abis use an FxIndexMap
It seems to be used more for lookup than iteration, so this could be a
perf hit
2022-11-15 13:57:24 +01:00
CastilloDel
769cc733b1 Remove allow(rustc::potential_query_instability) from rustc_ast_lowering 2022-11-15 13:57:24 +01:00
lcnr
f5f67618e2 add comment about opaque types 2022-11-15 13:50:13 +01:00
lcnr
6aa611a84c mv utility methods into separate module 2022-11-15 13:50:13 +01:00
bors
6d651a295e Auto merge of #104437 - matthiaskrgr:rollup-n5jdg9v, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #103439 (Show note where the macro failed to match)
 - #103734 (Adjust stabilization version to 1.65.0 for wasi fds)
 - #104148 (Visit attributes of trait impl items during AST validation)
 - #104241 (Move most of unwind's build script to lib.rs)
 - #104258 (Deduce closure signature from a type alias `impl Trait`'s supertraits)
 - #104296 (Walk types more carefully in `ProhibitOpaqueTypes` visitor)
 - #104309 (Slightly improve error message for invalid identifier)
 - #104316 (Simplify suggestions for errors in generators.)
 - #104339 (Add `rustc_deny_explicit_impl`)

Failed merges:

 - #103484 (Add `rust` to `let_underscore_lock` example)

r? `@ghost`
`@rustbot` modify labels: rollup
2022-11-15 12:35:57 +00:00
lcnr
45f441a7b4 nll: correctly deal with bivariance 2022-11-15 13:34:08 +01:00
Oli Scherer
e2fbd01ac3 Compare picks via Self type and associated item id 2022-11-15 11:26:17 +00:00
Oli Scherer
d06aac1783 Expose the fallibilty of the unstable lint emission in the method name 2022-11-15 11:26:12 +00:00
Oli Scherer
e65688386b Pull the unstable name collision hint emission out of method probing 2022-11-15 11:26:07 +00:00
Oli Scherer
e694ef5f20 Remove the fishy need for a PartialEq impl 2022-11-15 11:26:02 +00:00
Oli Scherer
c3c3719fdd Remove some redundant span arguments 2022-11-15 11:25:57 +00:00
Oli Scherer
44c4a7b6c4 Remove an unnecessary resolve_vars_if_possible 2022-11-15 11:05:59 +00:00
Oli Scherer
83cc6204ec Flip a boolean that was used wrongly (has no effect though) 2022-11-15 11:05:59 +00:00