about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2025-03-31Add documentation of the option into the unstable bookJakub Beránek-0/+3
2025-03-31fix: Cleanup param name inlay hint filteringLukas Wirth-118/+187
2025-03-31Auto merge of #119220 - Urgau:uplift-invalid_null_ptr_usage, r=fee1-deadbors-648/+24
Uplift `clippy::invalid_null_ptr_usage` lint as `invalid_null_arguments` This PR aims at uplifting the `clippy::invalid_null_ptr_usage` lint into rustc, this is similar to the [`clippy::invalid_utf8_in_unchecked` uplift](https://github.com/rust-lang/rust/pull/111543) a few months ago, in the sense that those two lints lint on invalid parameter(s), here a null pointer where it is unexpected and UB to pass one. *For context: GitHub Search reveals that just for `slice::from_raw_parts{_mut}` [~20 invalid usages](hhttps://github.com/search?q=lang%3Arust+%2Fslice%3A%3Afrom_raw_parts%28_mut%29%3F%5C%28ptr%3A%3Anull%2F+NOT+path%3A%2F%5Eclippy_lints%5C%2Fsrc%5C%2F%2F+NOT+path%3A%2F%5Erust%5C%2Fsrc%5C%2Ftools%5C%2Fclippy%5C%2Fclippy_lints%5C%2Fsrc%5C%2F%2F+NOT+path%3A%2F%5Esrc%5C%2Ftools%5C%2Fclippy%5C%2Fclippy_lints%5C%2Fsrc%5C%2F%2F&type=code) with `ptr::null` and an additional [4 invalid usages](https://github.com/search?q=lang%3Arust+%2Fslice%3A%3Afrom_raw_parts%5C%280%28%5C%29%7C+as%29%2F+NOT+path%3A%2F%5Eclippy_lints%5C%2Fsrc%5C%2F%2F+NOT+path%3A%2F%5Erust%5C%2Fsrc%5C%2Ftools%5C%2Fclippy%5C%2Fclippy_lints%5C%2Fsrc%5C%2F%2F+NOT+path%3A%2F%5Esrc%5C%2Ftools%5C%2Fclippy%5C%2Fclippy_lints%5C%2Fsrc%5C%2F%2F+NOT+path%3A%2F%5Eutils%5C%2Ftinystr%5C%2Fsrc%5C%2F%2F+NOT+path%3A%2F%5Eutils%5C%2Fzerovec%5C%2Fsrc%5C%2F%2F+NOT+path%3A%2F%5Eprovider%5C%2Fcore%5C%2Fsrc%5C%2F%2F&type=code) with `0 as *const ...`-ish casts.* ----- ## `invalid_null_arguments` (deny-by-default) The `invalid_null_arguments` lint checks for invalid usage of null pointers. ### Example ```rust // Undefined behavior unsafe { std::slice::from_raw_parts(ptr::null(), 1); } ``` Produces: ``` error: calling this function with a null pointer is Undefined Behavior, even if the result of the function is unused --> $DIR/invalid_null_args.rs:21:23 | LL | let _: &[usize] = std::slice::from_raw_parts(ptr::null_mut(), 0); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^^^^ | | | null pointer originates from here | = help: for more information, visit <https://doc.rust-lang.org/std/ptr/index.html> and <https://doc.rust-lang.org/reference/behavior-considered-undefined.html> ``` ### Explanation Calling methods whose safety invariants requires non-null pointer with a null pointer is undefined behavior. ----- The lint use a list of functions to know which functions and arguments to checks, this could be improved in the future with a rustc attribute, or maybe even with a `#[diagnostic]` attribute. This PR also includes some small refactoring to avoid some ambiguities in naming, those can be done in another PR is desired. `@rustbot` label: +I-lang-nominated r? compiler
2025-03-30Rollup merge of #139122 - petrochenkov:norerr, r=compiler-errorsJacob Pratt-4/+0
Remove attribute `#[rustc_error]` It was an ancient way to write `check-pass` tests, but now it's no longer necessary (except for the `delayed_bug_from_inside_query` flavor, which is retained).
2025-03-30Rollup merge of #139044 - thaliaarchi:bootstrap-change-id-clone, r=onur-ozkanJacob Pratt-15/+11
bootstrap: Avoid cloning `change-id` list Inspired by [recent discussion](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Collecting.20some.20Real.20Configs.20for.20testing/near/507845657) on the bootstrap `change-id` field, I took a look at the code and found this little optimization. It does not change behavior.
2025-03-30unstable book: document import_trait_associated_functionsmejrs-0/+22
2025-03-30Suggest switching underscores for dashesmejrs-1/+16
2025-03-30Remove duplicate c-variadic.mdmejrs-33/+5
2025-03-30Drop `clippy::invalid_null_ptr_usage`Urgau-648/+24
2025-03-30Update tidy exceptionsbjorn3-0/+4
2025-03-30Fix partial clone linkclubby789-1/+1
2025-03-30Remove attribute `#[rustc_error]`Vadim Petrochenkov-4/+0
2025-03-30add rustfmt settings fileTshepang Mbambo-127/+39
2025-03-30example assumes a static existsTshepang Mbambo-2/+2
This was removed, likely by mistake, during a refactor.
2025-03-29update rustc-{driver,interface} examplesTshepang Mbambo-13/+12
2025-03-29Merge pull request #2289 from y1lan/fix_compiler_err_of_examplesTshepang Mbambo-17/+16
Fix compile errors of all the examples
2025-03-29Rollup merge of #139100 - petrochenkov:errbelow, r=jieyouxuMatthias Krüger-1/+22
compiletest: Support matching diagnostics on lines below Using `//~vvv ERROR`. This is not needed often, but it's easy to support, and it allows to eliminate a class of `error-pattern`s that cannot be eliminated in any other way. See the diff for the examples of such patterns coming from parser. Some of them can be matched by `//~ ERROR` or `//~^ ERROR` as well (when the final newline is allowed), but it changes the shape of reported spans, so I chose to keep the spans by using `//~v ERROR`.
2025-03-30Merge pull request #2288 from rust-lang/tshepang-known-bug-takes-args许杰友 Jieyou Xu (Joe)-0/+8
mention that known-bug test directive takes arguments
2025-03-29mention that know-bug test directive takes argumentsTshepang Mbambo-0/+8
2025-03-29Fix debug sourceFileMap when using cppvsdbgInflation-1/+1
- Fix #18782
2025-03-29Rollup merge of #138692 - jieyouxu:reject-bool-lit-rev-names, r=wesleywiserMatthias Krüger-8/+35
Reject `{true,false}` as revision names Because they would imply `--cfg={true,false}` otherwise, and the test writer has to use `cfg(r#true)` and `cfg(r#false)` in the test. Closes #138663.
2025-03-29compiletest: Support matching diagnostics on lines belowVadim Petrochenkov-1/+22
2025-03-29fix: Fix, clarify and require a value for `proc_macro_cwd` of `CrateData`Lukas Wirth-74/+143
2025-03-29Auto merge of #139074 - BoxyUwU:bump_1_88, r=BoxyUwUbors-1/+1
Bump to 1.88 https://forge.rust-lang.org/release/process.html#bump-the-stable-version-number-friday-the-week-before r? ghost
2025-03-29Auto merge of #138784 - madsmtm:bootstrap-bump-cc-cmake, r=jieyouxubors-13/+44
Bump boostrap `cc` to 1.2.17 and `cmake` to 0.1.54 The `cc` version in `bootstrap` was reverted down to 1.1.22 in https://github.com/rust-lang/rust/pull/137460 (previously at 1.2.0). The offending issue has since then been resolved in https://github.com/rust-lang/cc-rs/pull/1413, and a new version of `cc` has been released in https://github.com/rust-lang/cc-rs/pull/1435, so let's try to update the version again. See [the `cc-rs` changelog](https://github.com/rust-lang/cc-rs/blob/d9dd20e376368c7535f6ef89b809098f5f203c1a/CHANGELOG.md) and [the `cmake-rs` changelog](https://github.com/rust-lang/cmake-rs/blob/fd56c5a6b4ecda8815c863eb5b12d7b3f0391197/CHANGELOG.md) for details on what has changed here. r? jieyouxu who tried this last in https://github.com/rust-lang/rust/pull/137022. `@rustbot` label T-bootstrap try-job: *apple*
2025-03-28bootstrap: Avoid cloning change-id listThalia Archibald-15/+11
2025-03-28Rollup merge of #139065 - RalfJung:miri-sync, r=RalfJungMatthias Krüger-66/+231
Miri subtree update r? `@ghost`
2025-03-28Fix trivial typo of `BoundVariableKind`Samuel Tardieu-1/+1
2025-03-28Bump to 1.88.0Boxy-1/+1
2025-03-28Fix code generation linkSantiago Pastorino-1/+1
2025-03-28Merge pull request #4242 from RalfJung/clock-namesRalf Jung-30/+34
machine clock: make 'monotonic' explicit
2025-03-28machine clock: make 'monotonic' explicitRalf Jung-30/+34
2025-03-28Rollup merge of #139045 - onur-ozkan:less-verbose-bootstrap-test, r=KobzolMatthias Krüger-1/+1
bootstrap: update `test_find` test `cc::Build::get_archiver` is noisy on the `arm-linux-androideabi` target and constantly printing `llvm-ar --version` output during bootstrap tests on all platforms.
2025-03-28Rollup merge of #139038 - adamgreig:thumb-target-maintainers, r=NoratriebMatthias Krüger-10/+5
Update target maintainers for thumb targets to reflect new REWG Arm team name Closes #139027 The name of the team responsible for these targets has changed as the team was merged with other Arm-related teams (see https://github.com/rust-embedded/wg/pull/818). The link gives an up-to-date list of github usernames that can be pinged, whereas the old email address is not very actively maintained or tracked.
2025-03-28Rollup merge of #138986 - Shourya742:2025-03-25-add-ignore-to-change-id, ↵Matthias Krüger-48/+79
r=Kobzol feat(config): Add ChangeId enum for suppressing warnings closes: #138925
2025-03-28Rollup merge of #138678 - durin42:rmeta-stability, r=fmeaseMatthias Krüger-1/+2
rustc_resolve: fix instability in lib.rmeta contents rust-lang/rust@23032f31c91f2 accidentally introduced some nondeterminism in the ordering of lib.rmeta files, which we caught in our bazel-based builds only recently due to being further behind than normal. In my testing, this fixes the issue.
2025-03-28Rollup merge of #138104 - GuillaumeGomez:simplify-doctest-parsing, r=fmeaseMatthias Krüger-357/+267
Greatly simplify doctest parsing and information extraction The original process was pretty terrible, as it tried to extract information such as attributes by performing matches over tokens like `#!`, which doesn't work very well considering you can have `# ! [`, which is valid. Also, it now does it in one pass: if the parser is happy, then we try to extract information, otherwise we return early. r? `@fmease`
2025-03-28cache mangle_internal_symbol resultsRalf Jung-33/+40
2025-03-28update testHegui Dai-22/+22
2025-03-28move "impl<> for <>" and test about itHegui Dai-27/+0
2025-03-28Merge pull request #19375 from ChayimFriedman2/do-not-completeLukas Wirth-291/+768
feat: Allow crate authors to control completion of their things
2025-03-28bootstrap: update `test_find` testonur-ozkan-1/+1
`cc::Build::get_archiver` is noisy on the `arm-linux-androideabi` target and constantly printing `llvm-ar --version` output during bootstrap tests on all platforms. Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-28bootstrap: Update download-ci-llvm-stampMads Marquart-1/+1
This PR makes a fairly large version update to CMake and cc, so it is likely that LLVM is built differently.
2025-03-28bootstrap: Override CMAKE_OSX_SYSROOT when building compiler-rtMads Marquart-3/+4
Similarly to what was previously done for the `llvm` step.
2025-03-28bootstrap: Set CMAKE_SYSTEM_NAME=Darwin on Apple platformsMads Marquart-0/+8
compiler-rt's CMake setup seems to have special logic for Apple platforms that works poorly when this is not set.
2025-03-28bootstrap: Fix CMAKE_OSX_ARCHITECTURES on all Apple platformsMads Marquart-1/+1
2025-03-28bootstrap: Always set CMAKE_SYSTEM_NAME when cross-compilingMads Marquart-0/+24
To avoid a panic in cmake-rs that was introduced in: https://github.com/rust-lang/cmake-rs/pull/158
2025-03-28bootstrap: bump cc to 1.2.17 and cmake to 0.1.54Mads Marquart-8/+6
2025-03-28Add new change-id option in bootstrap.example.toml and update the change-id ↵bit-aloo-4/+8
description references
2025-03-28Fix a bug in orphan rules calculationChayim Refael Friedman-12/+30
Where a fundamental type applied twice wasn't considered local.