Commit Graph

315 Commits

Author SHA1 Message Date
Ezra Shaw 90677edcba refactor: statically guarantee that current error codes are documented 2023-02-26 20:12:36 +13:00
Ezra Shaw 9f876cc900 docs/test: add UI test and docs for E0476 2023-02-25 19:31:02 +13:00
Matthew Kelly 2bcd4e256a Add extended error message for E0523
Adds the extended error documentation for E0523 to indicate that the
error is no longer produced by the compiler.

Update the E0464 documentation to include example code that produces the
error.

Remove the error message E0523 from the compiler and replace it with an
internal compiler error.
2023-02-06 06:58:30 -05:00
Ralf Jung dfc4a7b2d0 make unaligned_reference a hard error 2023-01-31 20:28:11 +01:00
Samuel Ortiz 706132d409 compiler: Fix E0587 explanation
We meant to use 8 as the packed argument.

Signed-off-by: Samuel Ortiz <sameo@rivosinc.com>
2023-01-27 10:59:51 +01:00
Ezra Shaw 00ff718da8 add UI test + docs for E0789 2023-01-23 20:38:14 +13:00
Guillaume Gomez 246daa49ee Rollup merge of #106931 - Ezrashaw:docs-e0208, r=compiler-errors
document + UI test `E0208` and make its output more user-friendly

Cleans up `E0208`'s output a lot. It could actually be useful for someone learning about variance now. I also added a UI test for it in `tests/ui/error-codes/` and wrote some docs for it.

r? `@GuillaumeGomez` another error code, can't be bothered to find the issue :P. Obviously there's some compiler stuff, so you'll have to hand it off.

Part of https://github.com/rust-lang/rust/issues/61137.
2023-01-19 11:19:35 +01:00
Ezra Shaw 708861e5b7 remove error code from #[rustc_variance] and document its remains 2023-01-18 21:10:27 +13:00
Matthias Krüger 68f12338af Rollup merge of #104505 - WaffleLapkin:no-double-spaces-in-comments, r=jackh726
Remove double spaces after dots in comments

Most of the comments do not have double spaces, so I assume these are typos.
2023-01-17 20:21:25 +01:00
Maybe Waffle 6a28fb42a8 Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
Oli Scherer 6b69b5e460 Improve a TAIT error and add an error code plus documentation 2023-01-16 16:54:14 +00:00
nils c61f29ca52 Rollup merge of #106714 - Ezrashaw:remove-e0490, r=davidtwco
remove unreachable error code `E0490`

AFAIK, the untested and undocumented error code `E0490` is now unreachable, it was from the days of the original borrow checker.

cc ``@GuillaumeGomez`` #61137
2023-01-12 15:44:52 +01:00
Ezra Shaw 02005e9f22 remove unreachable error code E0490 2023-01-12 14:15:21 +13:00
bowlerman f75eb24f4f remove E0280 and ICE instead 2023-01-10 03:04:28 +01:00
Ezra Shaw 24ce65c8d6 docs/test: add error-docs and UI test for E0711 2023-01-09 15:48:53 +13:00
Ezra Shaw ecc0507fdd docs/test: add empty error-docs for E0208, E0640 and E0717 2023-01-09 15:48:52 +13:00
Yuki Okushi 6459a51c3f Rollup merge of #106580 - Ezrashaw:remove-e0313, r=compiler-errors
remove unreachable error code `E0313`

Fixes #103742
Makes #103433 redundant

Implements removal of `E0313`. I agree with the linked issue that this error code is unreachable but if someone could confirm that would be great, are crater runs done for this sort of thing?

Also removed a redundant `// ignore-tidy-filelength` that I found while reading code.

cc ``@GuillaumeGomez`` #61137
2023-01-08 17:01:49 +09:00
Yuki Okushi 3b5afa590b Rollup merge of #106557 - Ezrashaw:ui-test-fixups-1, r=GuillaumeGomez
Add some UI tests and reword error-code docs

Added UI tests for `E0013` and `E0015`. Error code docs for `E0015` were a bit unclear (they referred to all non-const errors in const context, when only non-const functions applied), so I touched them up a bit.

