Commit Graph

243286 Commits

Author SHA1 Message Date
Gray Olson
058fb50ecd trim section on managed-box model 2024-01-07 08:56:23 -08:00
Gray Olson
9997114e14 improve Pin::new_unchecked docs 2024-01-07 08:56:23 -08:00
Gray Olson
d7a886a807 update ui tests 2024-01-07 08:56:20 -08:00
Gray Olson
f0827b3055 fix broken link 2024-01-07 08:56:10 -08:00
Gray Olson
e0210e6e1d justify motivation of Unpin better 2024-01-07 08:56:09 -08:00
Gray Olson
469c78bcfd improve Pin and Pin::new docs 2024-01-07 08:56:09 -08:00
Gray Olson
6e882790b8 Pin<P> -> Pin<Ptr> 2024-01-07 08:56:09 -08:00
Gray Olson
de2e748a40 fix typos and edit prose 2024-01-07 08:56:08 -08:00
Gray Olson
6d5f43d77d edit new section for typos and better wording 2024-01-07 08:56:08 -08:00
Gray Olson
921d37dbd5 fix imports 2024-01-07 08:56:07 -08:00
Gray Olson
f2447a6a70 fix typos 2024-01-07 08:56:07 -08:00
Gray Olson
252a83b63f add section on manual owning ptr managed solution via @kpreid 2024-01-07 08:56:07 -08:00
Gray Olson
7c9c71260e improve structural Unpin + formatting 2024-01-07 08:56:06 -08:00
Gray Olson
e2e8746bb6 reword unpin auto impl section 2024-01-07 08:56:06 -08:00
Gray Olson
82a68171d3 fix link in footnote 2024-01-07 08:56:06 -08:00
Gray Olson
bebbe24a63 improve Pin struct docs and add examples 2024-01-07 08:56:05 -08:00
Gray Olson
6818d9278b improve intro and discussion of pinning as library contract 2024-01-07 08:56:05 -08:00
Gray Olson
db5b19e472 improve intro and Unpin-related discussion 2024-01-07 08:56:05 -08:00
Gray Olson
46f9d77bd1 update doubly linked list commentary and fix links 2024-01-07 08:56:04 -08:00
Gray Olson
ec8a01a479 fix one more broken link 2024-01-07 08:56:04 -08:00
Gray Olson
584f0986fc fix broken links 2024-01-07 08:56:04 -08:00
Gray Olson
ba3b9342cc Fix examples, finish polishing 2024-01-07 08:56:04 -08:00
Gray Olson
8241ca6056 mostly done 2024-01-07 08:56:03 -08:00
Miguel Young de la Sota
bfd63b20c8 Rewrite Pin<P> docs to clarify guarantees and uses
The documentation today does not give a complete treatment of pinning
from first principles, which appropriately describes how to design types
that use it, nor does it provide formal statements of the guarantees
users need to be aware of.

This rewrite attempts to address these in a way that makes the concept
more approachable while also making the documentation more normative.
2024-01-07 08:56:03 -08:00
Michael Goulet
0f3957487b Inline some helpers no longer needed due to RPITIT being stable 2024-01-07 16:40:56 +00:00
Michael Goulet
8af1a6a1e5 Make ImplTraitPosition display more descriptive 2024-01-07 16:40:53 +00:00
Nadrieril
30ca1c0a5d Remove incorrect assert
It's incorrect because `CtorSet::split` returns a non-present
constructor into `present` in one specific case: variable-length slices
of an empty type. That's because empty constructors of arity 0 break the
algorithm. This is a tricky corner case that's hard to do cleanly. The
assert wasn't adding much anyway.
2024-01-07 16:45:44 +01:00
Nadrieril
4c2386137a Factor out pushing onto PatternColumn 2024-01-07 16:45:44 +01:00
bors
75c68cfd2b Auto merge of #119675 - cjgillot:set-no-discriminant, r=tmiasko
Skip threading over no-op SetDiscriminant.

Fixes https://github.com/rust-lang/rust/issues/119674
2024-01-07 15:34:05 +00:00
bors
6f017d22cc Auto merge of #3257 - RalfJung:build-tests, r=RalfJung
./miri build: also build tests, to avoid rebuilds later
2024-01-07 15:24:42 +00:00
Camille GILLOT
4071572cb4 Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
Quinn Sinclair
bbadce9ec0 Fixed ICE introduced in #12004
Issue: in #12004, we emit a lint for `filter(Option::is_some)`. If the
parent expression is a `.map` we don't emit that lint as there exists a
more specialized lint for that.

The ICE introduced in #12004 is a consequence of the assumption that a
parent expression after a filter would be a method call with the filter
call being the receiver. However, it is entirely possible to have a
closure of the form

```
|| { vec![Some(1), None].into_iter().filter(Option::is_some) }
```
The previous implementation looked at the parent expression; namely the
closure, and tried to check the parameters by indexing [0] on an empty
list.

This commit is an overhaul of the lint with significantly more FP tests
and checks.

Impl details:

1. We verify that the filter method we are in is a proper trait method
   to avoid FPs.
2. We check that the parent expression is not a map by checking whether
   it exists; if is a trait method; and then a method call.
