Commit graph

298901 commits

Author SHA1 Message Date
Janggun Lee
0369ccb532
Fix some grammar errors and hyperlinks in doc for trait Allocator
* "while until either" could also be changed to "for a while until either", but I just deleted "while".
* fixed sentence with incorrect "at" and "has/have".
* linked [*currently allocated*] similar to other methods.
2025-04-14 22:26:43 +09:00
Ralf Jung
971c7b19ca
Merge pull request #4269 from Patrick-6/ptr_allocid_conversion
Expose Pointer to/from AllocId conversion functions, make some arguments optional
2025-04-14 13:12:21 +00:00
lcnr
9c88eb6c43 normalize: prefer ParamEnv over AliasBound 2025-04-14 14:46:48 +02:00
Ralf Jung
5827183801 ptr docs: add missing backtics around 'usize' 2025-04-14 13:56:51 +02:00
Patrick-6
9f1e27b61e Expose Pointer to/from AllocId conversion functions, make some arguments optional 2025-04-14 13:40:04 +02:00
Jethro Beekman
8dc773296c Clarify why SGX code specifies linkage/symbol names for certain statics
Also update the symbol names as items have moved around a bit. The actual
name isn't that important, it just needs to be unique. But for debugging
it can be useful for it to point to the right place.
2025-04-14 13:36:06 +02:00
lcnr
836ea25b4d add RPITIT tests: method compat auto trait leakage 2025-04-14 13:26:13 +02:00
lcnr
2e79f7cd61 move tests 2025-04-14 13:26:13 +02:00
lcnr
ce9d8678ca do not leak auto traits in item bounds 2025-04-14 13:26:13 +02:00
Lukas Wirth
415b7f32a1
Merge pull request #19569 from snprajwal/fixmes
fix(ast): return correct types for `make::expr_*` methods
2025-04-14 11:10:27 +00:00
Lukas Wirth
eda5a2e4e9
Merge pull request #19578 from clouds56-contrib/drive-letter
add normalizeDriveLetter
2025-04-14 11:09:37 +00:00
Lukas Wirth
0e091ac63a
Merge pull request #19521 from snprajwal/ci
ci: cancel parallel jobs if test fails
2025-04-14 11:08:43 +00:00
lcnr
2c2c9df653 drop global where-bounds before merging candidates 2025-04-14 12:59:22 +02:00
Matthew Jasper
c57ef293eb Add unit tests for minimal_scc_representative 2025-04-14 10:40:44 +00:00
bors
c580c498a1 Auto merge of #139241 - bvanjoi:less-decoding, r=petrochenkov
don't store opaque info during encoding

Now `remapped_ctxts` reserved and let's check the performance.

