| Age | Commit message (Collapse) | Author | Lines |
|
Revert "Normalize opaques with escaping bound vars"
This caused a perf regression in #103423, cc `@skyzh` this should fix #103423.
reverts #100980
r? `@oli-obk`
|
|
r=compiler-errors
diagnostics: only show one suggestion for method -> assoc fn
Fixes #102354
|
|
deduplicate tests
originally added in #100514. Using revisions for this reduces the amount of tests in the repo
|
|
Use `ErrorGuaranteed::unchecked_claim_error_was_emitted` less
there are only like 3 or 4 call sites left after this but it wasnt obvious to me how to remove them
|
|
nll: correctly deal with bivariance
fixes #104409
when in a bivariant context, relating stuff should always trivially succeed. Also changes the mir validator to correctly deal with higher ranked regions.
r? types cc ``@RalfJung``
|
|
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
|
|
rustdoc: use `code-header` class to format enum variants
The font size and weights should be exactly the same after this PR, but the spacing is changed to be the same as methods.
Preview: http://notriddle.com/notriddle-rustdoc-demos/variant/test_dingus_enum/enum.TestEnum.html
|
|
Enforce that `dyn*` coercions are actually pointer-sized
Implement a perma-unstable, rudimentary `PointerSized` trait to enforce `dyn*` casts are `usize`-sized for now, at least to prevent ICEs and weird codegen issues from cropping up after monomorphization since currently we enforce *nothing*.
This probably can/should be removed in favor of a more sophisticated trait for handling `dyn*` conversions when we decide on one, but I just want to get something up for discussion and experimentation for now.
r? ```@eholk``` cc ```@tmandry``` (though feel free to claim/reassign)
Fixes #102141
Fixes #102173
|
|
`unchecked_{shl|shr}` should use `u32` as the RHS
The other shift methods, such as https://doc.rust-lang.org/nightly/std/primitive.u64.html#method.checked_shr and https://doc.rust-lang.org/nightly/std/primitive.i16.html#method.wrapping_shl, use `u32` for the shift amount. That's consistent with other things, like `count_ones`, which also always use `u32` for a bit count, regardless of the size of the type.
This PR changes `unchecked_shl` and `unchecked_shr` to also use `u32` for the shift amount (rather than Self).
cc #85122, the `unchecked_math` tracking issue
|
|
remove HRTB from `[T]::is_sorted_by{,_key}`
Changes the signature of `[T]::is_sorted_by{,_key}` to match `[T]::binary_search_by{,_key}` and make code like https://github.com/rust-lang/rust/issues/53485#issuecomment-885393452 compile.
Tracking issue: https://github.com/rust-lang/rust/issues/53485
~~Do we need an ACP for something like this?~~ Edit: Filed ACP here: https://github.com/rust-lang/libs-team/issues/121
|
|
Rollup of 8 pull requests
Successful merges:
- #101162 (Migrate rustc_resolve to use SessionDiagnostic, part # 1)
- #103386 (Don't allow `CoerceUnsized` into `dyn*` (except for trait upcasting))
- #103405 (Detect incorrect chaining of if and if let conditions and recover)
- #103594 (Fix non-associativity of `Instant` math on `aarch64-apple-darwin` targets)
- #104006 (Add variant_name function to `LangItem`)
- #104494 (Migrate GUI test to use functions)
- #104516 (rustdoc: clean up sidebar width CSS)
- #104550 (fix a typo)
Failed merges:
- #104554 (Use `ErrorGuaranteed::unchecked_claim_error_was_emitted` less)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
|
|
Fixes #102354
|
|
Shrink `ast::Expr` harder
r? `@ghost`
|
|
|
|
|
|
Migrate GUI test to use functions
r? `@notriddle`
|
|
Detect incorrect chaining of if and if let conditions and recover
Fixes #103381
|
|
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
|
|
Rollup of 11 pull requests
Successful merges:
- #103852 (Don't remap early-bound regions for return-position `impl Trait` in trait originating from `impl`)
- #104366 (Simplify settings theme choice)
- #104433 (Fix `emit_unused_delims_expr` ICE)
- #104444 (Fix ICE in in_operand for ty error)
- #104483 (Convert predicates into Predicate in the Obligation constructor)
- #104496 (Don't attempt to normalize compiler backtraces)
- #104503 (rustdoc: remove redundant font-color CSS on `.where`)
- #104508 (Check `dyn*` return type correctly)
- #104515 (ICE fixing, remove is_tainted_by_errors since we have ty_error for delay bug)
- #104532 (Migrate tooltip style to CSS variables)
- #104545 (Readd the matches_macro diag item)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Fix `src/test/run-make/issue-36710` on cross-compiled targets
This PR fixes the `src/test/run-make/issue-36710` test not working on cross-compiled targets by telling the make infra how to run tests remotely with `remote-test-server`.
This PR includes a revert of #102723 (cc `@pcc),` which disabled that test on all cross-compiled targets.
|
|
|
|
Migrate tooltip style to CSS variables
|
|
ICE fixing, remove is_tainted_by_errors since we have ty_error for delay bug
Fixes #104510
|
|
Check `dyn*` return type correctly
In `check_fn`, if the declared return type is `dyn Trait`, then we check the return type separately to produce better diagnostics, because this is never valid -- however, when `dyn*` was introduced, this check was never adjusted to only account for *unsized* `dyn Trait` and not *sized* `dyn* Trait`.
Fixes #104501
|
|
r=jackh726
Don't attempt to normalize compiler backtraces
Backtraces can very significantly depending on environment and cause spurious test suite failures. Ensuring a proper failure-status should be sufficient to keep a crash properly documented.
This caused a failure in Fuchsia's test suite CI due to an extra newline between "stack" and "error" appearing after normalization.
cc ````@jackh726````
r? ````@tmandry````
|
|
Fix ICE in in_operand for ty error
Fixes #104390
By the way, moving some test cases to proper directory for tidy bless.
|
|
Fix `emit_unused_delims_expr` ICE
Fixes #104392
|
|
r=notriddle
Simplify settings theme choice
I removed the storage changes from https://github.com/rust-lang/rust/pull/98765 and only kept the UI changes.
You can test it [here](https://rustdoc.crud.net/imperio/simplify-settings-theme-choice/foo/index.html).
Discussion about this still in progress [on zulip](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Last.20part.20of.20settings.20simplification).
r? ````@notriddle````
|
|
Don't remap early-bound regions for return-position `impl Trait` in trait originating from `impl`
long title :sweat:
We don't want to remap early-bound regions that originate from the `impl`s themselves, since they have no corresponding region in the trait. Not sure if there's a better condition than checking if the EBR's def-id's parent is the impl -- maybe we should be checking if the region comes from the method or RPITIT... :shrug:
r? types
Fixes #103850
|
|
|
|
|
|
Support `#[track_caller]` on async fns
Adds `#[track_caller]` to the generator that is created when we desugar the async fn.
Fixes #78840
Open questions:
- What is the performance impact of adding `#[track_caller]` to every `GenFuture`'s `poll(...)` function, even if it's unused (i.e., the parent span does not set `#[track_caller]`)? We might need to set it only conditionally, if the indirection causes overhead we don't want.
|
|
When running tests inside the Android emulator, bootstrap doesn't set
the TEST_DEVICE_ADDR environment variable, as the default address
(127.0.0.1:12345) is used.
Instead, REMOTE_TEST_CLIENT is set all the times when remote testing is
needed, and in no other cases. To ensure Android tests are executed in
the emulator, change the check.
|
|
|
|
This reverts commit 0567fec8e47f83ddda623f93deccddddd3f6744f.
|
|
|
|
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.
|
|
|
|
patterns.
|
|
Merge basic blocks where possible when generating LLVM IR.
r? `@ghost`
|
|
|
|
Use `token::Lit` in `ast::ExprKind::Lit`.
Instead of `ast::Lit`.
Literal lowering now happens at two different times. Expression literals are lowered when HIR is crated. Attribute literals are lowered during parsing.
r? `@petrochenkov`
|
|
|
|
Backtraces can very significantly depending on environment and cause
test suite failures spuriously. Ensuring a proper failure-status should
be sufficient to keep a crash properly documented.
|
|
Only do parser recovery on retried macro matching
Eager parser recovery can break macros, so we don't do it at first. But when we already know that the macro failed, we can retry it with recovery enabled to still emit useful diagnostics.
Helps with #103534
|
|
cleanup and dedupe CTFE and Miri error reporting
It looks like most of the time, this error raised from const_prop_lint is just redundant -- it duplicates the error reported when evaluating the const-eval query. This lets us make `ConstEvalErr` private to the const_eval module which I think is a good step.
The Miri change mostly replaces a `match` by `if let`, and dedupes the "this error is impossible in Miri" checks.
r? ``@oli-obk``
Fixes https://github.com/rust-lang/rust/issues/75461
|
|
|