about summary refs log tree commit diff
path: root/tests
AgeCommit message (Collapse)AuthorLines
2024-09-18Auto merge of #130500 - matthiaskrgr:rollup-lfx3bb4, r=matthiaskrgrbors-3/+116
Rollup of 3 pull requests Successful merges: - #130466 (tests: add repr/transparent test for aarch64) - #130468 (Make sure that def id <=> lang item map is bidirectional) - #130499 (Add myself to the libs review rotation) r? `@ghost` `@rustbot` modify labels: rollup
2024-09-18Rollup merge of #130466 - davidtwco:aarch64-transparent-test, r=jieyouxuMatthias Krüger-3/+116
tests: add repr/transparent test for aarch64 Fixes #74396. Moves `transparent-struct-ptr.rs` to `transparent-byval-struct-ptr.rs` and then adds a new `transparent-opaque-ptr.rs` for aarch64.
2024-09-18Auto merge of #130498 - matthiaskrgr:rollup-tg4d0zi, r=matthiaskrgrbors-16/+139
Rollup of 4 pull requests Successful merges: - #130116 (Implement a Method to Seal `DiagInner`'s Suggestions) - #130489 (Ensure that `keyword_ident` lint doesn't trigger on `'r#kw` lifetime) - #130491 (more crash tests) - #130496 (Fix circular fn_sig queries to correct number of args for methods) r? `@ghost` `@rustbot` modify labels: rollup
2024-09-18Rollup merge of #130496 - jder:issue-130400, r=compiler-errorsMatthias Krüger-0/+34
Fix circular fn_sig queries to correct number of args for methods Fixes #130400. This was a [debug assert](https://github.com/rust-lang/rust/blob/28e8f01c2a2f33fb4214925a704e3223b372cad5/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs#L2557) added to some argument error reporting code in #129320 which verified that the number of params (from the HIR) matched the `matched_inputs` which ultimately come from ty::FnSig. In the reduced test case: ``` fn foo(&mut self) -> _ { foo() } ``` There is a circular dependency computing the ty::FnSig -- when trying to compute it, we try to figure out the return value, which again depends on this ty::FnSig. In #105162, this was supported by short-circuiting the cycle by synthesizing a FnSig with error types for parameters. The [code in question](https://github.com/rust-lang/rust/pull/105162/files#diff-a65feec6bfffb19fbdc60a80becd1030c82a56c16b177182cd277478fdb04592R44) computes the number of parameters by taking the number of parameters from the hir::FnDecl and adding 1 if there is an implicit self parameter. I might be missing a subtlety here, but AFAICT the adjustment for implicit self args is unnecessary and results in one too many args. For example, for this non-errorful code: ``` trait Foo { fn bar(&self) {} } ``` The resulting hir::FnDecl and ty::FnSig both have the same number of inputs -- 1. So, this PR removes that adjustment and adds a test for the debug ICE. r? `@compiler-errors`
2024-09-18Rollup merge of #130491 - matthiaskrgr:sehsarc, r=compiler-errorsMatthias Krüger-0/+97
more crash tests r? `@compiler-errors`
2024-09-18Rollup merge of #130489 - compiler-errors:raw-lt-lint, r=jieyouxuMatthias Krüger-0/+8
Ensure that `keyword_ident` lint doesn't trigger on `'r#kw` lifetime Fixes #130486
2024-09-18Rollup merge of #130116 - veera-sivarajan:freeze-suggestions, r=chenyukangMatthias Krüger-16/+0
Implement a Method to Seal `DiagInner`'s Suggestions This PR adds a method on `DiagInner` called `.seal_suggestions()` to prevent new suggestions from being added while preserving existing suggestions. This is useful because currently there is no way to prevent new suggestions from being added to a diagnostic. `.disable_suggestions()` is the closest but it gets rid of all suggestions before and after the call. Therefore, `.seal_suggestions()` can be used when, for example, misspelled keyword is detected and reported. In such cases, we may want to prevent other suggestions from being added to the diagnostic, as they would likely be meaningless once the misspelled keyword is identified. For context: https://github.com/rust-lang/rust/pull/129899#discussion_r1741307132 To store an additional state, the type of the `suggestions` field in `DiagInner` was changed into a three variant enum. While this change affects files across different crates, care was taken to preserve the existing code's semantics. This is validated by the fact that all UI tests pass without any modifications. r? chenyukang
2024-09-18Auto merge of #130454 - durin42:llvm-20-notrunc, r=workingjubileebors-5/+8
tests: allow trunc/select instructions to be missing On LLVM 20, these instructions already get eliminated, which at least partially satisfies a TODO. I'm not talented enough at using FileCheck to try and constrain this further, but if we really want to we could copy an LLVM 20 specific version of this test that would restore it to being CHECK-NEXT: insertvalue ... `@rustbot` label: +llvm-main r? `@DianQK`
2024-09-17Fix circular fn_sig queries to return the correct number of arguments for ↵Jesse Rusak-0/+34
methods
2024-09-18Rollup merge of #130482 - spastorino:remove-known-bug-97156, r=jackh726Matthias Krüger-81/+0
Remove redundant test typeid equality by subtyping This known-bug label was a left over on #118247 r? `@jackh726` This doesn't address #110395, I didn't investigate about it yet.
2024-09-18more crash testsMatthias Krüger-0/+97
2024-09-17Store raw ident span for raw lifetimeMichael Goulet-0/+8
2024-09-17Auto merge of #130483 - matthiaskrgr:rollup-q1r0g0y, r=matthiaskrgrbors-1/+32
Rollup of 5 pull requests Successful merges: - #129477 (Fix fluent diagnostics) - #129674 (Add new_cyclic_in for Rc and Arc) - #130452 (Update Trusty target maintainers) - #130467 (Miri subtree update) - #130477 (Revert #129749 to fix segfault in LLVM) r? `@ghost` `@rustbot` modify labels: rollup
2024-09-17Rollup merge of #129477 - Xiretza:fix-fluent-diagnostics, r=compiler-errorsMatthias Krüger-1/+32
Fix fluent diagnostics This line number calculation was both wrong and unnecessary.
2024-09-17Remove redundant test typeid equality by subtypingSantiago Pastorino-81/+0
2024-09-17Rollup merge of #130440 - compiler-errors:rpitit-opaque-hidden, r=jieyouxuMatthias Krüger-0/+16
Don't ICE in `opaque_hidden_inferred_bound` lint for RPITIT in trait with no default method body Inline comment should explain the fix. Fixes #130422
2024-09-17Rollup merge of #130275 - compiler-errors:extern-crate, r=lcnrMatthias Krüger-0/+39
Don't call `extern_crate` when local crate name is the same as a dependency and we have a trait error #124944 implemented logic to point out when a trait bound failure involves a *trait* and *type* who come from identically named but different crates. This logic calls the `extern_crate` query which is not valid on `LOCAL_CRATE` cnum, so let's filter that out eagerly. Fixes #130272 Fixes #129184
2024-09-17Rollup merge of #130201 - compiler-errors:foreign-synthetic-body, r=lcnrMatthias Krüger-0/+39
Encode `coroutine_by_move_body_def_id` in crate metadata We synthesize the MIR for a by-move body for the `FnOnce` implementation of async closures. It can be accessed with the `coroutine_by_move_body_def_id` query. We weren't encoding this query in the metadata though, nor were we properly recording that synthetic MIR in `mir_keys`, so the `optimized_mir` wasn't getting encoded either! Stacked on top is a fix to consider `DefKind::SyntheticCoroutineBody` to return true in several places I missed. Specifically, we should consider the def-kind in `fn DefKind::is_fn_like()`, since that's what we were using to make sure we ensure `query mir_inliner_callees` before the MIR gets stolen for the body. This led to some CI failures that were caught by miri but which I added a test for.
2024-09-17Rollup merge of #129988 - arnaudgolfouse:modify-locale_resources, r=davidtwcoMatthias Krüger-1/+1
Use `Vec` in `rustc_interface::Config::locale_resources` This allows a third-party tool to injects its own resources, when receiving the config via `rustc_driver::Callbacks::config`.
2024-09-17Rollup merge of #128961 - GKFX:issue-128930-explain-missing-option, r=jieyouxuMatthias Krüger-0/+9
Fix #128930: Print documentation of CLI options missing their arg Fix #128930. Failing to give an argument to CLI options which require it now prints something like: ``` $ rustc --print error: Argument to option 'print' missing Usage: --print [crate-name|file-names|sysroot|target-libdir|cfg|check-cfg|calling-conventions|target-list|target-cpus|target-features|relocation-models|code-models|tls-models|target-spec-json|all-target-specs-json|native-static-libs|stack-protector-strategies|link-args|deployment-target] Compiler information to print on stdout ```
2024-09-17fluent_macro: fix diagnostics for fluent parse failuresXiretza-5/+5
This line number calculation was both wrong and unnecessary.
2024-09-17Add test for fluent diagnosticsXiretza-1/+32
2024-09-17tests: allow trunc/select instructions to be missingAugie Fackler-5/+8
On LLVM 20, these instructions already get eliminated, which at least partially satisfies a TODO. I'm not talented enough at using FileCheck to try and constrain this further, but if we really want to we could copy an LLVM 20 specific version of this test that would restore it to being CHECK-NEXT: insertvalue ... @rustbot label: +llvm-main
2024-09-17Auto merge of #129073 - compiler-errors:receiver-variance, r=lcnrbors-50/+117
Relate receiver invariantly in method probe for `Mode::Path` Effectively reverts part of #126128 Fixes #126227 This PR changes method probing to use equality for fully path-based method lookup, and subtyping for receiver `.` method lookup. r? lcnr
2024-09-17tests: add repr/transparent test for aarch64David Wood-3/+116
Moves `transparent-struct-ptr.rs` to `transparent-byval-struct-ptr.rs` and then adds a new `transparent-opaque-ptr.rs` for aarch64.
2024-09-17Auto merge of #130455 - compiler-errors:inline-ordering, r=saethlinbors-62/+4
Remove semi-nondeterminism of `DefPathHash` ordering from inliner Déjà vu or something because I kinda thought I had put this PR up before. I recall a discussion somewhere where I think it was `@saethlin` mentioning that this check was no longer needed since we have "proper" cycle detection. Putting that up as a PR now. This may slighlty negatively affect inlining, since the cycle breaking here means that we still inlined some cycles when the def path hashes were ordered in certain ways, this leads to really bad nondeterminism that makes minimizing ICEs and putting up inliner bugfixes difficult. r? `@cjgillot` or `@saethlin` or someone else idk
2024-09-17Auto merge of #130456 - matthiaskrgr:rollup-h2qvk1f, r=matthiaskrgrbors-30/+28
Rollup of 4 pull requests Successful merges: - #130380 (coverage: Clarify some parts of coverage counter creation) - #130427 (run_make_support: rectify symlink handling) - #130447 (rustc_llvm: update for llvm/llvm-project@2ae968a0d9fb61606b020e898d88…) - #130448 (fix: Remove duplicate `LazyLock` example.) r? `@ghost` `@rustbot` modify labels: rollup
2024-09-16Fix a couple more DefKind discrepancies between DefKind::Closure and ↵Michael Goulet-0/+34
DefKind::SyntheticCoroutineBody
2024-09-17Rollup merge of #130427 - jieyouxu:rmake-symlink, r=KobzolMatthias Krüger-30/+28
run_make_support: rectify symlink handling Avoid confusing Unix symlinks and Windows symlinks. Since their semantics are quite different, we should avoid trying to make it automagic in how symlinks are created and deleted. Notably, the tests should reflect what type of symlinks are to be created to match what std does to make it less surprising for test readers.
2024-09-16Remove semi-nondeterminism of DefPathHash ordering from inlinerMichael Goulet-62/+4
2024-09-17Auto merge of #129970 - lukas-code:LayoutCalculator, r=compiler-errorsbors-47/+149
layout computation: gracefully handle unsized types in unexpected locations This PR reworks the layout computation to eagerly return an error when encountering an unsized field where a sized field was expected, rather than delaying a bug and attempting to recover a layout. This is required, because with trivially false where clauses like `[T]: Sized`, any field can possible be an unsized type, without causing a compile error. Since this PR removes the `delayed_bug` method from the `LayoutCalculator` trait, it essentially becomes the same as the `HasDataLayout` trait, so I've also refactored the `LayoutCalculator` to be a simple wrapper struct around a type that implements `HasDataLayout`. The majority of the diff is whitespace changes, so viewing with whitespace ignored is advised. implements https://github.com/rust-lang/rust/pull/123169#issuecomment-2025788480 r? `@compiler-errors` or compiler fixes https://github.com/rust-lang/rust/issues/123134 fixes https://github.com/rust-lang/rust/issues/124182 fixes https://github.com/rust-lang/rust/issues/126939 fixes https://github.com/rust-lang/rust/issues/127737
2024-09-16Encode coroutine_by_move_body_def_id in crate metadataMichael Goulet-0/+5
2024-09-17get rid of an old hackLukas Markeffsky-13/+45
For structs that cannot be unsized, the layout algorithm sometimes moves unsized fields to the end of the struct, which circumvented the error for unexpected unsized fields and returned an unsized layout anyway. This commit makes it so that the unexpected unsized error is always returned for structs that cannot be unsized, allowing us to remove an old hack and fixing some old ICE.
2024-09-16Auto merge of #130444 - matthiaskrgr:rollup-onlrjva, r=matthiaskrgrbors-27/+96
Rollup of 3 pull requests Successful merges: - #130033 (Don't call `fn_arg_names` query for non-`fn` foreign items in resolver) - #130282 (Do not report an excessive number of overflow errors for an ever-growing deref impl) - #130437 (Avoid crashing on variadic functions when producing arg-mismatch errors) r? `@ghost` `@rustbot` modify labels: rollup
2024-09-16Rollup merge of #130437 - jder:issue-130372, r=compiler-errorsMatthias Krüger-27/+31
Avoid crashing on variadic functions when producing arg-mismatch errors Fixes #130372 by accommodating how variadic functions change the argument list length between HIR body and FnDecls. Also degrades the zip_eq to a debug_assert! to match other asserts in the area to avoid being disruptive to users. There is at least one other crash in this area I am working on in #130400 and also considering how we might refactor some of this code to hoist some of this logic up higher. r? `@compiler-errors`
2024-09-16Rollup merge of #130282 - compiler-errors:over-overflow, r=BoxyUwUMatthias Krüger-0/+37
Do not report an excessive number of overflow errors for an ever-growing deref impl Check that we don't first hit the recursion limit in `get_field_candidates_considering_privacy` before probing for methods when we have a method lookup failure and we want to see if `.field.method()` exists. We also silence overflow error messages if we're probing for methods for diagnostics. Also renames some functions to make it clearer that they're only for diagnostics, and sprinkle some `Autoderef::silence_errors` around to silence unnecessary overflow errors that come from diagnostics. Fixes #130224.
2024-09-16Rollup merge of #130033 - compiler-errors:foreign-fn-types, r=BoxyUwUMatthias Krüger-0/+28
Don't call `fn_arg_names` query for non-`fn` foreign items in resolver Fixes #130015
2024-09-16Avoid crashing on variadic functions when producing arg-mismatch errorsJesse Rusak-27/+31
2024-09-16Auto merge of #130439 - matthiaskrgr:rollup-1lkzo74, r=matthiaskrgrbors-10/+84
Rollup of 4 pull requests Successful merges: - #123436 (linker: Allow MSVC to use import libraries following the Meson/MinGW convention) - #130410 (Don't ICE when generating `Fn` shim for async closure with borrowck error) - #130412 (Don't ICE when RPITIT captures more method args than trait definition) - #130436 (Ignore reduce-fadd-unordered on SGX platform) r? `@ghost` `@rustbot` modify labels: rollup
2024-09-16Don't ICE in opaque_hidden_inferred_bound lint for RPITIT in trait with no ↵Michael Goulet-0/+16
default method body
2024-09-16Rollup merge of #130436 - fortanix:raoul/fix_reduce_add_unordered_test, ↵Matthias Krüger-0/+1
r=RalfJung Ignore reduce-fadd-unordered on SGX platform #130325 added the `tests/assembly/simd/reduce-fadd-unordered.rs` test. Unfortunately, the use of `CHECK: ret` makes that this test is not compatible with LVI mitigations applied for the SGX target. This PR makes sure this test is ignored for the SGX target, until a nicer solution is available.
2024-09-16Rollup merge of #130412 - compiler-errors:rpitit-overcapture, r=jieyouxuMatthias Krüger-9/+58
Don't ICE when RPITIT captures more method args than trait definition Make sure we don't ICE when an RPITIT captures more method args than the trait definition, which is not allowed. This was because we were using the wrong def id for error reporting. Due to the default lifetime capture rules of RPITITs (capturing everything in scope), this is only doable if we use precise capturing, which isn't currently allowed for RPITITs anyways but we still end up reaching the relevant codepaths. Fixes #129850
2024-09-16Don't ICE when generating Fn shim for async closure with borrowck errorMichael Goulet-1/+25
2024-09-16Don't ICE when RPITIT captures more method args than trait definitionMichael Goulet-9/+58
2024-09-16Introduce distinct error codes for precise capturingMichael Goulet-5/+31
2024-09-16Do precise capturing arg validation in resolveMichael Goulet-18/+22
2024-09-16Relate receiver invariantly in method probe for Mode::PathMichael Goulet-50/+117
2024-09-16Ignore reduce-fadd-unordered on SGX platformRaoul Strackx-0/+1
2024-09-16layout computation: eagerly error for unexpected unsized fieldsLukas Markeffsky-38/+108
2024-09-16tests/run-make: update for symlink helper changes许杰友 Jieyou Xu (Joe)-30/+28