| Age | Commit message (Collapse) | Author | Lines |
|
Rollup of 8 pull requests
Successful merges:
- #121206 (Top level error handling)
- #121261 (coverage: Remove `pending_dups` from the span refiner)
- #121336 (triagebot: add queue notifications)
- #121373 (Consistently refer to a test's `revision` instead of `cfg`)
- #121391 (never patterns: Fix liveness analysis in the presence of never patterns)
- #121392 (Unify dylib loading between proc macros and codegen backends)
- #121399 (Solaris linker does not support --strip-debug)
- #121406 (Add a couple tests)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Because it's now simple enough that it doesn't provide much benefit.
|
|
also introduce ptr::dangling matching NonNull::dangling
|
|
|
|
tests/pass/concurrency/sync: try to make it less likely for the test to fail on macOS
We're already sleeping a full second though. How can our test be stalled for an entire second, what are these CI runners doing?!?
|
|
on macOS
|
|
|
|
|
|
|
|
|
|
|
|
Improve wording of `static_mut_ref`
Close #120964
|
|
|
|
|
|
|
|
Rename `static_mut_ref` lint to `static_mut_refs`.
|
|
errors: only eagerly translate subdiagnostics
Subdiagnostics don't need to be lazily translated, they can always be eagerly translated. Eager translation is slightly more complex as we need to have a `DiagCtxt` available to perform the translation, which involves slightly more threading of that context.
This slight increase in complexity should enable later simplifications - like passing `DiagCtxt` into `AddToDiagnostic` and moving Fluent messages into the diagnostic structs rather than having them in separate files (working on that was what led to this change).
r? ```@nnethercote```
|
|
|
|
Miri subtree update
r? `@ghost`
|
|
|
|
This fixes the issue wherein the lint didn't fire for promoteds
in the case of SHL/SHR operators in non-optimized builds
and all arithmetic operators in optimized builds
|
|
|
|
|
|
Implement intrinsics with fallback bodies
fixes #93145 (though we can port many more intrinsics)
cc #63585
The way this works is that the backend logic for generating custom code for intrinsics has been made fallible. The only failure path is "this intrinsic is unknown". The `Instance` (that was `InstanceDef::Intrinsic`) then gets converted to `InstanceDef::Item`, which represents the fallback body. A regular function call to that body is then codegenned. This is currently implemented for
* codegen_ssa (so llvm and gcc)
* codegen_cranelift
other backends will need to adjust, but they can just keep doing what they were doing if they prefer (though adding new intrinsics to the compiler will then require them to implement them, instead of getting the fallback body).
cc `@scottmcm` `@WaffleLapkin`
### todo
* [ ] miri support
* [x] default intrinsic name to name of function instead of requiring it to be specified in attribute
* [x] make sure that the bodies are always available (must be collected for metadata)
|
|
Use generic `NonZero` internally.
Tracking issue: https://github.com/rust-lang/rust/issues/120257
|
|
|
|
|
|
|
|
Subdiagnostics don't need to be lazily translated, they can always be
eagerly translated. Eager translation is slightly more complex as we need
to have a `DiagCtxt` available to perform the translation, which involves
slightly more threading of that context.
This slight increase in complexity should enable later simplifications -
like passing `DiagCtxt` into `AddToDiagnostic` and moving Fluent messages
into the diagnostic structs rather than having them in separate files
(working on that was what led to this change).
Signed-off-by: David Wood <david@davidtw.co>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fix async closures in CTFE
First commit renames `is_coroutine_or_closure` into `is_closure_like`, because `is_coroutine_or_closure_or_coroutine_closure` seems confusing and long.
Second commit fixes some forgotten cases where we want to handle `TyKind::CoroutineClosure` the same as closures and coroutines.
The test exercises the change to `ValidityVisitor::aggregate_field_path_elem` which is the source of #120946, but not the change to `UsedParamsNeedSubstVisitor`, though I feel like it's not that big of a deal. Let me know if you'd like for me to look into constructing a test for the latter, though I have no idea what it'd look like (we can't assert against `TooGeneric` anywhere?).
Fixes #120946
r? oli-obk cc ``@RalfJung``
|
|
|
|
Turn `is_val_statically_known` into such an intrinsic to demonstrate. It is perfectly safe to call after all.
|
|
turns out one of the synchronizations in rwlock_writer_unlock is unnecessary
|
|
|
|
|
|
|
|
|
|
add tests for imported_main
|
|
|
|
Implement the `mmap64` foreign item.
`mmap64` is like `mmap` but uses a 64-bit integer instead of `off_t` for the offset parameter.
|
|
|
|
`mmap64` is only defined on Linux, so move the implementation
to Linux-specific code.
|