| Age | Commit message (Collapse) | Author | Lines |
|
interpret: clean up deduplicating allocation functions
The "align" and "kind" arguments would be largely ignored in the "dedup" case, so let's move that to entirely separate function.
Let's also remove support for old-style miri_resolve_frame while we are at it. The docs have already said for a while that this must be set to 1.
|
|
bootstrap: print{ln}! -> eprint{ln}! (take 2)
r? `@jieyouxu`
Reland of #133817 with the `print!`s changed as well.
|
|
Move most tests for `-l` and `#[link(..)]` into `tests/ui/link-native-libs`
Tests for the closely-related `-l` flag and `#[link(..)]` attribute are spread across a few different directories, and in some cases have ended up in a test directory intended for other linker-related functionality.
This PR moves most of them into a single `tests/ui/link-native-libs` directory.
---
Part of #133895.
try-job: i686-mingw
r? jieyouxu
|
|
Initial implementation of `#[feature(default_field_values]`, proposed in https://github.com/rust-lang/rfcs/pull/3681.
Support default fields in enum struct variant
Allow default values in an enum struct variant definition:
```rust
pub enum Bar {
Foo {
bar: S = S,
baz: i32 = 42 + 3,
}
}
```
Allow using `..` without a base on an enum struct variant
```rust
Bar::Foo { .. }
```
`#[derive(Default)]` doesn't account for these as it is still gating `#[default]` only being allowed on unit variants.
Support `#[derive(Default)]` on enum struct variants with all defaulted fields
```rust
pub enum Bar {
#[default]
Foo {
bar: S = S,
baz: i32 = 42 + 3,
}
}
```
Check for missing fields in typeck instead of mir_build.
Expand test with `const` param case (needs `generic_const_exprs` enabled).
Properly instantiate MIR const
The following works:
```rust
struct S<A> {
a: Vec<A> = Vec::new(),
}
S::<i32> { .. }
```
Add lint for default fields that will always fail const-eval
We *allow* this to happen for API writers that might want to rely on users'
getting a compile error when using the default field, different to the error
that they would get when the field isn't default. We could change this to
*always* error instead of being a lint, if we wanted.
This will *not* catch errors for partially evaluated consts, like when the
expression relies on a const parameter.
Suggestions when encountering `Foo { .. }` without `#[feature(default_field_values)]`:
- Suggest adding a base expression if there are missing fields.
- Suggest enabling the feature if all the missing fields have optional values.
- Suggest removing `..` if there are no missing fields.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
|
|
internal: Disable pipe on typing handler
|
|
|
|
|
|
|
|
fix: Non-exhaustive structs may be empty
|
|
|
|
|
|
Co-authored-by: Jieyou Xu <jieyouxu@outlook.com>
|
|
|
|
Remove patch sysroot cfg-if hack
|
|
internal: Rename test fixture crates to ra_test_fixture
|
|
|
|
|
|
) add COPYRIGHT*.html files to the rustc binary distribution
) add contents of LICENSE folder to dist tarballs, because some of our in-tree licences will require that the license text is reproduced.
) The wording of COPYRIGHT is adjusted to not include license text (`reuse` ensures that it's in the LICENSE folder)
) A blanket copyright notice is added to LICENCE-MIT as required by the text.
The general approach is that the license statements are now compiled using a tool in CI (generate-copyright), and you get either:
* the source code (COPYRIGHT, LICENCE-APACHE, LICENCE-MIT, REUSE.toml and the LICENCES folder), or
* the compiled version (COPYRIGHT.html, COPYRIGHT-library.html and the LICENCES folder).
|
|
|
|
internal: Do not cache the config directory path
|
|
|
|
minor: Fix a test that didn't test what it should
|
|
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #133567 (A bunch of cleanups)
- #133789 (Add doc alias 'then_with' for `then` method on `bool`)
- #133880 (Expand home_dir docs)
- #134036 (crash tests: use individual mir opts instead of mir-opt-level where easily possible)
- #134045 (Fix some triagebot mentions paths)
- #134046 (Remove ignored tests for hangs w/ new solver)
- #134050 (Miri subtree update)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Miri subtree update
r? `@ghost`
|
|
Remove ignored tests for hangs w/ new solver
As asked on zulip [here](https://rust-lang.zulipchat.com/#narrow/channel/364551-t-types.2Ftrait-system-refactor/topic/needs_help.3A.20look.20through.20compare-mode.20hangs).
As far as I can tell there are no more UI tests that hang anymore, so this removes the ignore directives for the compare mode.
(As I was using `--compare-mode new-solver` and that failed in an obscure way without any info about what to do, I've also fixed its error handling in `compiletest`: it didn't show the invalid `--compare-mode`, nor the valid values one can pass).
r? lcnr
|
|
A bunch of cleanups
These are all extracted from a branch I have to get rid of driver queries. Most of the commits are not directly necessary for this, but were found in the process of implementing the removal of driver queries.
Previous PR: https://github.com/rust-lang/rust/pull/132410
|
|
Rollup of 7 pull requests
Successful merges:
- #133424 (Parse guard patterns)
- #133733 ( compiletest: show the difference between the normalized output and the actual output for lines which didn't match)
- #133993 (Fix: typo in E0751 error explanation)
- #134013 (Adds new intrinsic declaration)
- #134020 (Remove unnecessary `int_type_width_signed` function)
- #134024 (Advent of `tests/ui` (misc cleanups and improvements) [2/N])
- #134038 (deps: Update psm)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
- show the erroneous value
- show the valid values
|
|
Don't use a SyntheticProvider for literally every type
Replaces a glob regex with individualized imports for each standard library type. This improves debugger performance by quite a bit when populating lots of values with lots of fields
With the glob, afaik every single value of every single type that the debugger renders is run through a python function that does quite a few string comparisons (i plan to fix those next) to determine the SyntheticProvider to use. It looks like DefaultSyntheticProvider's functions internally call the liblldb c++ functions, which ends up with identical behavior to not using a SyntheticProvider at all, except you have extra python round trips slowing things down.
These sample vidoes were run on x86-64-pc-windows-gnu. `vect` is a 1000 element `Vec<Big>`, `Big` contains a dozen or so `Small`, and `Small` contains a dozen or so `[i32; 5]`
Before:
https://github.com/user-attachments/assets/07c31fe7-e126-4c2e-8ae9-cfe36e351d3f
After:
https://github.com/user-attachments/assets/6c0d1a45-1ffe-46de-95a0-5dbe59a173b5
---
try-job: aarch64-apple
|
|
|
|
compiletest: show the difference between the normalized output and the actual output for lines which didn't match
example output:
```
failures:
---- [ui] tests/ui/layout/enum.rs stdout ----
diff of stderr:
- error: align: AbiAndPrefAlign { abi: Align(2 bytes), pref: $PREF_ALIGN }
+ error: align: AbiAndPrefAlign { abi: Align(2 bytes), pref: $PREF_ALIN }
2 --> $DIR/enum.rs:9:1
3 |
4 LL | enum UninhabitedVariantAlign {
Note: some mismatched output was normalized before being compared
- error: align: AbiAndPrefAlign { abi: Align(2 bytes), pref: Align(8 bytes) }
- --> /home/jyn/src/rust2/tests/ui/layout/enum.rs:9:1
+ error: align: AbiAndPrefAlign { abi: Align(2 bytes), pref: $PREF_ALIN }
```
|
|
Parse guard patterns
This implements the parsing of [RFC3637 Guard Patterns](https://rust-lang.github.io/rfcs/3637-guard-patterns.html) (see also [tracking issue](https://github.com/rust-lang/rust/issues/129967)). This PR is extracted from https://github.com/rust-lang/rust/pull/129996 with minor modifications.
cc `@max-niederman`
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
That is, fix the helper function and disable the tests for now.
|
|
|
|
fix: Coerce two `FnDef`s to fn pointers even if they are the same, if they are subtypes
|
|
|
|
|