3. We check that we don't have comments in the span.
4. We verify that we are in an Iterator of Option and Result.
5. We check the contents of the filter.
  1. For closures we peel it. If it is not a single expression, we don't
     lint.
  2. For paths, we do a typecheck to avoid FPs for types that impl
     functions with the same names.
  3. For calls, we verify the type, via the path, and that the param of
     the closure is the single argument to the call.
  4. For method calls we verify that the receiver is the parameter of
     the closure. Since we handle single, non-block exprs, the
     parameter can't be shadowed, so no FP.

This commit also adds additional FP tests.
2024-01-07 17:11:34 +02:00
bors
af40101841 Auto merge of #16302 - homersimpsons:patch-1, r=lnicola
line-index: Create README.md

Fixes #16180
2024-01-07 14:41:45 +00:00
homersimpsons
0f69276e60
line-index: Update README.md with suggestions
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2024-01-07 15:38:40 +01:00
cocodery
a843996e81 Simplify check function, weirdly binary format literals happen not often 2024-01-07 22:35:21 +08:00
Obei Sideg
a8aa6878f6 Update test for E0796 and static_mut_ref lint 2024-01-07 17:29:25 +03:00
bors
f37e7f3585 Auto merge of #12109 - GuillaumeGomez:map-clone-call, r=llogiq
Handle "calls" inside the closure as well in `map_clone` lint

Follow-up of https://github.com/rust-lang/rust-clippy/pull/12104.

I just realized that I didn't handle the case where the `clone` method was made as a call and not a method call.

r? `@llogiq`

changelog: Handle "calls" inside the closure as well in `map_clone` lint
2024-01-07 14:23:02 +00:00
bors
8675aa1ebf Auto merge of #3256 - RalfJung:rounding, r=RalfJung
implement the rounding intrinsics using apfloat rounding

No reason to use host floats for these. Also merge two files that were both testing various float things.
2024-01-07 14:21:57 +00:00
klensy
46cf55ac6f tidy: add\remove deps 2024-01-07 16:53:32 +03:00
klensy
5b153b52a2 annotate-snippets: update to 0.10 2024-01-07 16:53:32 +03:00
bors
adc5bc93fc Auto merge of #12108 - samueltardieu:issue-12103, r=xFrednet
Do not suggest `bool::then()` and `bool::then_some` in `const` contexts

Fix #12103

changelog: [`if_then_some_else_none`]: Do not trigger in `const` contexts
2024-01-07 13:49:58 +00:00
bors
d8b44d2802 Auto merge of #119667 - Nadrieril:remove-wildcard-row, r=compiler-errors
Exhaustiveness: remove `Matrix.wildcard_row`

To compute exhaustiveness, we check whether an extra row with a wildcard added at the end of the match expression would be reachable. We used to store an actual such row of patterns in the `Matrix`, but it's a bit redundant since we know it only contains wildcards. It was kept because we used it to get the type of each column (and relevancy). With this PR, we keep track of the types (and relevancy) directly.

This is part of me splitting up https://github.com/rust-lang/rust/pull/119581 for ease of review.

r? `@compiler-errors`
2024-01-07 13:36:54 +00:00
homersimpsons
747fa7dd6e
line-index: Create README.md 2024-01-07 14:25:42 +01:00
bors
d93ca6e246 Auto merge of #3259 - RalfJung:jemalloc, r=RalfJung
use jemalloc as global allocator

Hopefully fixes https://github.com/rust-lang/miri/issues/3255
2024-01-07 13:19:47 +00:00
Guillaume Gomez
f66e940c88 Update ui test for map_clone lint 2024-01-07 13:24:52 +01:00
Guillaume Gomez
78aa2e29e2 Handle "calls" inside the closure as well in map_clone lint 2024-01-07 13:24:52 +01:00
Ralf Jung
c4a11ea93e only use jemalloc on Unix 2024-01-07 13:15:53 +01:00
Ralf Jung
b8209e2ef1 use jemalloc as global allocator 2024-01-07 12:38:37 +01:00
bors
87e1430893 Auto merge of #119556 - onur-ozkan:optimized-compiler-builtins, r=onur-ozkan
Reland optimized-compiler-builtins config

Copy of #102579 PR.

From #102579:

> No concerns on my side. Currently, Jyn isn't actively working on the project. I will close this PR; open another one to cherry-pick the commits, resolve conflicts, and then r+ it.

> Fixes https://github.com/rust-lang/rust/issues/102560. Fixes https://github.com/rust-lang/rust/issues/101172. Helps with https://github.com/rust-lang/rust/issues/105065 (although there's some weirdness there - it's still broken when optimized-compiler-builtins is set to true).

Fixes https://github.com/rust-lang/rust/issues/102560. Fixes https://github.com/rust-lang/rust/issues/101172. Helps with https://github.com/rust-lang/rust/issues/105065

r? ghost
2024-01-07 11:20:08 +00:00
bors
6ce3f44597 Auto merge of #16298 - riverbl:exclusive-range-hint, r=Veykril
feat: Add inlay hint for exclusive ranges

Adds an inlay hint containing a '<' character to exclusive range expressions and patterns that specify an upper bound.

![2024-01-07-095056_257x415_scrot](https://github.com/rust-lang/rust-analyzer/assets/94326797/d6bbc0de-52a5-4af4-b53c-a034749b6cab)

Inspired by [this comment](https://github.com/rust-lang/rust/issues/37854#issuecomment-1865124907) noting that IntelliJ Rust has this feature.
2024-01-07 10:21:39 +00:00