| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2025-07-13 | compute all rpitit of a trait | bohan | -1/+35 | |
| 2025-07-10 | Make `Diag::multipart_suggestions` always verbose | Esteban Küber | -3/+6 | |
| 2025-07-07 | consider nested cases for duplicate RPITIT | bohan | -1/+138 | |
| 2025-07-06 | distinguish the duplicate item of rpitit | bohan | -0/+83 | |
| 2025-06-30 | Unconditionally run `check_item_type` on all items | Oli Scherer | -47/+92 | |
| 2025-06-27 | Report infer ty errors during hir ty lowering | Oli Scherer | -1/+1 | |
| This centralizes the placeholder type error reporting in one location, but it also exposes the granularity at which we convert things from hir to ty more. E.g. previously infer types in where bounds were errored together with the function signature, but now they are independent. | ||||
| 2025-06-22 | Implement DesugaringKind::FormatLiteral | mejrs | -5/+2 | |
| 2025-05-27 | Use more detailed spans in dyn compat errors within bodies | Oli Scherer | -4/+4 | |
| 2025-05-26 | Deduplicate dyn compatibility violations due to coercion | Michael Goulet | -20/+1 | |
| 2025-05-23 | Do not try to confirm non-dyn compatible method | Michael Goulet | -37/+1 | |
| 2025-05-20 | Do not call name() on rpitit assoc_item | Santiago Pastorino | -0/+34 | |
| 2025-05-05 | Auto merge of #140453 - Zoxc:next-disambiguator, r=oli-obk | bors | -12/+12 | |
| Remove global `next_disambiguator` state and handle it with a `DisambiguatorState` type This removes `Definitions.next_disambiguator` as it doesn't guarantee deterministic def paths when `create_def` is called in parallel. Instead a new `DisambiguatorState` type is passed as a mutable reference to `create_def` to help create unique def paths. `create_def` calls with distinct `DisambiguatorState` instances must ensure that that the def paths are unique without its help. Anon associated types did rely on this global state for uniqueness and are changed to use (method they're defined in + their position in the method return type) as the `DefPathData` to ensure uniqueness. This also means that the method they're defined in appears in error messages, which is nicer. `DefPathData::NestedStatic` is added to use for nested data inside statics instead of reusing `DefPathData::AnonConst` to avoid conflicts with those. cc `@oli-obk` | ||||
| 2025-04-29 | Remove global `next_disambiguator` state and handle it with a ↵ | John Kåre Alsaker | -12/+12 | |
| `DisambiguatorState` type | ||||
| 2025-04-28 | Do not compute type_of for impl item if impl where clauses are unsatisfied | Michael Goulet | -0/+32 | |
| 2025-04-25 | Don't use item name to look up associated item from trait item | Michael Goulet | -0/+49 | |
| 2025-04-20 | Don't compute name of associated item if it's an RPITIT | Michael Goulet | -0/+62 | |
| 2025-04-15 | Don't compute name of associated item if it's an RPITIT | Michael Goulet | -0/+21 | |
| 2025-04-14 | add RPITIT tests: method compat auto trait leakage | lcnr | -0/+224 | |
| 2025-04-14 | do not leak auto traits in item bounds | lcnr | -0/+3 | |
| 2025-04-11 | Rollup merge of #139662 - nnethercote:tweak-DefPathData, r=compiler-errors | Jacob Pratt | -6/+6 | |
| Tweak `DefPathData` Some improvements in and around `DefPathData`, following on from #137977. r? `@spastorino` | ||||
| 2025-04-11 | Change how anonymous associated types are printed. | Nicholas Nethercote | -6/+6 | |
| Give them their own symbol `anon_assoc`, as is done for all the other anonymous `DefPathData` variants. | ||||
| 2025-04-11 | Improve `AssocItem::descr`. | Nicholas Nethercote | -4/+4 | |
| The commit adds "associated" to the description of associated types and associated consts, to match the description of associated functions. This increases error message precision and consistency with `AssocKind::fmt`. The commit also notes an imperfection in `AssocKind::fmt`; fixing this imperfection is possible but beyond the scope of this PR. | ||||
| 2025-04-08 | UI tests: add missing diagnostic kinds where possible | Vadim Petrochenkov | -8/+8 | |
| 2025-03-23 | Stabilize precise_capturing_in_traits | Michael Goulet | -8/+6 | |
| 2025-03-03 | Do not recover missing lifetime with random in-scope lifetime | Michael Goulet | -37/+7 | |
| 2025-02-21 | More sophisticated span trimming | Michael Goulet | -12/+8 | |
| 2025-02-17 | Deeply normalize associated type bounds before proving them | Michael Goulet | -0/+6 | |
| 2025-02-10 | Show diff suggestion format on verbose replacement | Esteban Küber | -37/+58 | |
| ``` error[E0610]: `{integer}` is a primitive type and therefore doesn't have fields --> $DIR/attempted-access-non-fatal.rs:7:15 | LL | let _ = 2.l; | ^ | help: if intended to be a floating point literal, consider adding a `0` after the period and a `f64` suffix | LL - let _ = 2.l; LL + let _ = 2.0f64; | ``` | ||||
| 2025-02-04 | Fix rustc_hidden_type_of_opaques for RPITITs with no default body | Michael Goulet | -0/+23 | |
| 2025-02-01 | Rollup merge of #135900 - compiler-errors:derive-wf, r=lcnr | Matthias Krüger | -0/+5 | |
| Manually walk into WF obligations in `BestObligation` proof tree visitor When we encounter a `WellFormed` obligation in the `BestObligation` proof tree visitor, ignore the proof tree and call `wf::unnormalized_obligations` to derive well-formed obligations with the correct cause codes. This is to avoid having to replicate the somewhat delicate logic that `wf.rs` does to set up its obligation causes... Don't see a better way to do this. vibes?? r? lcnr | ||||
| 2025-01-31 | Auto merge of #136350 - matthiaskrgr:rollup-6eqfyvh, r=matthiaskrgr | bors | -8/+8 | |
| Rollup of 9 pull requests Successful merges: - #134531 ([rustdoc] Add `--extract-doctests` command-line flag) - #135860 (Compiler: Finalize dyn compatibility renaming) - #135992 (Improve documentation when adding a new target) - #136194 (Support clobber_abi in BPF inline assembly) - #136325 (Delay a bug when indexing unsized slices) - #136326 (Replace our `LLVMRustDIBuilderRef` with LLVM-C's `LLVMDIBuilderRef`) - #136330 (Remove unnecessary hooks) - #136336 (Overhaul `rustc_middle::util`) - #136341 (Remove myself from vacation) r? `@ghost` `@rustbot` modify labels: rollup | ||||
| 2025-01-31 | Manually walk into WF obligations in BestObligation proof tree visitor | Michael Goulet | -0/+5 | |
| 2025-01-30 | Filter out RPITITs when suggesting unconstrained assoc type on too many generics | Michael Goulet | -0/+31 | |
| 2025-01-26 | Compiler: Finalize dyn compatibility renaming | León Orell Valerian Liehr | -8/+8 | |
| 2025-01-22 | Refactor dyn-compatibility error and suggestions | Taylor Cramer | -48/+56 | |
| This CL makes a number of small changes to dyn compatibility errors: - "object safety" has been renamed to "dyn-compatibility" throughout - "Convert to enum" suggestions are no longer generated when there exists a type-generic impl of the trait or an impl for `dyn OtherTrait` - Several error messages are reorganized for user readability Additionally, the dyn compatibility error creation code has been split out into functions. cc #132713 cc #133267 | ||||
| 2025-01-04 | Rollup merge of #135055 - compiler-errors:rpitit-infer-in-stricter-impl, ↵ | Matthias Krüger | -38/+61 | |
| r=estebank Report impl method has stricter requirements even when RPITIT inference gets in the way See the comment I added in the code. Fixes #122506. | ||||
| 2025-01-03 | Do not project when there are unconstrained impl params | Michael Goulet | -10/+2 | |
| 2025-01-03 | Report impl has stricter requirements even when RPITIT inference gets in the way | Michael Goulet | -38/+61 | |
| 2024-12-14 | Rollup merge of #134181 - estebank:trim-render, r=oli-obk | Matthias Krüger | -9/+0 | |
| Tweak multispan rendering to reduce output length Consider comments and bare delimiters the same as an "empty line" for purposes of hiding rendered code output of long multispans. This results in more aggressive shortening of rendered output without losing too much context, specially in `*.stderr` tests that have "hidden" comments. We do that check not only on the first 4 lines of the multispan, but now also on the previous to last line as well. | ||||
| 2024-12-12 | Tweak multispan rendering | Esteban Küber | -9/+0 | |
| Consider comments and bare delimiters the same as an "empty line" for purposes of hiding rendered code output of long multispans. This results in more aggressive shortening of rendered output without losing too much context, specially in `*.stderr` tests that have "hidden" comments. | ||||
| 2024-12-10 | Don't check RPITITs that are Self:Sized for PointerLike | Michael Goulet | -0/+13 | |
| 2024-12-07 | Mention type parameter in more cases and don't suggest ~const bound already ↵ | Esteban Küber | -5/+5 | |
| there | ||||
| 2024-12-07 | Use trait name instead of full constraint in suggestion message | Esteban Küber | -5/+5 | |
| ``` help: consider restricting type parameter `T` with traits `Copy` and `Trait` | LL | fn duplicate_custom<T: Copy + Trait>(t: S<T>) -> (S<T>, S<T>) { | ++++++++++++++ ``` ``` help: consider restricting type parameter `V` with trait `Copy` | LL | fn index<'a, K, V: std::marker::Copy>(map: &'a HashMap<K, V>, k: K) -> &'a V { | +++++++++++++++++++ ``` | ||||
| 2024-12-07 | reword trait bound suggestion message to include the bounds | Esteban Küber | -5/+5 | |
| 2024-12-02 | Assert that obligations are empty before deeply normalizing | Michael Goulet | -2/+2 | |
| 2024-11-30 | Move refinement check out of compare_impl_item | Michael Goulet | -0/+26 | |
| 2024-11-24 | Actually use placeholder regions for trait method late bound regions in ↵ | Michael Goulet | -14/+67 | |
| collect_return_position_impl_trait_in_trait_tys | ||||
| 2024-11-22 | Stabilize the 2024 edition | Eric Huss | -1/+1 | |
| 2024-11-18 | Check use<..> in RPITIT for refinement | Michael Goulet | -0/+88 | |
| 2024-11-02 | Auto merge of #132147 - estebank:long-types-2, r=davidtwco | bors | -1/+2 | |
| Tweak E0277 output when a candidate is available *Follow up to #132086.* Go from ``` error[E0277]: the trait bound `Then<Ignored<chumsky::combinator::Filter<chumsky::primitive::Any<&str, chumsky::extra::Full<EmptyErr, (), ()>>, {closure@src/main.rs:9:17: 9:27}>, char>, chumsky::combinator::Map<impl CSTParser<'a, O>, O, {closure@src/main.rs:11:24: 11:27}>, (), (), chumsky::extra::Full<EmptyErr, (), ()>>: CSTParser<'a>` is not satisfied --> src/main.rs:7:50 | 7 | fn leaf<'a, O>(parser: impl CSTParser<'a, O>) -> impl CSTParser<'a, ()> { | ^^^^^^^^^^^^^^^^^^^^^^ the trait `chumsky::private::ParserSealed<'_, &str, (), chumsky::extra::Full<EmptyErr, (), ()>>` is not implemented for `Then<Ignored<Filter<Any<&str, ...>, ...>, ...>, ..., ..., ..., ...>`, which is required by `Then<Ignored<chumsky::combinator::Filter<chumsky::primitive::Any<&str, chumsky::extra::Full<EmptyErr, (), ()>>, {closure@src/main.rs:9:17: 9:27}>, char>, chumsky::combinator::Map<impl CSTParser<'a, O>, O, {closure@src/main.rs:11:24: 11:27}>, (), (), chumsky::extra::Full<EmptyErr, (), ()>>: CSTParser<'a>` | = help: the trait `chumsky::private::ParserSealed<'_, &'a str, ((), ()), chumsky::extra::Full<EmptyErr, (), ()>>` is implemented for `Then<Ignored<chumsky::combinator::Filter<chumsky::primitive::Any<&str, chumsky::extra::Full<EmptyErr, (), ()>>, {closure@src/main.rs:9:17: 9:27}>, char>, chumsky::combinator::Map<impl CSTParser<'a, O>, O, {closure@src/main.rs:11:24: 11:27}>, (), (), chumsky::extra::Full<EmptyErr, (), ()>>` = help: for that trait implementation, expected `((), ())`, found `()` = note: required for `Then<Ignored<Filter<Any<&str, ...>, ...>, ...>, ..., ..., ..., ...>` to implement `Parser<'_, &str, ()>` note: required for `Then<Ignored<Filter<Any<&str, ...>, ...>, ...>, ..., ..., ..., ...>` to implement `CSTParser<'a>` --> src/main.rs:5:16 | 5 | impl<'a, O, T> CSTParser<'a, O> for T where T: Parser<'a, &'a str, O> {} | ^^^^^^^^^^^^^^^^ ^ ---------------------- unsatisfied trait bound introduced here = note: the full name for the type has been written to '/home/gh-estebank/longlong/target/debug/deps/longlong-0008f9a4f2023b08.long-type-13239977239800463552.txt' = note: consider using `--verbose` to print the full type name to the console = note: the full name for the type has been written to '/home/gh-estebank/longlong/target/debug/deps/longlong-0008f9a4f2023b08.long-type-13239977239800463552.txt' = note: consider using `--verbose` to print the full type name to the console ``` to ``` error[E0277]: the trait bound `Then<Ignored<chumsky::combinator::Filter<chumsky::primitive::Any<&str, chumsky::extra::Full<EmptyErr, (), ()>>, {closure@src/main.rs:9:17: 9:27}>, char>, chumsky::combinator::Map<impl CSTParser<'a, O>, O, {closure@src/main.rs:11:24: 11:27}>, (), (), chumsky::extra::Full<EmptyErr, (), ()>>: CSTParser<'a>` is not satisfied --> src/main.rs:7:50 | 7 | fn leaf<'a, O>(parser: impl CSTParser<'a, O>) -> impl CSTParser<'a, ()> { | ^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound ... 11 | ws.then(parser.map(|_| ())) | --------------------------- return type was inferred to be `Then<Ignored<..., ...>, ..., ..., ..., ...>` here | = help: the trait `ParserSealed<'_, &_, (), Full<_, _, _>>` is not implemented for `Then<Ignored<..., ...>, ..., ..., ..., ...>` but trait `ParserSealed<'_, &'a _, ((), ()), Full<_, _, _>>` is implemented for it = help: for that trait implementation, expected `((), ())`, found `()` = note: required for `Then<Ignored<..., ...>, ..., ..., ..., ...>` to implement `Parser<'_, &str, ()>` note: required for `Then<Ignored<..., ...>, ..., ..., ..., ...>` to implement `CSTParser<'a>` --> src/main.rs:5:16 | 5 | impl<'a, O, T> CSTParser<'a, O> for T where T: Parser<'a, &'a str, O> {} | ^^^^^^^^^^^^^^^^ ^ ---------------------- unsatisfied trait bound introduced here = note: the full name for the type has been written to '/home/gh-estebank/longlong/target/debug/deps/longlong-df9d52be87eada65.long-type-1337037744507305372.txt' = note: consider using `--verbose` to print the full type name to the console ``` * Remove redundant wording * Introduce trait diff highlighting logic and use it * Fix incorrect "long type written to path" logic (can be split off) * Point at tail expression in more cases in E0277 * Avoid long primary span labels in E0277 by moving them to a `help` Fix #132013. There are individual commits that can be their own PR. If the review load is too big, happy to split them off. | ||||