I also fixed up some issues in the new `error_codes.rs` tidy check (linked #106341), that I overlooked previously.

r? ``@GuillaumeGomez``
2023-01-08 17:01:48 +09:00
Ezra Shaw 93c0d8d5d5 remove unreachable error code E0313 2023-01-08 14:47:12 +13:00
Ezra Shaw ae61c250cd doc/test: add UI test and reword docs for E0013 and E0015 2023-01-08 13:33:09 +13:00
Michael Goulet 01cb9dcd5b Rollup merge of #106554 - LingMan:explanation_typo, r=compiler-errors
Fix a typo in the explanation of E0588
2023-01-06 21:54:01 -08:00
LingMan dc0e4207d4 Fix a typo in the explanation of E0588 2023-01-07 05:10:53 +01:00
Ezra Shaw 9618f646b3 docs: revert removal of E0729 2023-01-02 09:11:36 +13:00
Ezra Shaw 04b9038610 refactor: clean up errors.rs and error_codes_check.rs
Move them into new `error_codes.rs` tidy check.
2023-01-01 15:22:01 +13:00
Ezra Shaw 24b39ece2f refactor: merge E0465 into E0464 2022-12-31 20:44:54 +13:00
Ezra Shaw 726519d4f5 docs: add long-form error docs for E0514 2022-12-29 14:32:39 +13:00
Ezra Shaw da7fcc7a09 docs/test: add UI test and long-form error docs for E0519 2022-12-29 13:16:10 +13:00
Ezra Shaw f66e7529b5 docs: add long-form error docs for E0461 2022-12-27 17:03:39 +13:00
Matthias Krüger e08dd9d998 Rollup merge of #105970 - Ezrashaw:add-docs+test-e0462, r=GuillaumeGomez
docs/test: add UI test and long-form error docs for E0462

Another UI test/ docs combo.

r? ``@GuillaumeGomez``
2022-12-24 00:31:40 +01:00
Ezra Shaw 66ed1812cf docs/test: add UI test and long-form error docs for E0462 2022-12-23 10:56:16 +13:00
Matthias Krüger 4726e514d7 Rollup merge of #105791 - Ezrashaw:add-e0472-long-docs, r=GuillaumeGomez
docs: add long error explanation for error E0472

Add long-form error docs for E0472: "inline assembly not supported on this target" and update UI tests.

R? `@GuillaumeGomez`
2022-12-20 23:35:14 +01:00
Ezra Shaw 082ca1e461 docs: add long error explanation for error E0472 2022-12-20 21:34:30 +13:00
Ezra Shaw e798fdf7be docs/test: add UI test and long-form error docs for E0377 2022-12-20 18:31:15 +13:00
Ezra Shaw 5ecac8ede6 more markdown list formatting
Co-authored-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
2022-12-19 22:50:31 +13:00
Ezra Shaw 540c3f434f docs: add long-form error-code docs for E0457 2022-12-19 08:55:08 +13:00
Ezra Shaw 7e66d451ad docs: add long-form error-code docs for E0460 2022-12-19 08:55:08 +13:00
Ezra Shaw fe52882986 docs: add long error explanation for error E0320 2022-12-17 07:38:23 +13:00
Ezra Shaw fded03ee2d docs: rewrite E0158 error-code docs for clarity 2022-12-16 08:36:40 +13:00
KaDiWa 9bc69925cb compiler: remove unnecessary imports and qualified paths 2022-12-10 18:45:34 +01:00
Peter Collingbourne f44a0153bc Support Option and similar enums as type of static variable with linkage attribute.
Compiler MCP:
https://github.com/rust-lang/compiler-team/issues/565
2022-12-05 15:05:43 -08:00
bors 7fe6f36224 Auto merge of #103491 - cjgillot:self-rpit, r=oli-obk
Support using `Self` or projections inside an RPIT/async fn

I reuse the same idea as https://github.com/rust-lang/rust/pull/103449 to use variances to encode whether a lifetime parameter is captured by impl-trait.

The current implementation of async and RPIT replace all lifetimes from the parent generics by `'static`.  This PR changes the scheme
```rust
impl<'a> Foo<'a> {
    fn foo<'b, T>() -> impl Into<Self> + 'b { ... }
}

opaque Foo::<'_a>::foo::<'_b, T>::opaque<'b>: Into<Foo<'_a>> + 'b;
impl<'a> Foo<'a> {
    // OLD
    fn foo<'b, T>() -> Foo::<'static>::foo::<'static, T>::opaque::<'b> { ... }
                             ^^^^^^^ the `Self` becomes `Foo<'static>`

    // NEW
    fn foo<'b, T>() -> Foo::<'a>::foo::<'b, T>::opaque::<'b> { ... }
                             ^^ the `Self` stays `Foo<'a>`
}
```

There is the same issue with projections. In the example, substitute `Self` by `<T as Trait<'b>>::Assoc` in the sugared version, and `Foo<'_a>` by `<T as Trait<'_b>>::Assoc` in the desugared one.

