Commit Graph

269950 Commits

Author SHA1 Message Date
许杰友 Jieyou Xu (Joe)
6c93c65057 Delete tests/crashes/23707.rs because it's flaky
It's conditioned on `only-x86_64` because it doesn't reliably fail on
other platforms, it's optimization dependent and failed to ICE post-PGO
in
<https://github.com/rust-lang/rust/pull/132300#issuecomment-2443279042>.
Remove this test for now without prejudice against relanding the test in
a more reliable form.
2024-10-29 14:22:06 +08:00
Laurențiu Nicola
772d1383f7 Merge from rust-lang/rust 2024-10-29 08:13:34 +02:00
Laurențiu Nicola
4b27980870 Preparing for merge from rust-lang/rust 2024-10-29 08:13:20 +02:00
Michael Goulet
599ffab6cd Remove region from adjustments 2024-10-29 01:34:06 +00:00
bors
a9d17627d2 Auto merge of #128985 - GrigorenkoPV:instantly-dangling-pointer, r=Urgau
Lint against getting pointers from immediately dropped temporaries

Fixes #123613

## Changes:
1. New lint: `dangling_pointers_from_temporaries`. Is a generalization of `temporary_cstring_as_ptr` for more types and more ways to get a temporary.
2. `temporary_cstring_as_ptr` is removed and marked as renamed to `dangling_pointers_from_temporaries`.
3. `clippy::temporary_cstring_as_ptr` is marked as renamed to `dangling_pointers_from_temporaries`.
4. Fixed a false positive[^fp] for when the pointer is not actually dangling because of lifetime extension for function/method call arguments.
5. `core::cell::Cell` is now `rustc_diagnostic_item = "Cell"`

## Questions:
- [ ]  Instead of manually checking for a list of known methods and diagnostic items, maybe add some sort of annotation to those methods in library and check for the presence of that annotation? https://github.com/rust-lang/rust/pull/128985#issuecomment-2318714312

## Known limitations:

### False negatives[^fn]:

See the comments in `compiler/rustc_lint/src/dangling.rs`

1. Method calls that are not checked for:
   - `temporary_unsafe_cell.get()`
   - `temporary_sync_unsafe_cell.get()`
2. Ways to get a temporary that are not recognized:
   - `owning_temporary.field`
   - `owning_temporary[index]`
3. No checks for ref-to-ptr conversions:
   - `&raw [mut] temporary`
   - `&temporary as *(const|mut) _`
    - `ptr::from_ref(&temporary)` and friends

[^fn]: lint **should** be emitted, but **is not**

[^fp]: lint **should not** be emitted, but **is**
2024-10-29 00:24:07 +00:00
Lukas Markeffsky
02ee6395fd Rc destructor: tweak inlining 2024-10-28 22:59:14 +01:00
klensy
2b326e3817 correct LLVMRustDIBuilderCreateOpLLVMFragment return type 2024-10-29 00:47:20 +03:00
klensy
17636374de correct LLVMRustCreateThinLTOData arg types 2024-10-29 00:47:20 +03:00
Michael Goulet
8b7b8e5f56 Hack out effects support for old solver 2024-10-28 21:42:14 +00:00
Urgau
5ae5323d0e Remove myself from mentions inside tests/ui/check-cfg directory 2024-10-28 22:23:56 +01:00
Michael Goulet
3240fe2773 Remove some goofy slice logic from the operator path 2024-10-28 21:22:23 +00:00
Maybe Lapkin
f0744ca357 Bless a miri test
After moving some `Box` internals to a different module,
the path in the diagnostic changed.
2024-10-28 12:29:19 -07:00
Maybe Lapkin
b2f335ea99 Split boxed.rs into a few modules
+ some minor style changes
2024-10-28 12:29:19 -07:00
Oli Scherer
d581d802b1
Merge pull request #3998 from RalfJung/contrib
contributing guide: mention expectations around force pushes and squashing
2024-10-28 18:48:48 +00:00
Noah Lev
d4774ff4ab Remove my ping for rustdoc/clean/types.rs
It was useful at one time, but now it just causes notification noise.
2024-10-28 14:32:40 -04:00
Jubilee
89ac69f13a
Rollup merge of #132271 - claywilkinson:master, r=tmandry
Updating Fuchsia platform-support documentation

Updated for changes in the package server workflow.

r? ``@tmandry`` ``@erickt``
2024-10-28 10:18:53 -07:00
Jubilee
6fd4a76d3b
Rollup merge of #132261 - ChrisCho-H:refactor/cleaner-check-none, r=compiler-errors
refactor: cleaner check to return None

It's very nit change. Refactor to shorten verbose check when returning None for `backend_feature_name`.
2024-10-28 10:18:52 -07:00
Jubilee
bd43f8e9fd
Rollup merge of #132260 - Zalathar:type-safe-cast, r=compiler-errors
cg_llvm: Use a type-safe helper to cast `&str` and `&[u8]` to `*const c_char`

