| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
Specialize `Iterator::eq{_by}` for `TrustedLen` iterators
I'm sure I got some stuff wrong here, but opening this to get feedback and make sure it's a viable idea at all.
### Motivation
I had a piece of code that open-coded `Iterator::eq`, something like:
```rust
if current.len() != other.len()
|| current.iter().zip(other.iter()).any(|(a, b)| a != b) { ... }
```
... where both `current` and `other` are slices of the same type.
Changing the code to use `current.iter().eq(other)` made it a lot slower, since it wasn't checking the length of the two slices beforehand anymore, which in this instance made a big difference in perf. So I thought I'd see if I can improve `Iterator::eq`.
### Questions
1. I can't specialize for `ExactSizeIterator`, I think it's a limitation of `min_specialization` but not sure exactly why. Is specializing for `TrustedLen` good enough?
2. Should I make a codegen test for this? If so, then how? (I manually checked the assembly to make sure it works as expected)
3. Where should I put `SpecIterCompare`?
4. Can I get a perf run for this, please? I think the compiler uses this in a few places, so it might have an affect.
|
|
|
|
|
|
|
|
|
|
implement sqrt for f16 and f128
|
|
Add missing documentation for running tests with GCC backend
|
|
|
|
|
|
Clippy subtree update
r? `@Manishearth`
`Cargo.lock` update due to release/Clippy version bump.
|
|
|
|
|
|
Add GenMC estimation mode.
|
|
fix: Fix one more thing in `in-rust-tree`
|
|
|
|
|
|
minor: Yet another rustc crates bump
|
|
|
|
fix: Fix `indexmap` with `in-rust-tree`
|
|
|
|
Rollup of 6 pull requests
Successful merges:
- rust-lang/rust#146434 (c-variadic: allow c-variadic inherent and trait methods)
- rust-lang/rust#146487 (Improve `core::num` coverage)
- rust-lang/rust#146597 (Add span for struct tail recursion limit error)
- rust-lang/rust#146622 (Add regression test for issue rust-lang/rust#91831)
- rust-lang/rust#146717 (Clean up universe evaluation during type test evaluation)
- rust-lang/rust#146723 (Include patch in release notes)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
It is now required to provide a resource compiler on windows when
compiling rust. This allows toolchain builders to explicitly provide a
path to an alternative, such as llvm-rc, instead of the one that's
provided by the Windows SDK.
|
|
minor: Bump rustc crates again
|
|
|
|
|
|
clippy-subtree-update
|
|
Include patch in release notes
This should fix triagebot publication of the GitHub release on merge.
|
|
Clean up universe evaluation during type test evaluation
The logic was, as the removed comments suggest, hackish and meant to implement previous logic that was factored out. The new logic does exactly what the comments say, and is much less surprising.
I'm afraid we may want
r? `@lcnr`
for this one too.
I am sorry, but at least it should be easier to review.
|
|
Add regression test for issue #91831
The requested test for rust-lang/rust#91831. I'm unsure about the filename, the file structure in `tests/ui/lifetimes/lifetime-errors/` isn't entirely clear to me. Any suggestions?
Closes rust-lang/rust#91831
|
|
r=oli-obk
Add span for struct tail recursion limit error
Fixes rust-lang/rust#135629
Changes
1. Add span to RecursionLimitReached
2. Add ObligationCause parameter to struct_tail_raw
4. Update call sites to pass nearby ObligationCause or create one
5. Update affected .stderr
|
|
Improve `core::num` coverage
This PR improves the `core::num` coverage by adding a new test to `coretests`.
r? libs
|
|
r=workingjubilee
c-variadic: allow c-variadic inherent and trait methods
tracking issue: https://github.com/rust-lang/rust/issues/44930
Continuing the work of https://github.com/rust-lang/rust/pull/146342, allow inherent and trait methods to be c-variadic. However, a trait that contains a c-variadic method is no longer dyn-compatible.
There is, presumably, some way to make c-variadic methods dyn-compatible. However currently, we don't have confidence that it'll work reliably: when methods from a `dyn` object are cast to a function pointer, a `ReifyShim` is created. If that shim is c-variadic, it would need to forward the C variable argument list.
That does appear to work, because the `va_list` is not represented in MIR at all in this case, so the registers from the call site are untouched by the shim and can be read by the actual implementation. That just does not seem like a solid implementation.
Also, intuitively, why would c-variadic function, primarily needed for FFI, need to be used with `dyn` objects at all? We can revisit this limitation if a need arises.
r? `@workingjubilee`
|
|
r? @ghost
changelog: none
|
|
|
|
|
|
|
|
Needed to split the lints crate.
changelog: split `redundant_clone` iterator checks into
`redundant_iter_cloned`
<!-- TRIAGEBOT_START -->
<!-- TRIAGEBOT_SUMMARY_START -->
### Summary Notes
-
[Feature-freeze](https://github.com/rust-lang/rust-clippy/pull/15277#issuecomment-3073454006)
by [github-actions[bot]](https://github.com/github-actions[bot])
*Managed by `@rustbot`—see
[help](https://forge.rust-lang.org/triagebot/note.html) for details*
<!-- TRIAGEBOT_SUMMARY_END -->
<!-- TRIAGEBOT_END -->
|
|
minor: Update rustc deps
|
|
|
|
`-Znext-solver` allow `ExprKind::Call` for not-yet defined opaques
Based on https://github.com/rust-lang/rust/pull/146329. Revival of rust-lang/rust#140496. See the comment on `OpaqueTypesJank`. I've used the following document while working on this https://hackmd.io/Js61f8PRTcyaiyqS-fH9iQ.
Fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/181. It does introduce one subtle footgun we may want to handle before stabilization, opened https://github.com/rust-lang/trait-system-refactor-initiative/issues/230 for that. Also cc https://github.com/rust-lang/trait-system-refactor-initiative/issues/231 for deref and index operations
r? `@BoxyUwU`
|
|
This should fix triagebot publication of the GitHub release on merge.
|
|
|
|
`.unwrap_or(vec![])` is as readable as `.unwrap_or_default()`.
Also, this ensures by adding tests that expressions such as
`.unwrap_or(DEFAULT_LITERAL)` (`0`, `""`, etc.) are not replaced by
`.unwrap_or_default()` either.
Related to the discussion in the [Zulip
discussion](https://rust-lang.zulipchat.com/#narrow/channel/257328-clippy/topic/FCP.20concealed_obvious_default)
about PR rust-lang/rust-clippy#15037.
changelog: [`unwrap_or_default`]: do not replace `.unwrap_or(vec![])` by
`.unwrap_or_default()`
|
|
The logic was, as the removed comments suggest, hackish
and meant to implement previous logic that was factored out.
The new logic does exactly what the comments say, and is much
less surprising.
|
|
|
|
|
|
|
|
|