This allows to support `Self` in impl-trait, since we do not replace lifetimes by `'static` any more.  The same trick allows to use projections like `T::Assoc` where `Self` is allowed.  The feature is gated behind a `impl_trait_projections` feature gate.

The implementation relies on 2 tweaking rules for opaques in 2 places:
- we only relate substs that correspond to captured lifetimes during TypeRelation;
- we only list captured lifetimes in choice region computation.

For simplicity, I encoded the "capturedness" of lifetimes as a variance, `Bivariant` vs `Invariant` for unused vs captured lifetimes. The `variances_of` query used to ICE for opaques.

Impl-trait that do not reference `Self` or projections will have their variances as:
- `o` (invariant) for each parent type or const;
- `*` (bivariant) for each parent lifetime --> will not participate in borrowck;
- `o` (invariant) for each own lifetime.

Impl-trait that does reference `Self` and/or projections will have some parent lifetimes marked as `o` (as the example above), and participate in type relation and borrowck.  In the example above, `variances_of(opaque) = ['_a: o, '_b: *, T: o, 'b: o]`.

r? types
cc `@compiler-errors` , as you asked about the issue with `Self` and projections.
2022-11-21 12:17:03 +00:00
Matthias Krüger 55ff8bf847 Rollup merge of #104339 - compiler-errors:rustc_deny_explicit_impl, r=cjgillot
Add `rustc_deny_explicit_impl`

Also adjust `E0322` error message to be more general, since it's used for `DiscriminantKind` and `Pointee` as well.

Also add `rustc_deny_explicit_impl` on the `Tuple` and `Destruct` marker traits.
2022-11-15 10:44:12 +01:00
Michael Goulet b5b6467810 Add rustc_deny_explicit_impl 2022-11-14 03:23:41 +00:00
Camille GILLOT da9dca7040 Retire error code. 2022-11-12 10:03:13 +00:00
Dylan DPC 6e819af3a7 Rollup merge of #103924 - PeteDevoy:patch-1, r=estebank
Fix broken link in description of error code E0706

Corresponding subsection in async book is `07.05` not `07.06`.

The information on the linked page is the same so it may be reasonable to remove the whole sentence.
2022-11-11 20:51:39 +05:30
Dylan DPC 408b8cf7c4 Rollup merge of #103757 - ffmancera:ff/clarify_E0207, r=jackh726
Mention const and lifetime parameters in error E0207

Error Index for E0207 must mention const and lifetime parameters. In addition, add code examples for these situations.

Fixes #80862
2022-11-07 18:35:23 +05:30
Pete 4b5cff5b55 Fix broken link in error code E0706 docs
Corresponding subsection in async book is not `07.05` not `07.06`.

The information on the linked page is the same so it may be reasonable to remove the whole sentence.
2022-11-03 14:15:32 +01:00
Dominic Farolino b978bba6a9 Update E0382.md 2022-10-31 00:41:12 -04:00
Fernando Fernandez Mancera 2159df22a2 Mention const and lifetime parameters in error E0207
Error Index for E0207 must mention const and lifetime parameters. In
addition, add code examples for these situations.

Fixes #80862
2022-10-30 12:01:39 +01:00
Dylan DPC 5b6455318a Rollup merge of #95710 - fee1-dead-contrib:stabilize_arbitrary_enum_discriminant, r=joshtriplett
Stabilize arbitrary_enum_discriminant, take 2

Documentation has been updated in https://github.com/rust-lang/reference/pull/1055. cc #86860 for previous stabilization report.

Not yet marks https://github.com/rust-lang/rust/issues/60553 as done: need documentation in the rust reference.
2022-10-26 17:32:53 +05:30