| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
Rollup of 8 pull requests
Successful merges:
- #102977 (remove HRTB from `[T]::is_sorted_by{,_key}`)
- #103378 (Fix mod_inv termination for the last iteration)
- #103456 (`unchecked_{shl|shr}` should use `u32` as the RHS)
- #103701 (Simplify some pointer method implementations)
- #104047 (Diagnostics `icu4x` based list formatting.)
- #104338 (Enforce that `dyn*` coercions are actually pointer-sized)
- #104498 (Edit docs for `rustc_errors::Handler::stash_diagnostic`)
- #104556 (rustdoc: use `code-header` class to format enum variants)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
|
|
This reverts commit 43119d643857efc366bfca527ac2dadfc3f2e906.
|
|
|
|
When printing requirement overflow errors, do not print out the full
type name when it is longer than 50 characters long.
|
|
|
|
|
|
|
|
|
|
Don't allow `CoerceUnsized` into `dyn*` (except for trait upcasting)
This makes sure we don't accidentally allow coercions like `Box<T>` -> `Box<dyn* Trait>`, or in the case of this ICE, `&T` to `&dyn* Trait`. These coercions don't make sense, at least not via the `CoerceUnsized` trait.
Fixes #102172
Fixes #102429
|
|
|
|
Convert predicates into Predicate in the Obligation constructor
instead of having almost all callers do that.
This reduces a bit of boilerplate, and also paves the way for my work towards https://github.com/rust-lang/compiler-team/issues/531 (as it makes it easier to accept both goals and clauses where right now it only accepts predicates).
|
|
Record `LocalDefId` in HIR nodes instead of a side table
This is part of an attempt to remove the `HirId -> LocalDefId` table from HIR.
This attempt is a prerequisite to creation of `LocalDefId` after HIR lowering (https://github.com/rust-lang/rust/pull/96840), by controlling how `def_id` information is accessed.
This first part adds the information to HIR nodes themselves instead of a table.
The second part is https://github.com/rust-lang/rust/pull/103902
The third part will be to make `hir::Visitor::visit_fn` take a `LocalDefId` as last parameter.
The fourth part will be to completely remove the side table.
|
|
|
|
|
|
|
|
|
|
Simplify suggestions for errors in generators.
Split from https://github.com/rust-lang/rust/pull/101692/
|
|
Rollup of 13 pull requests
Successful merges:
- #103842 (Adding Fuchsia compiler testing script, docs)
- #104354 (Remove leading newlines from `NonZero*` doc examples)
- #104372 (Update compiler-builtins)
- #104380 (rustdoc: remove unused CSS `code { opacity: 1 }`)
- #104381 (Remove dead NoneError diagnostic handling)
- #104383 (Remove unused symbols and diagnostic items)
- #104391 (Deriving cleanups)
- #104403 (Specify language of code comment to generate document)
- #104404 (Fix missing minification for static files)
- #104413 ([llvm-wrapper] adapt for LLVM API change)
- #104415 (rustdoc: fix corner case in search keyboard commands)
- #104422 (Fix suggest associated call syntax)
- #104426 (Add test for #102154)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Don't print full paths in overlap errors
We don't print the full path in other diagnostics -- I don't think it particularly helps with the error message. I also delayed the printing until actually needing to render the error message.
r? diagnostics
|
|
|
|
|
|
|
|
Remove `save_and_restore_in_snapshot_flag`, use `ObligationCtxt` more
r? ```@lcnr```
|
|
Unhide unknown spans
r? ```@estebank```
|
|
It will still be used in json, as seen by the ui test changes
|
|
|
|
|
|
|
|
|
|
|
|
Use `TraitEngine` in more places, restrict visibility of `FulfillmentCtxt` constructor
Most places that are constructing a `FulfillmentContext` should be constructing a `TraitEngine` generically, so later on if/when we're transitioning it'll be easier.
Logical extension of #99746
|
|
Some diagnostic-related nits
1. Use `&mut Diagnostic` instead of `&mut DiagnosticBuilder<'_, T>`
2. Make `diag.span_suggestions` take an `IntoIterator` instead of `Iterator`, just to remove some `.into_iter` calls on the caller.
idk if I should add a lint to make sure people use `&mut Diagnostic` instead of `&mut DiagnosticBuilder<'_, T>` in cases where we're just, e.g., adding subdiagnostics to the diagnostic... maybe a followup.
|
|
|
|
|
|
|
|
Cleanups in autoderef impl
Just something I noticed. Turns out the `overloaded_span` is not actually used separately from the main span, so I merged them.
|
|
|
|
Remove allow(rustc::potential_query_instability) in rustc_trait_selection
Related to https://github.com/rust-lang/rust/issues/84447
This PR needs to be benchmarked to check for regressions.
|
|
Use `nominal_obligations_without_const` in wf for FnDef
Fixes #104155.
|
|
Rollup of 7 pull requests
Successful merges:
- #100508 (avoid making substs of type aliases late bound when used as fn args)
- #101381 (Test that target feature mix up with homogeneous floats is sound)
- #103353 (Fix Access Violation when using lld & ThinLTO on windows-msvc)
- #103521 (Avoid possible infinite loop when next_point reaching the end of file)
- #103559 (first move on a nested span_label)
- #103778 (Update several crates for improved support of the new targets)
- #103827 (Properly remap and check for substs compatibility in `confirm_impl_trait_in_trait_candidate`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
Properly remap and check for substs compatibility in `confirm_impl_trait_in_trait_candidate`
Fixes #103824
|
|
Better error for HRTB error from generator interior
cc #100013
This is just a first pass at an error. It could be better, and shouldn't really be emitted in the first place. But this is better than what was being emitted before.
|
|
rustc_trait_selection
Make InferCtxtExt use a FxIndexMap
This should be faster, because the map is only being used to iterate,
which is supposed to be faster with the IndexMap
Make the user_computed_preds use an IndexMap
It is being used mostly for iteration, so the change shouldn't result in
a perf hit
Make the RegionDeps fields use an IndexMap
This change could be a perf hit. Both `larger` and `smaller` are used
for iteration, but they are also used for insertions.
Make types_without_default_bounds use an IndexMap
It uses extend, but it also iterates and removes items. Not sure if
this will be a perf hit.
Make InferTtxt.reported_trait_errors use an IndexMap
This change brought a lot of other changes. The map seems to have been
mostly used for iteration, so the performance shouldn't suffer.
Add FIXME to change ProvisionalEvaluationCache.map to use an IndexMap
Right now this results in a perf hit. IndexMap doesn't have
the `drain_filter` API, so in `on_completion` we now need to iterate two
times over the map.
|