r? `@petrochenkov`
2025-04-14 10:21:14 +00:00
Lukas Wirth
ef701b3516
Merge pull request #19579 from ChayimFriedman2/cyclic-closure
fix: Prevent panics when there is a cyclic dependency between closures
2025-04-14 10:15:03 +00:00
Matthew Jasper
2d5e80b8cb Handle regions equivalent to 'static in non_local_bounds
`non_local_bounds` would only find non local bounds that strictly bound a given region,
but it's possible that a local region is equated to 'static when showing a type referencing
a locally bound lifetime, such as `dyn Any + 'a` in the tests added, is well-formed. In
this case we should return 'static.
2025-04-14 10:00:28 +00:00
Jakub Beránek
09ba190621 Use PGO for x64 and aarch64 Linux builds on CI 2025-04-14 11:51:48 +02:00
Jakub Beránek
d69a440f91 Add xdist dist --pgo command to build Rust Analyzer with PGO optimizations 2025-04-14 11:51:48 +02:00
bjorn3
25df5d021d Pass &mut self to codegen_global_asm 2025-04-14 09:38:04 +00:00
bjorn3
b3b1eddc5b Share part of the global_asm!() implementation between cg_ssa and cg_clif 2025-04-14 09:38:04 +00:00
bjorn3
3066da813b Share part of the global_asm!() implementation between cg_ssa and cg_clif 2025-04-14 09:38:04 +00:00
bjorn3
c02e496ecc Use cg_ssa's version of codegen_naked_asm in cg_clif 2025-04-14 09:38:04 +00:00
bjorn3
f5c93fa3fe Use cg_ssa's version of codegen_naked_asm in cg_clif 2025-04-14 09:38:04 +00:00
bjorn3
421f22e8bf Pass &mut self to codegen_global_asm 2025-04-14 09:38:04 +00:00
bjorn3
94e95f389c Make codegen_naked_asm public
This allows it to be reused by codegen backends that don't use cg_ssa
like cg_clif.
2025-04-14 09:38:04 +00:00
bjorn3
8582bc4e37 Pass MonoItemData to MonoItem::define 2025-04-14 09:38:03 +00:00
bjorn3
e2e96fa14e Pass MonoItemData to MonoItem::define 2025-04-14 09:38:03 +00:00
bjorn3
a73eba99f7 Move codegen_naked_asm call up into MonoItem::define 2025-04-14 09:38:02 +00:00
bjorn3
764d3a50a3 Make codegen_naked_asm retrieve the MIR Body itself 2025-04-14 09:36:20 +00:00
bjorn3
1988de5c37 Only require a CodegenCx for codegen_naked_asm 2025-04-14 09:34:23 +00:00
bjorn3
ffdc292cca Don't begin defining a function when codegening a naked function
While LLVM is rather permissive in this regards, some other codegen
backends demand that once you declare a function for definition you
actually define contents of the function, which doesn't happen for naked
functions as we actually generate assembly for them.
2025-04-14 09:34:21 +00:00
bjorn3
03f4e886dc Handle protected visibility in codegen_naked_asm 2025-04-14 09:25:31 +00:00
bjorn3
14491b0f43 Use START_BLOCK in codegen_naked_asm 2025-04-14 09:25:31 +00:00
bjorn3
1afce7c354 Implement simd_insert_dyn and simd_extract_dyn intrinsics 2025-04-14 09:13:37 +00:00
bjorn3
f99bdfef83 Rustup to rustc 1.88.0-nightly (092a284ba 2025-04-13) 2025-04-14 08:47:01 +00:00
bjorn3
62c72fc381 Sync from rust 092a284ba0 2025-04-14 08:30:14 +00:00
reddevilmidzy
6a8718cab7 Add test for issue 34834 2025-04-14 17:16:23 +09:00
Eddy (Eduard) Stefes
1ac3d6bba7 Let CStrings be either 1 or 2 byte aligned.
Some architectures (like s390x) require strings to be 2 byte aligned.
Therefor the section name will be marked with a .2  postfix on this
architectures.

Allowing a section name with a .1 or .2 postfix will make the test pass
on either platform.
2025-04-14 10:03:31 +02:00
Samuel Tardieu
77b3ac3d57 Check for lifetime uses in closures as well
The `BodyLifetimeChecker` which checks for the use of any non-anonymous
non-static lifetime did not recurse into closures, missing lifetime
uses. This would lead to a bogus elision suggestion.

The `BodyLifetimeChecker` is not refined enough to avoid false
positives, as any conforming lifetime, including one coming from the outer
context, would be considered a hit. The number of false positives might
increase now that we check closures as well, in case those closures
define and use lifetimes themselves.
2025-04-14 09:55:38 +02:00
Jieyou Xu
f3344ef4bd
tests: use compiletest-ignore-dir for bootstrap self-tests 2025-04-14 15:28:41 +08:00
bors
5961e5ba3d Auto merge of #139781 - jhpratt:rollup-qadsjvb, r=jhpratt
Rollup of 9 pull requests

Successful merges:

 - #138336 (Improve `-Z crate-attr` diagnostics)
 - #139636 (Encode dep node edge count as u32 instead of usize)
 - #139666 (cleanup `mir_borrowck`)
 - #139695 (compiletest: consistently use `camino::{Utf8Path,Utf8PathBuf}` throughout)
 - #139699 (Proactively update coroutine drop shim's phase to account for later passes applied during shim query)
 - #139718 (enforce unsafe attributes in pre-2024 editions by default)
 - #139722 (Move some things to rustc_type_ir)
 - #139760 (UI tests: migrate remaining compile time `error-pattern`s to line annotations when possible)
 - #139776 (Switch attrs to `diagnostic::on_unimplemented`)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-14 07:07:54 +00:00
