Commit Graph

57 Commits

Author SHA1 Message Date
Esteban Küber b8a8ba9c91 Sort errors 2023-10-30 22:19:17 +00:00
Esteban Küber 17a6ae2df3 Detect object safety errors when assoc type is missing
When an associated type with GATs isn't specified in a `dyn Trait`, emit
an object safety error instead of only complaining about the missing
associated type, as it will lead the user down a path of three different
errors before letting them know that what they were trying to do is
impossible to begin with.

Fix #103155.
2023-10-30 22:12:07 +00:00
Oli Scherer beaf46f7e5 Work around the fact that `check_mod_type_wf` may spuriously return `ErrorGuaranteed`, even if that error is only emitted by `check_modwitem_types` 2023-10-25 12:04:54 +00:00
Esteban Küber bd8b46800d Tweak wording of type errors involving type params
Fix #78206.
2023-10-18 23:53:18 +00:00
Esteban Küber 890e92feed Unify suggestion wording 2023-10-17 17:33:55 +00:00
Michael Goulet 592163fb71 Extend impl's def_span to include where clauses 2023-10-09 11:47:02 +00:00
Alex Macleod 5453a9f34d Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
Michael Goulet 82e7cec16d Tweak expected message to explain what it's actually signifying 2023-09-23 00:57:17 +00:00
Matthias Krüger f279afb455
Rollup merge of #115743 - compiler-errors:no-impls, r=davidtwco
Point out if a local trait has no implementations

Slightly helps with #115741
2023-09-11 17:03:32 +02:00
Michael Goulet 30e6cea0ae Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
Ralf Jung 3bd8bcb8bb better spans for WF errors 2023-09-09 18:00:13 +02:00
Ralf Jung a5b0311367 rustc_layout, rustc_abi: make sure the types are well-formed 2023-09-09 17:32:12 +02:00
Lieselotte a0e0a3261e
E0220: only suggests associated types if there's only one candidate 2023-09-08 08:44:23 +02:00
Lieselotte 96c96645c7
Improve "associated type not found" diagnostics 2023-09-08 06:52:17 +02:00
Caio 5a69151d7d Move tests 2023-08-28 17:47:37 -03:00
Esteban Küber ef11db803c Remove unnecessary `select_obligations_where_possible` and redundant errors 2023-08-26 19:35:54 +00:00
Esteban Küber b6494a7bb4 More accurately point at arguments 2023-08-26 19:25:46 +00:00
Esteban Küber bac0e556f0 On let binding type point to type parameter that introduced unmet bound
On the following example, point at `String` instead of the whole type:

```
error[E0277]: the trait bound `String: Copy` is not satisfied
  --> $DIR/own-bound-span.rs:14:24
   |
LL |     let _: <S as D>::P<String>;
   |                        ^^^^^^ the trait `Copy` is not implemented for `String`
   |
note: required by a bound in `D::P`
  --> $DIR/own-bound-span.rs:4:15
   |
LL |     type P<T: Copy>;
   |               ^^^^ required by this bound in `D::P`
```
2023-08-26 02:23:25 +00:00
Esteban Küber 120c24dab5 Point at appropriate type parameter in more trait bound errors 2023-08-26 01:07:05 +00:00
Michael Goulet 13e8b13e15 Handle Self in paths too 2023-08-25 19:05:38 +00:00
Urgau 1c73248b67 Revert PR #114052 to fix invalid suggestion 2023-08-17 14:33:33 +02:00
clubby789 683b2656bf Refactor `suggest_copied_cloned_or_as_ref` 2023-07-27 23:13:25 +00:00
clubby789 c83dfe9aed Suggest `{Option,Result}::as_ref()` instead of `cloned()` in some cases 2023-07-25 13:19:27 +00:00
nxya a54a66830d moved note as unspanned note, moved note to the bottom of the msg 2023-07-18 21:53:34 -04:00
nxya e6e8892051 added links as a note 2023-07-18 09:27:35 -04:00
nxya f92a9f6808 add links to query documentation for E0391 2023-07-18 09:27:26 -04:00
nxya bef91ee687 added links as a note 2023-07-18 09:20:25 -04:00
nxya c429a72db9 add links to query documentation for E0391 2023-07-18 09:20:25 -04:00
许杰友 Jieyou Xu (Joe) edafbaffb2
Adjust UI tests for `unit_bindings`
- Either explicitly annotate `let x: () = expr;` where `x` has unit
  type, or remove the unit binding to leave only `expr;` instead.
- Fix disjoint-capture-in-same-closure test
2023-06-12 20:24:48 +08:00
Michael Goulet c92140e838 Don't suggest cyclic associated type constraint 2023-06-08 16:30:05 +00:00
Michael Goulet 14bf909e71 Note base types of coercion 2023-05-12 00:10:52 +00:00
Michael Goulet bb99cdc7cd vars are ? 2023-04-25 19:53:09 +00:00
Caio 4adc5f9281 Move test files 2023-04-20 15:06:17 -03:00
Esteban Küber 5b40aa5eb4 Tweak output for 'add line' suggestion 2023-04-12 22:50:10 +00:00
Oli Scherer f263f88bea Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
Michael Goulet 25c342f30a Split implied and super predicate queries 2023-04-11 17:45:42 +00:00
Vadim Petrochenkov f5a9f6fb7e rustc_metadata: Filter encoded data more aggressively using `DefKind` 2023-04-10 16:24:36 +03:00
Camille GILLOT 8c0cbd8767 Do not ICE when failing to normalize in ConstProp. 2023-03-06 09:28:49 +00:00
Michael Howell 3f374128ee diagnostics: update test cases to refer to assoc fn with `self` as method 2023-02-22 08:40:47 -07:00
Michael Goulet a58682d7cc Specify what 'this' actually is 2023-02-21 05:21:07 +00:00
Caio d75e43c371 Move tests 2023-02-16 11:42:35 -03:00
Edward Shen af5a37e844
Modify existing bounds if they exist 2023-02-06 11:26:36 -08:00
Esteban Küber 5ae8e23816 Mention fn coercion rules (needs to be expanded) 2023-01-30 21:51:33 +00:00
Esteban Küber 153ed09fb3 Tweak use of trimmed paths 2023-01-30 20:12:21 +00:00
Esteban Küber 252c43b42b Do not mention lifetime names in force trimmed paths 2023-01-30 20:12:21 +00:00
Esteban Küber 62ba3e70a1 Modify primary span label for E0308
The previous output was unintuitive to users.
2023-01-30 20:12:19 +00:00
Matthias Krüger 3aeafca070
Rollup merge of #107304 - Nilstrieb:ᐸTy as PartialEqᐳ::eq because what else are we gonna use in rustc_middle, r=compiler-errors
Use `can_eq` to compare types for default assoc type error

This correctly handles inference variables like `{integer}`. I had to move all of this `note_and_explain` code to `rustc_infer`, it made no sense for it to be in `rustc_middle` anyways.

The commits are reviewed separately.

Fixes #106968
2023-01-26 07:53:26 +01:00
Nilstrieb 943000fdcf Use `can_eq` to compare types for default assoc type error
This works correctly with inference variables.
2023-01-25 21:25:42 +01:00
Esteban Küber 656db98bd9 Tweak E0597
CC #99430
2023-01-15 19:46:20 +00:00
Matthias Krüger 8c538f7d83
Rollup merge of #106788 - estebank:elaborate_pred_E0599, r=compiler-errors
Tweak E0599 and elaborate_predicates

CC https://github.com/rust-lang/rust/issues/86377.
2023-01-14 13:04:26 +01:00