In `rustc_codegen_llvm` there are many uses of `.as_ptr().cast()` to convert a string or byte-slice to `*const c_char`, which then gets passed through FFI.

This works, but is fragile, because there's nothing constraining the pointer cast to actually be from `u8` to `c_char`. If the original value changes to something else that has an `as_ptr` method, or the context changes to expect something other than `c_char`, the cast will silently do the wrong thing.

By making the cast more explicit via a helper method, we can be sure that it will either perform the intended cast, or fail at compile time.
2024-10-28 10:18:52 -07:00
Jubilee
6ea83ffe2c
Rollup merge of #132258 - GuillaumeGomez:variant-structfields-margins, r=notriddle
[rustdoc] Unify variant struct fields margins with struct fields

As discussed in https://github.com/rust-lang/rust/pull/132220.

| before | after |
|-|-|
| ![image](https://github.com/user-attachments/assets/d8d8336d-7fe4-45fb-a5a5-36a4023223f5) | ![Screenshot from 2024-10-28 11-17-24](https://github.com/user-attachments/assets/9d0d9633-b857-45b4-9217-7d0d1aa8f770) |

r? ```@notriddle```
2024-10-28 10:18:51 -07:00
Jubilee
259ddf9b50
Rollup merge of #132255 - workingjubilee:layout-is-🏚️, r=compiler-errors
Add `LayoutS::is_uninhabited` and use it

Use accessors for the things that accessors are good at: reducing everyone's need to be nosy and peek at the internals of every data structure.
2024-10-28 10:18:50 -07:00
Jubilee
d6be363400
Rollup merge of #132249 - workingjubilee:add-rustc-abi, r=compiler-errors
compiler: Add rustc_abi dependence to the compiler

Depend on rustc_abi in compiler crates that use it indirectly but have not yet taken on that dependency, and are not *significantly* entangled in my other PRs. This leaves an "excise rustc_target" step after the dust settles.
2024-10-28 10:18:50 -07:00
Jubilee
e20026cac0
Rollup merge of #132247 - workingjubilee:add-rustc-abi-to-smir, r=celinval
stable_mir: Directly use types from rustc_abi

In most cases, rustc_target is not necessary, so use rustc_abi instead of its reexports.
2024-10-28 10:18:49 -07:00
Jubilee
c9347f1e27
Rollup merge of #131441 - SpriteOvO:proc-macro-to-tokens-trait, r=dtolnay
Add a new trait `proc_macro::ToTokens`

Tracking issue #130977

This PR adds a new trait `ToTokens`, implemented for types that can be interpolated inside a `quote!` invocation.

```rust
impl ToTokens for TokenTree
impl ToTokens for TokenStream
impl ToTokens for Literal
impl ToTokens for Ident
impl ToTokens for Punct
impl ToTokens for Group
impl<T: ToTokens + ?Sized> ToTokens for &T
impl<T: ToTokens + ?Sized> ToTokens for &mut T
impl<T: ToTokens + ?Sized> ToTokens for Box<T>
impl<T: ToTokens + ?Sized> ToTokens for Rc<T>
impl<T: ToTokens + ToOwned + ?Sized> ToTokens for Cow<'_, T>
impl<T: ToTokens> ToTokens for Option<T>
impl ToTokens for u{8,16,32,64,128}
impl ToTokens for i{8,16,32,64,128}
impl ToTokens for f{32,64}
impl ToTokens for {u,i}size
impl ToTokens for bool
impl ToTokens for char
impl ToTokens for str
impl ToTokens for String
impl ToTokens for CStr
impl ToTokens for CString
```

~This PR also implements the migration mentioned in the tracking issue, replacing `Extend<Token{Tree,Stream}>` with `Extend<T: ToTokens>`, and replacing `FromIterator<Token{Tree,Stream}>` with `FromIterator<T: ToTokens>`.~
**UPDATE**: Reverted.

```diff
-impl FromIterator<TokenTree> for TokenStream
-impl FromIterator<TokenStream> for TokenStream
+impl<T: ToTokens> FromIterator<T> for TokenStream

-impl Extend<TokenTree> for TokenStream
-impl Extend<TokenStream> for TokenStream
+impl<T: ToTokens> Extend<T> for TokenStream
```

I'm going to leave some comments in the review where I'm unsure and concerned.

r? ``@dtolnay``
CC ``@tgross35``
2024-10-28 10:18:49 -07:00
Jubilee
a24b3778d6
Rollup merge of #130259 - adwinwhite:lower-node-id-once, r=cjgillot
Lower AST node id only once

Fixes #96346.

I basically followed the given instructions except the inline part.

`lower_jump_destination` can't reuse local existing `HirId` due to unknown name resolution result so I created an additional mapping for labels.

r? ```@cjgillot```
2024-10-28 10:18:48 -07:00
yakiimoninja
5910a4f1bc
clarified std::fs truncate doc
Co-authored-by: nora <48135649+Noratrieb@users.noreply.github.com>
2024-10-28 17:14:15 +00:00
Jubilee Young
5f91811c77 stable_mir: Directly use types from rustc_abi 2024-10-28 10:13:19 -07:00
Jubilee Young
641ce068ae rustdoc: Use accessors to interrogate type layouts 2024-10-28 09:58:30 -07:00
Jubilee Young
88a9edc091 compiler: Add is_uninhabited and use LayoutS accessors
This reduces the need of the compiler to peek on the fields of LayoutS.
2024-10-28 09:58:30 -07:00
Michael Goulet
f202abd4d6 Inline construct_obligation_for_trait 2024-10-28 16:39:50 +00:00
Michael Goulet
c50bc62586 Inline obligation_for_method 2024-10-28 16:37:43 +00:00
Clayton Wilkinson
2cc9d58a0e Updating Fuchsia platform-support documentation
Updated for changes in the package server workflow.
2024-10-28 16:35:16 +00:00
bors
3f1be1ec7e Auto merge of #132145 - RalfJung:stdarch, r=Amanieu
bump stdarch

This lets us remove a hack from https://github.com/rust-lang/rust/pull/131349.

r? `@Amanieu`

try-job: test-various
2024-10-28 16:25:56 +00:00
yakiimoninja
a946721408
clarified doc for std::fs::OpenOptions.truncate()
Clarified what method does when `truncate` parameter is set to `true`.
2024-10-28 16:07:20 +00:00
onur-ozkan
7e064e791d update download-rustc doc in config.example.toml
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-10-28 18:59:37 +03:00
onur-ozkan
5cf6b8bdee force-recompile library changes on download-rustc="if-unchanged"
This makes download-rustc="if-unchanged" more functional and useful
for library developers.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-10-28 18:22:33 +03:00
klensy
746b675c5a fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
klensy
0bff99403c split clippy task for library and compiler, so different lints can be enabled 2024-10-28 17:24:23 +03:00
Ralf Jung
6365ea10f4 contributing guide: mention expectations around force pushes and squashing 2024-10-28 15:14:11 +01:00
Lukas Wirth
af764db2aa
Merge pull request #18420 from ChayimFriedman2/cfg-true-false
feat: Support `cfg(true)` and `cfg(false)`
2024-10-28 13:56:41 +00:00
Lukas Wirth
8e97f4067f
Merge pull request #18421 from Veykril/push-uxxwvwnqvomr
Move text-edit into ide-db
2024-10-28 13:52:16 +00:00
Lukas Wirth
b12859a138
Merge pull request #18413 from ShoyuVanilla/extern-crate-reexport
fix: Allow public re-export of `extern crate` import
2024-10-28 13:51:26 +00:00
Lukas Wirth
9a7fd6f4f0
Merge pull request #18422 from ChayimFriedman2/cursed-name-res
fix: Properly resolve prelude paths inside modules inside blocks
2024-10-28 13:45:19 +00:00
Krasimir Georgiev
e4f793a1aa riscv-soft-abi-with-float-features.rs: adapt for LLVM 20 2024-10-28 13:43:03 +00:00
Lukas Wirth
003270d3e1
Merge pull request #18312 from LastExceed/symbolkind-variable
Report document symbols of kind `variable` for let statements
2024-10-28 13:40:42 +00:00
Lukas Wirth
86ae80c93b Reformat 2024-10-28 14:37:52 +01:00
Lukas Wirth
c1551557c0 Move text-edit into ide-db 2024-10-28 14:37:41 +01:00
bors
9f57edf2e2 Auto merge of #132262 - matthiaskrgr:rollup-pcphi6l, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #131391 (Stabilize `isqrt` feature)
 - #132248 (rustc_transmute: Directly use types from rustc_abi)
 - #132252 (compiler: rename LayoutS to LayoutData)
 - #132253 (Known-bug test for `keyword_idents` lint not propagating to other files)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-28 13:32:57 +00:00
ChrisCho-H
82bfe05309 refactor: cleaner check to return None 2024-10-28 20:16:35 +09:00
Pavel Grigorenko
c69894eaec New lint: dangling_pointers_from_temporaries 2024-10-28 14:16:05 +03:00
Matthias Krüger
2ca9b2cddd
Rollup merge of #132253 - Zalathar:keyword-idents-bug, r=jieyouxu
Known-bug test for `keyword_idents` lint not propagating to other files

Known-bug test for `keyword_idents` lint not propagating to other files when configured via attribute (#132218).
2024-10-28 12:14:59 +01:00