]> git.lizzy.rs Git - rust.git/log
rust.git
22 months agoRollup merge of #100352 - ehuss:update-cargo, r=ehuss
Matthias Krüger [Wed, 10 Aug 2022 05:21:40 +0000 (07:21 +0200)]
Rollup merge of #100352 - ehuss:update-cargo, r=ehuss

Update cargo

7 commits in 4fd148c47e733770c537efac5220744945d572ef..ce40690a5e4e315d3dab0aae1eae69d0252c52ac
2022-08-03 15:03:52 +0000 to 2022-08-09 22:32:17 +0000
- Make the `rust-version` error recommend `cargo update --precise -p crate@ver` (rust-lang/cargo#10891)
- resolver docs: link to version requirements syntax full explanation (rust-lang/cargo#10946)
- Bump os_info to 3.5.0 (rust-lang/cargo#10943)
- Mark --timings=html unstable in the document (rust-lang/cargo#10941)
- Mention that aliases are recursive (rust-lang/cargo#10935)
- Test if reserved filenames are allowed in Windows (rust-lang/cargo#10322)
- improve error message for `no such subcommand` (rust-lang/cargo#10924)

22 months agoUpdate cargo
Eric Huss [Wed, 10 Aug 2022 11:07:57 +0000 (04:07 -0700)]
Update cargo

22 months agoRollup merge of #100345 - vincenzopalazzo:macros/is_number_doc, r=joshtriplett
Matthias Krüger [Wed, 10 Aug 2022 05:21:39 +0000 (07:21 +0200)]
Rollup merge of #100345 - vincenzopalazzo:macros/is_number_doc, r=joshtriplett

docs: remove repetition in `is_numeric` function docs

In https://github.com/rust-lang/rust/pull/99628 we introduce new docs for the `is_numeric` function, and this is a follow-up PR that removes some unnecessary repetition that may be introduced by some rebasing.

`@rustbot` r? `@joshtriplett`

22 months agoRollup merge of #100340 - spastorino:fix-100187, r=compiler-errors
Matthias Krüger [Wed, 10 Aug 2022 05:21:38 +0000 (07:21 +0200)]
Rollup merge of #100340 - spastorino:fix-100187, r=compiler-errors

Iterate generics_def_id_map in reverse order to fix P-critical issue

Closes #100187

Fixes a `P-critical` beta regression.

22 months agoRollup merge of #100334 - TaKO8Ki:suggest-missing-semicolon-before-array, r=fee1...
Matthias Krüger [Wed, 10 Aug 2022 05:21:37 +0000 (07:21 +0200)]
Rollup merge of #100334 - TaKO8Ki:suggest-missing-semicolon-before-array, r=fee1-dead

Suggest a missing semicolon before an array

fixes #99658

22 months agoRollup merge of #100332 - eholk:stabilize-ilog, r=scottmcm
Matthias Krüger [Wed, 10 Aug 2022 05:21:36 +0000 (07:21 +0200)]
Rollup merge of #100332 - eholk:stabilize-ilog, r=scottmcm

Rename integer log* methods to ilog*

This reflects the concensus from the libs team as reported at https://github.com/rust-lang/rust/issues/70887#issuecomment-1209513261.

Joint work with `@yoshuawuyts.`

22 months agoRollup merge of #100086 - JakobDegen:better-tests, r=wesleyweiser
Matthias Krüger [Wed, 10 Aug 2022 05:21:35 +0000 (07:21 +0200)]
Rollup merge of #100086 - JakobDegen:better-tests, r=wesleyweiser

Add more `// unit-test`s to MIR opt tests

I only changed things which are hopefully completely uninteresting. I plan to submit more PRs that cover more files, but those cases will need some more complicated (and hence possibly controversial) changes, so I'll try and submit those in reasonably sized batches.

r? rust-lang/wg-mir-opt

22 months agoRollup merge of #100069 - dpaoliello:linkordinal, r=michaelwoerister
Matthias Krüger [Wed, 10 Aug 2022 05:21:34 +0000 (07:21 +0200)]
Rollup merge of #100069 - dpaoliello:linkordinal, r=michaelwoerister

Add error if link_ordinal used with unsupported link kind

The `link_ordinal` attribute only has an affect if the `raw-dylib` link kind is used, so add an error if it is used with any other link kind.

22 months agoRollup merge of #99573 - tbodt:stabilize-backtrace, r=yaahc
Matthias Krüger [Wed, 10 Aug 2022 05:21:33 +0000 (07:21 +0200)]
Rollup merge of #99573 - tbodt:stabilize-backtrace, r=yaahc

Stabilize backtrace

This PR stabilizes the std::backtrace module. As of #99431, the std::Error::backtrace item has been removed, and so the rest of the backtrace feature is set to be stabilized.

Previous discussion can be found in #72981, #3156.

Stabilized API summary:
```rust
pub mod std {
    pub mod backtrace {
        pub struct Backtrace { }
        pub enum BacktraceStatus {
            Unsupported,
            Disabled,
            Captured,
        }
        impl fmt::Debug for Backtrace {}
        impl Backtrace {
            pub fn capture() -> Backtrace;
            pub fn force_capture() -> Backtrace;
            pub const fn disabled() -> Backtrace;
            pub fn status(&self) -> BacktraceStatus;
        }
        impl fmt::Display for Backtrace {}
    }
}
```

`@yaahc`

22 months agoAdd more `// unit-test`s to MIR opt tests
Jakob Degen [Wed, 3 Aug 2022 00:44:25 +0000 (17:44 -0700)]
Add more `// unit-test`s to MIR opt tests

22 months agoApply suggestions from code review
Jane Losare-Lusby [Tue, 9 Aug 2022 22:59:53 +0000 (15:59 -0700)]
Apply suggestions from code review

22 months agodocs: remove repetition
Vincenzo Palazzo [Tue, 9 Aug 2022 21:52:22 +0000 (21:52 +0000)]
docs: remove repetition

Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
22 months agoAuto merge of #100150 - notriddle:notriddle/implementors-js, r=GuillaumeGomez
bors [Tue, 9 Aug 2022 20:00:58 +0000 (20:00 +0000)]
Auto merge of #100150 - notriddle:notriddle/implementors-js, r=GuillaumeGomez

rustdoc: use a more compact encoding for implementors/trait.*.js

The exact amount that this reduces the size of an implementors file depends on whether most of the impls are synthetic or not. For `Send`, it reduces the file from 128K to 112K, while for `Clone` it went from 64K to 44K.

22 months agoAdd docs for get_remapped_def_id
Santiago Pastorino [Tue, 9 Aug 2022 19:39:02 +0000 (16:39 -0300)]
Add docs for get_remapped_def_id

22 months agoIterate def_ids map backwards to try first the latest mappings (it's a stack)
Santiago Pastorino [Tue, 9 Aug 2022 19:33:19 +0000 (16:33 -0300)]
Iterate def_ids map backwards to try first the latest mappings (it's a stack)

22 months agoUpdate rustdoc-json test
Eric Holk [Tue, 9 Aug 2022 19:06:54 +0000 (12:06 -0700)]
Update rustdoc-json test

22 months agoAdd regression test for issue 100187
Santiago Pastorino [Tue, 9 Aug 2022 18:42:59 +0000 (15:42 -0300)]
Add regression test for issue 100187

22 months agoAdd error if link_ordinal used without raw-dylib
Daniel Paoliello [Tue, 2 Aug 2022 17:33:27 +0000 (10:33 -0700)]
Add error if link_ordinal used without raw-dylib

22 months agosuggest a missing semicolon before an array
Takayuki Maeda [Tue, 9 Aug 2022 17:29:28 +0000 (02:29 +0900)]
suggest a missing semicolon before an array

22 months agoRename integer log* methods to ilog*
Eric Holk [Tue, 9 Aug 2022 17:20:49 +0000 (10:20 -0700)]
Rename integer log* methods to ilog*

This reflects the concensus from the libs team as reported at
https://github.com/rust-lang/rust/issues/70887#issuecomment-1209513261

Co-authored-by: Yosh Wuyts <github@yosh.is>
22 months agoAuto merge of #99217 - lcnr:implied-bounds-pre-norm, r=lcnr
bors [Tue, 9 Aug 2022 16:39:43 +0000 (16:39 +0000)]
Auto merge of #99217 - lcnr:implied-bounds-pre-norm, r=lcnr

consider unnormalized types for implied bounds

extracted, and slightly modified, from #98900

The idea here is that generally, rustc is split into things which can assume its inputs are well formed[^1], and things which have verify that themselves.

Generally most predicates should only deal with well formed inputs, e.g. a `&'a &'b (): Trait` predicate should be able to assume that `'b: 'a` holds. Normalization can loosen wf requirements (see #91068) and must therefore not be used in places which still have to check well formedness. The only such place should hopefully be `WellFormed` predicates

fixes #87748 and #98543

r? `@jackh726` cc `@rust-lang/types`

[^1]: These places may still encounter non-wf inputs and have to deal with them without causing an ICE as we may check for well formedness out of order.

22 months agoAuto merge of #100318 - Dylan-DPC:rollup-18tzp6q, r=Dylan-DPC
bors [Tue, 9 Aug 2022 13:51:33 +0000 (13:51 +0000)]
Auto merge of #100318 - Dylan-DPC:rollup-18tzp6q, r=Dylan-DPC

Rollup of 7 pull requests

Successful merges:

 - #96478 (Implement `#[rustc_default_body_unstable]`)
 - #99787 (Rustdoc-Json: Document HRTB's on DynTrait)
 - #100181 (add method to get the mutability of an AllocId)
 - #100221 (Don't document impossible to call default trait items on impls)
 - #100228 (Don't ICE while suggesting updating item path.)
 - #100301 (Avoid `&str` to `String` conversions)
 - #100305 (Suggest adding an appropriate missing pattern excluding comments)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

22 months agotest implied bounds + nested proj oblig
lcnr [Tue, 9 Aug 2022 11:05:46 +0000 (13:05 +0200)]
test implied bounds + nested proj oblig

22 months agoRollup merge of #100305 - TaKO8Ki:suggest-adding-appropriate-missing-pattern-excludin...
Dylan DPC [Tue, 9 Aug 2022 12:04:57 +0000 (17:34 +0530)]
Rollup merge of #100305 - TaKO8Ki:suggest-adding-appropriate-missing-pattern-excluding-comments, r=compiler-errors

Suggest adding an appropriate missing pattern excluding comments

fixes #100272

22 months agoRollup merge of #100301 - TaKO8Ki:avoid-&str-to-String-conversions, r=compiler-errors
Dylan DPC [Tue, 9 Aug 2022 12:04:56 +0000 (17:34 +0530)]
Rollup merge of #100301 - TaKO8Ki:avoid-&str-to-String-conversions, r=compiler-errors

Avoid `&str` to `String` conversions

This patch removes the recently added unnecessary `&str` to `String` conversions.

follow-up to #99718

22 months agoRollup merge of #100228 - luqmana:suggestion-ice, r=estebank
Dylan DPC [Tue, 9 Aug 2022 12:04:55 +0000 (17:34 +0530)]
Rollup merge of #100228 - luqmana:suggestion-ice, r=estebank

Don't ICE while suggesting updating item path.

When an item isn't found, we may suggest an appropriate import to `use`. Along with that, we also suggest updating the path to work with the `use`. Unfortunately, if the code in question originates from a macro, the span used to indicate which part of the path needs updating may not be suitable and cause an ICE (*). Since, such code is not adjustable directly by the user without modifying the macro, just skip the suggestion in such cases.

(*) The ICE happens because the emitter want to indicate to the user what code to delete by referencing a certain span. But in this case, said span has `lo == hi == 0` which means it thinks it's a dummy span. Adding a space before the proc macro attribute is enough to stop it from ICE'ing but even then the suggestion doesn't really make any sense:
```
help: if you import `DataStore`, refer to it directly
  |
1 -  #[dbstruct::dbstruct]
1 +  #[dbstruct::dbstruct]
```

Since suggestions are best-effort, I just gated this one on `can_be_used_for_suggestions` which catches cases like this.

Fixes #100199

22 months agoRollup merge of #100221 - compiler-errors:impossible-trait-items, r=lcnr,notriddle...
Dylan DPC [Tue, 9 Aug 2022 12:04:54 +0000 (17:34 +0530)]
Rollup merge of #100221 - compiler-errors:impossible-trait-items, r=lcnr,notriddle,camelid

Don't document impossible to call default trait items on impls

Closes #100176

This only skips documenting _default_ trait items on impls, not ones that are written inside the impl block. This is a conservative approach, since I think we should document all items written in an impl block (I guess unless hidden or whatever), but the existence of this new query I added makes this easy to extend to other rustdoc cases.

22 months agoRollup merge of #100181 - RalfJung:alloc-ref-mutability, r=jackh726
Dylan DPC [Tue, 9 Aug 2022 12:04:52 +0000 (17:34 +0530)]
Rollup merge of #100181 - RalfJung:alloc-ref-mutability, r=jackh726

add method to get the mutability of an AllocId

Miri needs this for https://github.com/rust-lang/miri/issues/2463.

22 months agoRollup merge of #99787 - aDotInTheVoid:rdj-dyn, r=camelid,notriddle,GuillaumeGomez
Dylan DPC [Tue, 9 Aug 2022 12:04:51 +0000 (17:34 +0530)]
Rollup merge of #99787 - aDotInTheVoid:rdj-dyn, r=camelid,notriddle,GuillaumeGomez

Rustdoc-Json: Document HRTB's on DynTrait

Closes https://github.com/rust-lang/rust/issues/99118

Probably best reviewed commit by commit.

`@rustbot` modify labels: +A-rustdoc-json

cc `@Enselic`

r? `@CraftSpider`

22 months agoRollup merge of #96478 - WaffleLapkin:rustc_default_body_unstable, r=Aaron1011
Dylan DPC [Tue, 9 Aug 2022 12:04:50 +0000 (17:34 +0530)]
Rollup merge of #96478 - WaffleLapkin:rustc_default_body_unstable, r=Aaron1011

Implement `#[rustc_default_body_unstable]`

This PR implements a new stability attribute — `#[rustc_default_body_unstable]`.

`#[rustc_default_body_unstable]` controls the stability of default bodies in traits.
For example:
```rust
pub trait Trait {
    #[rustc_default_body_unstable(feature = "feat", isssue = "none")]
    fn item() {}
}
```
In order to implement `Trait` user needs to either
- implement `item` (even though it has a default implementation)
- enable `#![feature(feat)]`

This is useful in conjunction with [`#[rustc_must_implement_one_of]`](https://github.com/rust-lang/rust/pull/92164), we may want to relax requirements for a trait, for example allowing implementing either of `PartialEq::{eq, ne}`, but do so in a safe way — making implementation of only `PartialEq::ne` unstable.

r? `@Aaron1011`
cc `@nrc` (iirc you were interested in this wrt `read_buf`), `@danielhenrymantilla` (you were interested in the related `#[rustc_must_implement_one_of]`)
P.S. This is my first time working with stability attributes, so I'm not sure if I did everything right 😅

22 months agoAuto merge of #100089 - JakobDegen:no-invalidate-visitor, r=tmiasko
bors [Tue, 9 Aug 2022 11:05:42 +0000 (11:05 +0000)]
Auto merge of #100089 - JakobDegen:no-invalidate-visitor, r=tmiasko

Add option to `mir::MutVisitor` to not invalidate CFG.

This also applies that option to some uses of the visitor. I had considered a design more similar to #100087 in which we detect if the CFG needs to be invalidated, but that is more difficult with the visitor API and so I decided against it. Another alternative to this design is to offer an API for "saving" and "restoring" CFG caches across arbitrary code. Such an API is more general, and so we may eventually want it anyway, but it seems overkill for this use case.

r? `@tmiasko`

22 months agodon't normalize wf predicates
lcnr [Wed, 13 Jul 2022 17:42:08 +0000 (19:42 +0200)]
don't normalize wf predicates

this allows us to soundly use unnormalized projections for wf

22 months agoAdd option to `mir::MutVisitor` to not invalidate CFG.
Jakob Degen [Wed, 3 Aug 2022 03:06:16 +0000 (20:06 -0700)]
Add option to `mir::MutVisitor` to not invalidate CFG.

This also applies that option to some uses of the visitor

22 months agoAuto merge of #100304 - matthiaskrgr:rollup-gs56vlw, r=matthiaskrgr
bors [Tue, 9 Aug 2022 08:03:08 +0000 (08:03 +0000)]
Auto merge of #100304 - matthiaskrgr:rollup-gs56vlw, r=matthiaskrgr

Rollup of 6 pull requests

Successful merges:

 - #100163 (Refactor: remove an unnecessary string search)
 - #100212 (Remove more Clean trait implementations)
 - #100238 (Further improve error message for E0081)
 - #100268 (Add regression test for #79148)
 - #100294 (Update Duration::as_secs doc to point to as_secs_f64/32 for including fractional part)
 - #100303 (:arrow_up: rust-analyzer)

Failed merges:

 - #100281 (Remove more Clean trait implementations)

r? `@ghost`
`@rustbot` modify labels: rollup

22 months agosuggest adding an appropriate missing pattern excluding comments
Takayuki Maeda [Tue, 9 Aug 2022 05:27:26 +0000 (14:27 +0900)]
suggest adding an appropriate missing pattern excluding comments

22 months agoRollup merge of #100303 - lnicola:rust-analyzer-2022-08-09, r=lnicola
Matthias Krüger [Tue, 9 Aug 2022 05:06:02 +0000 (07:06 +0200)]
Rollup merge of #100303 - lnicola:rust-analyzer-2022-08-09, r=lnicola

:arrow_up: rust-analyzer

r? `@ghost`

22 months agoRollup merge of #100294 - theli-ua:master, r=thomcc
Matthias Krüger [Tue, 9 Aug 2022 05:06:01 +0000 (07:06 +0200)]
Rollup merge of #100294 - theli-ua:master, r=thomcc

Update Duration::as_secs doc to point to as_secs_f64/32 for including fractional part

Rather than suggesting to calculate manually

22 months agoRollup merge of #100268 - TaKO8Ki:add-regression-test-for-79148, r=Mark-Simulacrum
Matthias Krüger [Tue, 9 Aug 2022 05:05:59 +0000 (07:05 +0200)]
Rollup merge of #100268 - TaKO8Ki:add-regression-test-for-79148, r=Mark-Simulacrum

Add regression test for #79148

closes #79148

22 months agoRollup merge of #100238 - Bryysen:master, r=cjgillot
Matthias Krüger [Tue, 9 Aug 2022 05:05:58 +0000 (07:05 +0200)]
Rollup merge of #100238 - Bryysen:master, r=cjgillot

Further improve error message for E0081

Closes #97533

22 months agoRollup merge of #100212 - GuillaumeGomez:rm-clean-impls, r=Dylan-DPC
Matthias Krüger [Tue, 9 Aug 2022 05:05:56 +0000 (07:05 +0200)]
Rollup merge of #100212 - GuillaumeGomez:rm-clean-impls, r=Dylan-DPC

Remove more Clean trait implementations

Follow-up of https://github.com/rust-lang/rust/pull/99638.

r? `@notriddle`

22 months agoRollup merge of #100163 - TaKO8Ki:remove-unnecessary-string-search, r=wesleywiser
Matthias Krüger [Tue, 9 Aug 2022 05:05:55 +0000 (07:05 +0200)]
Rollup merge of #100163 - TaKO8Ki:remove-unnecessary-string-search, r=wesleywiser

Refactor: remove an unnecessary string search

22 months agoAuto merge of #100205 - cjgillot:noice-doc, r=camelid
bors [Tue, 9 Aug 2022 05:05:46 +0000 (05:05 +0000)]
Auto merge of #100205 - cjgillot:noice-doc, r=camelid

Avoid ICE in rustdoc when using `Fn` bounds

Fixes https://github.com/rust-lang/rust/issues/100143

22 months ago:arrow_up: rust-analyzer
Laurențiu Nicola [Tue, 9 Aug 2022 04:23:57 +0000 (07:23 +0300)]
:arrow_up: rust-analyzer

22 months agoavoid `&str` to `String` conversions
Takayuki Maeda [Tue, 9 Aug 2022 03:27:53 +0000 (12:27 +0900)]
avoid `&str` to `String` conversions

22 months agoUpdate Duration::as_secs doc to point to as_secs_f64/32 for including fractional...
Anton Romanov [Tue, 9 Aug 2022 00:51:17 +0000 (17:51 -0700)]
Update Duration::as_secs doc to point to as_secs_f64/32 for including fractional part

Rather than suggesting to calculate manually

22 months agoAdd regression test comment
Noah Lev [Mon, 8 Aug 2022 21:09:55 +0000 (14:09 -0700)]
Add regression test comment

22 months agoFix plural form of `variant` in error message not formatting correctly
Bryysen [Mon, 8 Aug 2022 19:34:55 +0000 (21:34 +0200)]
Fix plural form of `variant` in error message not formatting correctly
due to ordering, added/improved comments and removed redundant test
already caught by `E0081.rs`

22 months agoSynthetize a trait ref when none is available.
Camille GILLOT [Mon, 8 Aug 2022 19:09:09 +0000 (21:09 +0200)]
Synthetize a trait ref when none is available.

22 months agoadd regression test for #79148
Takayuki Maeda [Mon, 8 Aug 2022 10:50:10 +0000 (19:50 +0900)]
add regression test for #79148

22 months agoAuto merge of #98863 - compiler-errors:projection-msg, r=estebank
bors [Mon, 8 Aug 2022 10:16:20 +0000 (10:16 +0000)]
Auto merge of #98863 - compiler-errors:projection-msg, r=estebank

Implement special-cased projection error message for some common traits

Not sure what the best phrasing is, but I feel like these are more clear than the plain `<Type as Iterator>::Output == Type` messages.

If this is actually a good idea, are there any other traits this could benefit?

22 months agoAuto merge of #98489 - cjgillot:naked-nohir, r=davidtwco,tmiasko
bors [Mon, 8 Aug 2022 07:31:12 +0000 (07:31 +0000)]
Auto merge of #98489 - cjgillot:naked-nohir, r=davidtwco,tmiasko

Only fetch HIR for naked functions that have the attribute.

22 months agoAuto merge of #100207 - notriddle:notriddle/skipped-inline-module, r=Manishearth
bors [Mon, 8 Aug 2022 04:39:29 +0000 (04:39 +0000)]
Auto merge of #100207 - notriddle:notriddle/skipped-inline-module, r=Manishearth

rustdoc: do not mark the contents of a skipped module as inlined

Fixes #100204

22 months agoAdjust wording
Michael Goulet [Mon, 8 Aug 2022 00:13:41 +0000 (00:13 +0000)]
Adjust wording

22 months agoImplement special-cased projection error message for some common traits
Michael Goulet [Sun, 3 Jul 2022 20:17:08 +0000 (20:17 +0000)]
Implement special-cased projection error message for some common traits

22 months agoDon't document impossible to call default trait items on impls
Michael Goulet [Sun, 7 Aug 2022 05:47:32 +0000 (05:47 +0000)]
Don't document impossible to call default trait items on impls

22 months agoFix wording on comment
Bryysen [Sun, 7 Aug 2022 21:50:12 +0000 (23:50 +0200)]
Fix wording on comment

22 months agoAuto merge of #100245 - matthiaskrgr:rollup-tfoo650, r=matthiaskrgr
bors [Sun, 7 Aug 2022 21:25:29 +0000 (21:25 +0000)]
Auto merge of #100245 - matthiaskrgr:rollup-tfoo650, r=matthiaskrgr

Rollup of 6 pull requests

Successful merges:

 - #100019 (Revive suggestions for boxed trait objects instead of impl Trait)
 - #100038 (Document the `no-std` target option in config.toml.example)
 - #100194 (Remove even more box syntax uses from src/test)
 - #100206 (test: skip terminfo parsing in Miri)
 - #100230 (Use start_point instead of next_point to point to elided lifetime amp…)
 - #100244 (Add armv4t-none-eabi take2)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

22 months agoAdd UI test for #100199
Luqman Aden [Sun, 7 Aug 2022 20:55:36 +0000 (13:55 -0700)]
Add UI test for #100199

22 months agoAdd comments to obscure code, remove unnesecary parameter from closure
Bryysen [Sun, 7 Aug 2022 20:28:16 +0000 (22:28 +0200)]
Add comments to obscure code, remove unnesecary parameter from closure

22 months agoRollup merge of #100244 - Lokathor:add-armv4t-none-eabi-take2, r=jackh726
Matthias Krüger [Sun, 7 Aug 2022 19:10:27 +0000 (21:10 +0200)]
Rollup merge of #100244 - Lokathor:add-armv4t-none-eabi-take2, r=jackh726

Add armv4t-none-eabi take2

This is the same as the previous PR (https://github.com/rust-lang/rust/pull/99226) but i just made a fresh branch without a merge commit in it.

---

### armv4t-none-eabi target quiz

> A tier 3 target must have a designated developer or developers (the "target maintainers") on record to be CCed when issues arise regarding the target.

That's me!

> Targets must use naming consistent with any existing targets

We're using the existing name as recognized by LLVM and GCC

> Tier 3 targets may have unusual requirements to build or use, but must not create legal issues or impose onerous legal terms for the Rust project or for Rust developers or users.

No legal issues here.

>> The target must not introduce license incompatibilities.

No license requirements here.

>> Anything added to the Rust repository must be under the standard Rust license (MIT OR Apache-2.0).

check

>> The target must not cause the Rust tools or libraries built for any other host (even when supporting cross-compilation to the target) to depend on any new dependency less permissive than the Rust licensing policy.

no new deps, we're just adding a rustc target description file for a target llvm already knows about.

>> Compiling, linking, and emitting functional binaries, libraries, or other code for the target (whether hosted on the target itself or cross-compiling from another target) must not depend on proprietary (non-FOSS) libraries.

bare-metal target, doesn't rely on any libs at all.

> Tier 3 targets should attempt to implement as much of the standard libraries as possible and appropriate

`core` only here. You could build `alloc` too, but you'd have to bring your own global allocator.

> The target must provide documentation for the Rust community explaining how to build for the target, using cross-compilation if possible.

LLVM knows how to do it, you just need the GNU Binutils linker because LLVM's linker doesn't work that far back. That's in the docs as part of this PR.

> Tier 3 targets must not impose burden on the authors of pull requests, or other developers in the community, to maintain the target.

No burdens, LLVM already knows how to do this. Further, because this is a cpu-feature variant of an existing tier3 target the `compiler-builtins` crate has already been updated as necessary to fix any missing builtin function gaps.

> Patches adding or updating tier 3 targets must not break any existing tier 2 or tier 1 target, and must not knowingly break another tier 3 target without approval of either the compiler team or the maintainers of the other tier 3 target.

check.

22 months agoRollup merge of #100230 - cjgillot:noice-multibyte-amp, r=compiler-errors
Matthias Krüger [Sun, 7 Aug 2022 19:10:26 +0000 (21:10 +0200)]
Rollup merge of #100230 - cjgillot:noice-multibyte-amp, r=compiler-errors

Use start_point instead of next_point to point to elided lifetime amp…

Using `next_point` creates a span which points inside the multibyte token, ICEing.

Fixes https://github.com/rust-lang/rust/issues/100224

22 months agoRollup merge of #100206 - RalfJung:miri-terminfo, r=thomcc
Matthias Krüger [Sun, 7 Aug 2022 19:10:25 +0000 (21:10 +0200)]
Rollup merge of #100206 - RalfJung:miri-terminfo, r=thomcc

test: skip terminfo parsing in Miri

Terminfo parsing takes a significant amount of time in Miri, making libtest startup very slow. To work around that Miri in fact unsets the `TERM` variable. However, this means we don't get colors in `cargo miri test`.

So I propose we add some logic in libtest that skips parsing terminfo files under Miri, and just uses the regular basic coloring commands (taken from the `colored` crate).

As far as I can see, these two commands are all that libtest ever needs from terminfo, so Miri doesn't even lose any functionality through this. If you want I can entirely remove the terminfo parsing code and just use these commands instead.

Cc https://github.com/rust-lang/miri/issues/2292 `@saethlin`

22 months agoRollup merge of #100194 - est31:box_syntax_tests, r=Mark-Simulacrum
Matthias Krüger [Sun, 7 Aug 2022 19:10:24 +0000 (21:10 +0200)]
Rollup merge of #100194 - est31:box_syntax_tests, r=Mark-Simulacrum

Remove even more box syntax uses from src/test

Prior work, notably #88316 has removed box syntax from most of the testsuite.
However, some tests were left out.
This commit removes box_syntax uses from more locations in src/test.
This migrates the tests where `box` is mostly an "implementation detail" and not the primary thing being tested by the test.
Furthermore, some tests from the mir-opt test suite are not being migrated.

22 months agoRollup merge of #100038 - nicholasbishop:bishop-add-no-std, r=Mark-Simulacrum
Matthias Krüger [Sun, 7 Aug 2022 19:10:23 +0000 (21:10 +0200)]
Rollup merge of #100038 - nicholasbishop:bishop-add-no-std, r=Mark-Simulacrum

Document the `no-std` target option in config.toml.example

22 months agoRollup merge of #100019 - TaKO8Ki:suggest-boxed-trait-objects-instead-of-impl-trait...
Matthias Krüger [Sun, 7 Aug 2022 19:10:22 +0000 (21:10 +0200)]
Rollup merge of #100019 - TaKO8Ki:suggest-boxed-trait-objects-instead-of-impl-trait, r=compiler-errors

Revive suggestions for boxed trait objects instead of impl Trait

The suggestion implemented in #75608 was not working properly, so I fixed it.

22 months agoAuto merge of #100218 - nicholasbishop:bishop-update-cb, r=Mark-Simulacrum
bors [Sun, 7 Aug 2022 18:44:41 +0000 (18:44 +0000)]
Auto merge of #100218 - nicholasbishop:bishop-update-cb, r=Mark-Simulacrum

Update compiler_builtins to 0.1.78

Among other things, this pulls in https://github.com/rust-lang/compiler-builtins/pull/475, which fixes some i128/u128 arithmetic operations on the `x86_64-unknown-uefi` target.

22 months agoUpdate SUMMARY.md
Lokathor [Sun, 7 Aug 2022 18:42:25 +0000 (12:42 -0600)]
Update SUMMARY.md

22 months agoCreate armv4t_none_eabi.md
Lokathor [Sun, 7 Aug 2022 18:41:38 +0000 (12:41 -0600)]
Create armv4t_none_eabi.md

22 months agoCreate armv4t_none_eabi.rs
Lokathor [Sun, 7 Aug 2022 18:40:41 +0000 (12:40 -0600)]
Create armv4t_none_eabi.rs

22 months agoAuto merge of #99833 - andrewpollack:fuchsia-rust-ci-zircon-lib-improvement, r=Mark...
bors [Sun, 7 Aug 2022 15:58:30 +0000 (15:58 +0000)]
Auto merge of #99833 - andrewpollack:fuchsia-rust-ci-zircon-lib-improvement, r=Mark-Simulacrum

Fuchsia CI zircon lib improvement

Removing Zircon build process, instead pulling `sysroot` and related libs directly from Fuchsia SDK

cc. `@tmandry` `@djkoloski`

22 months agotest: skip terminfo parsing in Miri
Ralf Jung [Sat, 6 Aug 2022 18:17:40 +0000 (14:17 -0400)]
test: skip terminfo parsing in Miri

22 months agoFurther improve error message for E0081
Bryysen [Sun, 7 Aug 2022 15:24:25 +0000 (17:24 +0200)]
Further improve error message for E0081

Multiple duplicate assignments of the same discriminant are now reported
in the samme error. We now point out the incrementation start point for
discriminants that are not explicitly assigned that are also duplicates.
Removed old test related to E0081 that is now covered by error-codes/E0081.rs.
Also refactored parts of the `check_enum` function.

22 months agoShifting CI to pull Zircon libraries directly from Fuchsia SDK
Andrew Pollack [Wed, 27 Jul 2022 23:47:19 +0000 (23:47 +0000)]
Shifting CI to pull Zircon libraries directly from Fuchsia SDK

PR feedback

PR Followups

Updating clang download

Updating clang download

Restructuring env used

Restructuring env used

Adding chmod

Adding chmod

Adding chmod

22 months agoAuto merge of #99983 - RalfJung:more-layout-checks, r=eddyb
bors [Sun, 7 Aug 2022 13:17:54 +0000 (13:17 +0000)]
Auto merge of #99983 - RalfJung:more-layout-checks, r=eddyb

More layout sanity checks

r? `@eddyb`

22 months agoUse start_point instead of next_point to point to elided lifetime ampersand.
Camille GILLOT [Sun, 7 Aug 2022 12:35:11 +0000 (14:35 +0200)]
Use start_point instead of next_point to point to elided lifetime ampersand.

22 months agoDon't ICE while suggesting updating item path.
Luqman Aden [Sun, 7 Aug 2022 11:03:28 +0000 (04:03 -0700)]
Don't ICE while suggesting updating item path.

When an item isn't found, we may suggest an appropriate import to
`use`. Along with that, we also suggest updating the path to work
with the `use`. Unfortunately, if the code in question originates
from a macro, the span used to indicate which part of the path
needs updating may not be suitable and cause an ICE. Since, such
code is not adjustable directly by the user without modifying the
macro, just skip the suggestion in such cases.

22 months agoAuto merge of #12956 - oxalica:feat/la-arena-apis, r=lnicola
bors [Sun, 7 Aug 2022 08:50:23 +0000 (08:50 +0000)]
Auto merge of #12956 - oxalica:feat/la-arena-apis, r=lnicola

More methods and traits for `la_arena::ArenaMap`

Continue of #12931. Seems that I forgot some methods in the previous PR :(

I also changed `ArenaMap::insert` to return the old value, to match the map-like collection API of std. **So this is a breaking change.**

r? `@lnicola`

22 months agofix wrong suggestions for boxed trait objects instead of impl trait
Takayuki Maeda [Mon, 1 Aug 2022 11:22:50 +0000 (20:22 +0900)]
fix wrong suggestions for boxed trait objects instead of impl trait

22 months agorevive suggestions for boxed trait objects instead of impl Trait
Takayuki Maeda [Mon, 1 Aug 2022 09:42:16 +0000 (18:42 +0900)]
revive suggestions for boxed trait objects instead of impl Trait

22 months agoAuto merge of #12959 - lnicola:rainbows-again, r=lnicola
bors [Sun, 7 Aug 2022 06:30:11 +0000 (06:30 +0000)]
Auto merge of #12959 - lnicola:rainbows-again, r=lnicola

Fix `test_rainbow_highlighting` gate

CC https://github.com/rust-lang/rust-analyzer/pull/12903#pullrequestreview-1058906953

22 months agoFix test_rainbow_highlighting gate
Laurențiu Nicola [Sun, 7 Aug 2022 06:29:26 +0000 (09:29 +0300)]
Fix test_rainbow_highlighting gate

22 months agoAuto merge of #100091 - chenyukang:add-check-for-link-ordinal, r=michaelwoerister
bors [Sun, 7 Aug 2022 05:37:29 +0000 (05:37 +0000)]
Auto merge of #100091 - chenyukang:add-check-for-link-ordinal, r=michaelwoerister

Check link ordinal to make sure it is targetted  for foreign function

Fix #100009, when link ordinal is not target for foreign functions, emit an error.

cc `@dpaoliello`

22 months agoAuto merge of #100004 - jyn514:exclude-single-test, r=Mark-Simulacrum
bors [Sun, 7 Aug 2022 02:56:48 +0000 (02:56 +0000)]
Auto merge of #100004 - jyn514:exclude-single-test, r=Mark-Simulacrum

Move `x test --skip` to be part of `--exclude`

`--skip` is inconsistent with the rest of the interface and redundant with `--exclude`.
Fix --exclude to work properly for files and directories rather than having a separate flag.

Fixes https://github.com/rust-lang/rust/issues/96342. cc https://github.com/rust-lang/rust/pull/96493#issuecomment-1200521720

r? `@Mark-Simulacrum`

22 months agoRemove even more box syntax uses from src/test
est31 [Thu, 7 Jul 2022 02:36:10 +0000 (04:36 +0200)]
Remove even more box syntax uses from src/test

Prior work, notably 6550021124451628b1efc60c59284465b109e3aa from #88316
has removed box syntax from most of the testsuite. However,
some tests were left out.
This commit removes box_syntax uses from more locations in src/test.
Some tests that are very box syntax specific are not being migrated.

22 months agoUpdate compiler_builtins to 0.1.78
Nicholas Bishop [Sun, 7 Aug 2022 00:49:48 +0000 (20:49 -0400)]
Update compiler_builtins to 0.1.78

22 months agoAuto merge of #100213 - matthiaskrgr:rollup-mqe7t1n, r=matthiaskrgr
bors [Sat, 6 Aug 2022 23:38:28 +0000 (23:38 +0000)]
Auto merge of #100213 - matthiaskrgr:rollup-mqe7t1n, r=matthiaskrgr

Rollup of 5 pull requests

Successful merges:

 - #100071 (deps: dedupe `annotate-snippets` crate versions)
 - #100127 (Remove Windows function preloading)
 - #100130 (Avoid pointing out `return` span if it has nothing to do with type error)
 - #100169 (Optimize `pointer::as_aligned_to`)
 - #100175 (ascii -> ASCII in code comment)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

22 months agoRollup merge of #100175 - fxn:patch-1, r=Mark-Simulacrum
Matthias Krüger [Sat, 6 Aug 2022 23:19:35 +0000 (01:19 +0200)]
Rollup merge of #100175 - fxn:patch-1, r=Mark-Simulacrum

ascii -> ASCII in code comment

Easy one I spotted while reading source code.

22 months agoRollup merge of #100169 - WaffleLapkin:optimize_is_aligned_to, r=workingjubilee
Matthias Krüger [Sat, 6 Aug 2022 23:19:34 +0000 (01:19 +0200)]
Rollup merge of #100169 - WaffleLapkin:optimize_is_aligned_to, r=workingjubilee

Optimize `pointer::as_aligned_to`

This PR replaces `addr % align` with `addr & align - 1`, which is correct due to `align` being a power of two.

Here is a proof that this makes things better: [[godbolt]](https://godbolt.org/z/Wbq3hx6YG).

This PR also removes `assume(align != 0)`, with the new impl it does not improve anything anymore ([[godbolt]](https://rust.godbolt.org/z/zcnrG4777), [[original concern]](https://github.com/rust-lang/rust/pull/95643#discussion_r843326903)).

22 months agoRollup merge of #100130 - compiler-errors:erroneous-return-span, r=lcnr
Matthias Krüger [Sat, 6 Aug 2022 23:19:33 +0000 (01:19 +0200)]
Rollup merge of #100130 - compiler-errors:erroneous-return-span, r=lcnr

Avoid pointing out `return` span if it has nothing to do with type error

This code:

```rust
fn f(_: String) {}

fn main() {
    let x = || {
        if true {
            return ();
        }
        f("");
    };
}
```

Emits this:
```
   Compiling playground v0.0.1 (/playground)
error[E0308]: mismatched types
 --> src/main.rs:8:11
  |
8 |         f("");
  |           ^^- help: try using a conversion method: `.to_string()`
  |           |
  |           expected struct `String`, found `&str`
  |
note: return type inferred to be `String` here
 --> src/main.rs:6:20
  |
6 |             return ();
  |                    ^^
```

Specifically, that note has nothing to do with the type error in question. This is because the change implemented in #84244 tries to point out the `return` span on _any_ type coercion error within a closure that happens after a `return` statement, regardless of if the error has anything to do with it.

This is really easy to trigger -- just needs a closure (or an `async`) and an early return (or any other form, e.g. `?` operator suffices) -- and super distracting in production codebases. I'm letting #84128 regress because that issue is much harder to fix correctly, and I can re-open that issue after this lands.

As a drive-by, I added a `resolve_vars_if_possible` to the coercion error logic, which leads to some error improvements. Unrelated to the issue above, though.

22 months agoRollup merge of #100127 - ChrisDenton:remove-init, r=thomcc
Matthias Krüger [Sat, 6 Aug 2022 23:19:32 +0000 (01:19 +0200)]
Rollup merge of #100127 - ChrisDenton:remove-init, r=thomcc

Remove Windows function preloading

After `@Mark-Simulacrum` asked me to provide guidance for when optionally imported functions should be preloaded, I realised my justifications were now quite weak. I think the strongest argument that can be made is that it avoids some degree of nondeterminism when calling these functions (in as far as system API calls can be said to be deterministic). However, I don't think that's particularly convincing unless there's a real world use case where it matters. Further discussion with `@thomcc` has strengthened my feeling that preloading isn't really needed.

Note that `WaitOnAddress` needed some adjustment to work without preloading. I opted not to use a macro for this special case as it seemed silly to do so for just one thing (and I don't like macros tbh).

22 months agoRollup merge of #100071 - klensy:annotate-snippets-bump, r=Mark-Simulacrum
Matthias Krüger [Sat, 6 Aug 2022 23:19:32 +0000 (01:19 +0200)]
Rollup merge of #100071 - klensy:annotate-snippets-bump, r=Mark-Simulacrum

deps: dedupe `annotate-snippets` crate versions

Dedupes `annotate-snippets` crate versions (https://github.com/rust-lang/annotate-snippets-rs/blob/0.9.1/CHANGELOG.md). Should work, but there is not a lot of tests.

Looks like switching to that crate a bit stalled.

22 months agoremove Clean trait implementation for ty::Predicate
Guillaume Gomez [Sat, 6 Aug 2022 22:36:23 +0000 (00:36 +0200)]
remove Clean trait implementation for ty::Predicate

22 months agoremove Clean trait implementation for hir::WherePredicate
Guillaume Gomez [Sat, 6 Aug 2022 22:30:18 +0000 (00:30 +0200)]
remove Clean trait implementation for hir::WherePredicate

22 months agoAuto merge of #100117 - nicholasbishop:bishop-update-cc, r=Mark-Simulacrum
bors [Sat, 6 Aug 2022 21:10:52 +0000 (21:10 +0000)]
Auto merge of #100117 - nicholasbishop:bishop-update-cc, r=Mark-Simulacrum

Bump cc version in bootstrap

Among other changes, the newer cc release pulls in this fix:
https://github.com/rust-lang/cc-rs/commit/b2792e33ff91b92e2e920e54d582b0c334670c37

This fixes errors when building compiler_builtins for UEFI targets.

22 months agoReturns the old value for la_arena::ArenaMap::insert
oxalica [Sat, 6 Aug 2022 20:48:52 +0000 (04:48 +0800)]
Returns the old value for la_arena::ArenaMap::insert

22 months agoImpl more methods and traits for la_arena::ArenaMap
oxalica [Sat, 6 Aug 2022 20:17:04 +0000 (04:17 +0800)]
Impl more methods and traits for la_arena::ArenaMap

22 months agoDocument the `no-std` target option in config.toml.example
Nicholas Bishop [Mon, 1 Aug 2022 22:12:07 +0000 (18:12 -0400)]
Document the `no-std` target option in config.toml.example

22 months agorustdoc: do not mark the contents of a skipped module as inlined
Michael Howell [Sat, 6 Aug 2022 20:17:40 +0000 (13:17 -0700)]
rustdoc: do not mark the contents of a skipped module as inlined

22 months agoAuto merge of #99524 - cuviper:relnotes-1.63.0, r=Mark-Simulacrum
bors [Sat, 6 Aug 2022 17:50:41 +0000 (17:50 +0000)]
Auto merge of #99524 - cuviper:relnotes-1.63.0, r=Mark-Simulacrum

Add release notes for Rust 1.63.0

22 months agoAvoid ICE in rustdoc.
Camille GILLOT [Sat, 6 Aug 2022 17:42:52 +0000 (19:42 +0200)]
Avoid ICE in rustdoc.