Tshepang Mbambo
97be6a6131
Merge pull request #2333 from rust-lang/convetions-chapt-cleaning
Coding conventions chapter cleaning
2025-04-14 08:43:05 +02:00
Tshepang Mbambo
9e99fc3a73 clean "Coding conventions" chapter
- use correct code block markers
- add missing title
- rustfmt can now use edition setting in its config
  ... and this is set in Rust repo
- reduce visual noise
- needless repetition
- convention is to start sentence with upper case
- sembr
- whitespace
- semi-heading not adding much value
- fix grammar
2025-04-14 08:41:22 +02:00
xizheyin
8c8212ef12
Consistent with treating Ctor Call as Struct in liveness analysis
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-14 14:29:14 +08:00
Nicholas Nethercote
bc9dacdf9a Move has_self field to hir::AssocKind::Fn.
`hir::AssocItem` currently has a boolean `fn_has_self_parameter` field,
which is misplaced, because it's only relevant for associated fns, not
for associated consts or types. This commit moves it (and renames it) to
the `AssocKind::Fn` variant, where it belongs.

This requires introducing a new C-style enum, `AssocTag`, which is like
`AssocKind` but without the fields. This is because `AssocKind` values
are passed to various functions like `find_by_ident_and_kind` to
indicate what kind of associated item should be searched for, and having
to specify `has_self` isn't relevant there.

New methods:
- Predicates `AssocItem::is_fn` and `AssocItem::is_method`.
- `AssocItem::as_tag` which converts `AssocItem::kind` to `AssocTag`.

Removed `find_by_name_and_kinds`, which is unused.

`AssocItem::descr` can now distinguish between methods and associated
functions, which slightly improves some error messages.
2025-04-14 16:13:04 +10:00
Nicholas Nethercote
d891f77363 Move has_self field to hir::AssocKind::Fn.
`hir::AssocItem` currently has a boolean `fn_has_self_parameter` field,
which is misplaced, because it's only relevant for associated fns, not
for associated consts or types. This commit moves it (and renames it) to
the `AssocKind::Fn` variant, where it belongs.

This requires introducing a new C-style enum, `AssocTag`, which is like
`AssocKind` but without the fields. This is because `AssocKind` values
are passed to various functions like `find_by_ident_and_kind` to
indicate what kind of associated item should be searched for, and having
to specify `has_self` isn't relevant there.

New methods:
- Predicates `AssocItem::is_fn` and `AssocItem::is_method`.
- `AssocItem::as_tag` which converts `AssocItem::kind` to `AssocTag`.

Removed `find_by_name_and_kinds`, which is unused.

`AssocItem::descr` can now distinguish between methods and associated
functions, which slightly improves some error messages.
2025-04-14 16:13:04 +10:00
Nicholas Nethercote
ce2aa97cd6 Move has_self field to hir::AssocKind::Fn.
`hir::AssocItem` currently has a boolean `fn_has_self_parameter` field,
which is misplaced, because it's only relevant for associated fns, not
for associated consts or types. This commit moves it (and renames it) to
the `AssocKind::Fn` variant, where it belongs.

This requires introducing a new C-style enum, `AssocTag`, which is like
`AssocKind` but without the fields. This is because `AssocKind` values
are passed to various functions like `find_by_ident_and_kind` to
indicate what kind of associated item should be searched for, and having
to specify `has_self` isn't relevant there.

New methods:
- Predicates `AssocItem::is_fn` and `AssocItem::is_method`.
- `AssocItem::as_tag` which converts `AssocItem::kind` to `AssocTag`.

Removed `find_by_name_and_kinds`, which is unused.

`AssocItem::descr` can now distinguish between methods and associated
functions, which slightly improves some error messages.
2025-04-14 16:13:04 +10:00
Nicholas Nethercote
e6dc2e9be0 Use Symbol in LateContext::get_associated_type.
To avoid unnecessary interning.
2025-04-14 16:12:21 +10:00
Nicholas Nethercote
abce592029 Use Symbol in LateContext::get_associated_type.
To avoid unnecessary interning.
2025-04-14 16:12:21 +10:00