| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
This mostly consists of handling potentially-null input and adding
more global functions to the list of globals.
|
|
|
|
|
|
|
|
fix: try to infer array type from slice pattern
|
|
fix: Fix some mir eval/lowerings
|
|
|
|
Do not use make use of `InferenceResult::has_errors` flag for mir building
|
|
|
|
It generaly does not work as expected right now as we fallback type parameters to errors
|
|
And apply requested changes
|
|
|
|
|
|
|
|
r=jieyouxu
override default config profile on tarballs
This is the same logic used in the Python script https://github.com/rust-lang/rust/blob/613bdd49978298648ed05ace086bd1ecad54b44a/src/bootstrap/bootstrap.py#L1273-L1274
|
|
[`compiletest`-related cleanups 1/7] Cleanup `is_rustdoc` logic and remove a useless path join in rustdoc-json runtest logic
Reference for overall changes: https://github.com/rust-lang/rust/pull/136437
Part **1** of **7** of the *`compiletest`-related cleanups* PR series.
### Summary
- Don't match on path when we already have test suite names.
- Remove a useless path join.
r? bootstrap (or compiler)
|
|
miri: improve error when offset_from preconditions are violated
Fixes https://github.com/rust-lang/miri/issues/4143
|
|
r=Noratrieb,jieyouxu
Remove a footgun-y feature / relic of the past from the compiletest DSL
The compiletest DSL still features a historical remnant from the time when its directives were merely prefixed with `//` instead of `//`@`` when unknown directive names weren't rejected since they could just as well be part of prose:
As an "optimization", it stops looking for directives once it stumbles upon a line which starts with either `fn` or `mod`. This is super footgun-y as it obviously leads to any seeming compiletest directives below `fn` and `mod` items getting completely ignored.
See #136403 for a practical example. As well the assembly test updated in this PR.
~~Blocked on #136403.~~ (merged)
|
|
|
|
Fix scip indexing of module names
|
|
|
|
patterns
|
|
Notably, this avoids having to do hacky string splitting based on
`--stage-id`.
|
|
|
|
Target modifiers (special marked options) are recorded in metainfo
Target modifiers (special marked options) are recorded in metainfo and compared to be equal in different linked crates.
PR for this RFC: https://github.com/rust-lang/rfcs/pull/3716
Option may be marked as `TARGET_MODIFIER`, example: `regparm: Option<u32> = (None, parse_opt_number, [TRACKED TARGET_MODIFIER]`.
If an TARGET_MODIFIER-marked option has non-default value, it will be recorded in crate metainfo as a `Vec<TargetModifier>`:
```
pub struct TargetModifier {
pub opt: OptionsTargetModifiers,
pub value_name: String,
}
```
OptionsTargetModifiers is a macro-generated enum.
Option value code (for comparison) is generated using `Debug` trait.
Error example:
```
error: mixing `-Zregparm` will cause an ABI mismatch in crate `incompatible_regparm`
--> $DIR/incompatible_regparm.rs:10:1
|
LL | #![crate_type = "lib"]
| ^
|
= help: the `-Zregparm` flag modifies the ABI so Rust crates compiled with different values of this flag cannot be used together safely
= note: `-Zregparm=1` in this crate is incompatible with `-Zregparm=2` in dependency `wrong_regparm`
= help: set `-Zregparm=2` in this crate or `-Zregparm=1` in `wrong_regparm`
= help: if you are sure this will not cause problems, use `-Cunsafe-allow-abi-mismatch=regparm` to silence this error
error: aborting due to 1 previous error
```
`-Cunsafe-allow-abi-mismatch=regparm,reg-struct-return` to disable list of flags.
|
|
This is the same logic used in the Python script https://github.com/rust-lang/rust/blob/613bdd49978298648ed05ace086bd1ecad54b44a/src/bootstrap/bootstrap.py#L1273-L1274
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
|
|
|
|
|
|
|
|
|
|
Miri subtree update
r? `@ghost`
Unblocks https://github.com/rust-lang/rust/pull/122408 from the Miri side
|
|
Couple of cleanups to DiagCtxt and EarlyDiagCtxt
|
|
CompileTest: Add Directives to Ignore `arm-unknown-*` Targets
In #134626, I want to ignore `arm-unknown-*` targets because the LLVM IR for those looks very different compared to other targets: https://rust.godbolt.org/z/ssYMhdv4x.
I can use `ignore-arm` but, I think, it would exclude large number of Apple devices.
So this PR adds a few directives to ignore `arm-unknown-*` targets specifically.
|
|
shim Apple's futex primitives
|
|
This is necessary to unblock rust-lang/rust#122408. The documentation for these is available [here](https://developer.apple.com/documentation/os/os_sync_wait_on_address?language=objc).
Because the futex wait operations (`os_sync_wait_on_address` et al.) return the number of remaining waiters after returning, this required some changes to the common futex infrastructure, which I've changed to take a callback instead of precalculating the return values.
|
|
miri_get_backtrace: stop supporting the v0 protocol
|
|
Rollup of 7 pull requests
Successful merges:
- #134272 (Remove rustc_encodable_decodable feature)
- #136283 (Update encode_utf16 to mention it is native endian)
- #136394 (Clean up MonoItem::instantiation_mode)
- #136402 (diagnostics: fix borrowck suggestions for if/while let conditionals)
- #136415 (Highlight clarifying information in "expected/found" error)
- #136422 (Convert two `rustc_middle::lint` functions to `Span` methods.)
- #136434 (rustc_allowed_through_unstable_modules: require deprecation message)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
RalfJung:rustc_allowed_through_unstable_modules-deprecation-required, r=compiler-errors
rustc_allowed_through_unstable_modules: require deprecation message
This changes the `#[rustc_allowed_through_unstable_modules]` attribute so that a deprecation message (ideally directing people towards the stable path) is required.
|
|
Convert two `rustc_middle::lint` functions to `Span` methods.
`rustc_middle` is a huge crate and it's always good to move stuff out of it. There are lots of similar methods already on `Span`, so these two functions, `in_external_macro` and `is_from_async_await`, fit right in. The diff is big because `in_external_macro` is used a lot by clippy lints.
r? ``@Noratrieb``
|
|
'dest' directly
|
|
'dest' directly
|
|
Update cargo
12 commits in cecde95c119a456c30e57d3e4b31fff5a7d83df4..0e3d73849ab8cbbab3ec5c65cbd555586cb21339
2025-01-24 17:15:24 +0000 to 2025-02-01 20:14:40 +0000
- Revert "Conditionally mark the `test` cfg as a well known cfg (rust-lang/cargo#15007)" (rust-lang/cargo#15132)
- Don't suggest `cargo login` when using incompatible credental providers (rust-lang/cargo#15124)
- chore: Update clap_complete (rust-lang/cargo#15121)
- Move the changelog to the cargo book (rust-lang/cargo#15119)
- Conditionally mark the `test` cfg as a well known cfg (rust-lang/cargo#15007)
- fix broken links in the Cargo book (rust-lang/cargo#15109)
- Fix a typo and touch up documentation (rust-lang/cargo#15108)
- Fix shared_std_dependency_rebuild running on Windows (rust-lang/cargo#15111)
- Fix warnings on Windows (rust-lang/cargo#15112)
- fix(login): Deprecate CLI token (rust-lang/cargo#15057)
- Update tests to fix nightly errors (rust-lang/cargo#15110)
- Fix comment on Ord for SourceId (rust-lang/cargo#15103)
|
|
Replacing the error emitter doesn't accidentally clear the error count.
|
|
All callers of EarlyDiagCtxt::early_error now emit a fatal error.
|
|
|
|
|
|
All callers of EarlyDiagCtxt::early_error now emit a fatal error.
|