about summary refs log tree commit diff
path: root/tests
AgeCommit message (Collapse)AuthorLines
2024-04-28try to fix tests on windows where the "file not found" error is different ↵Matthias Krüger-1/+1
from linux
2024-04-28add test for ice ↵Matthias Krüger-0/+91
expected-type-of-closure-body-to-be-a-closure-or-coroutine-ice-113776.stderr Fixes https://github.com/rust-lang/rust/issues/113776
2024-04-28add test for ice future has no bound vars.Matthias Krüger-0/+29
Fixes https://github.com/rust-lang/rust/issues/112347
2024-04-28add test for const generic ty's with lifetimes cause opaque types to ICEMatthias Krüger-0/+29
Fixes https://github.com/rust-lang/rust/issues/111911
2024-04-28add test for ICE failed to resolve instance for <[f32; 2] as CrossProductMatthias Krüger-0/+18
Fixes https://github.com/rust-lang/rust/issues/111667
2024-04-28add test for Inconsistent rustc_transmute::is_transmutable(...) result, got YesMatthias Krüger-0/+71
Fixes https://github.com/rust-lang/rust/issues/110969
2024-04-28add test for https://github.com/rust-lang/rust/issues/109812Matthias Krüger-0/+22
2024-04-28add test for ICE: tcx.resolutions(()) is not supported for local crate ↵Matthias Krüger-0/+17
-Zunpretty=mir on invalid module path with staged_ap Fixes https://github.com/rust-lang/rust/issues/108697
2024-04-28Rollup merge of #124165 - matthiaskrgr:slice-pattern-const-ice-incr, ↵Matthias Krüger-0/+39
r=Mark-Simulacrum add test for incremental ICE: slice-pattern-const.rs #83085 Fixes #83085
2024-04-27Rollup merge of #124425 - saethlin:ceci-nest-pas-une-ice, r=compiler-errorsMatthias Krüger-0/+52
Do not ICE on invalid consts when walking mono-reachable blocks The `bug!` here was written under the logic of "this condition is impossible, right?" except that of course, if the compiler is given code that results in an compile error, then the situation is possible. So now we just direct errors into the already-existing path for when we can't do a mono-time optimization.
2024-04-27Rollup merge of #124394 - gurry:123863-ice-unexpected-region, r=lcnrMatthias Krüger-6/+47
Fix ICE on invalid const param types Fixes ICE #123863 which occurs because the const param has a type which is not a `bool`, `char` or an integral type. The ICEing code path begins here in `typeck_with_fallback`: https://github.com/rust-lang/rust/blob/cb3752d20e0f5d24348062211102a08d46fbecff/compiler/rustc_hir_typeck/src/lib.rs#L167 The `fallback` invokes the `type_of` query and that eventually ends up calling `ct_infer` from the lowering code over here: https://github.com/rust-lang/rust/blob/cb3752d20e0f5d24348062211102a08d46fbecff/compiler/rustc_hir_analysis/src/hir_ty_lowering/mod.rs#L561 and `ct_infer` ICEs at this location: https://github.com/rust-lang/rust/blob/cb3752d20e0f5d24348062211102a08d46fbecff/compiler/rustc_hir_analysis/src/collect.rs#L392 To fix the ICE it I'm triggering a `span_delayed_bug` before we hit `ct_infer` if the type of the const param is not one of the supported types ### Edit On `@lcnr's` suggestion I've changed the approach to not let `ReStatic` region hit the `bug!` in `ct_infer` instead of triggering a `span_delayed_bug`.
2024-04-27Rollup merge of #124370 - ShE3py:substitution-part-offset, r=fee1-deadMatthias Krüger-1/+1
Fix substitution parts having a shifted underline in some cases If two suggestions parts are side by side, the underline's offset: (WIP PR as an example, not yet pushed) ``` error: expected a pattern, found an expression --> ./main.rs:4:9 | 4 | 1 + 2 => 3 | ^^^^^ arbitrary expressions are not allowed in patterns | help: check the value in an arm guard | 4 | n if n == 1 + 2 => 3 | ~ +++++++++++++ ``` The emitter didn't take into account that the string had shrunk/grown if two substitution parts were side-by-side (surprisingly, there was only one case in the ui testsuite.) ``` help: check the value in an arm guard | 4 | n if n == 1 + 2 => 3 | ~ +++++++++++++ ``` ``@rustbot`` label +A-suggestion-diagnostics
2024-04-27Rollup merge of #124427 - gurry:122191-unhandled-type, r=matthiaskrgrMatthias Krüger-0/+76
Add missing tests for an ICE Fixes #122191
2024-04-27Rollup merge of #124382 - petrochenkov:itemvisit, r=lcnrMatthias Krüger-22/+22
ast: Generalize item kind visiting And avoid duplicating logic for visiting `Item`s with different kinds (regular, associated, foreign). The diff is better viewed with whitespace ignored.
2024-04-27Add missing tests for an ICEGurinder Singh-0/+76
2024-04-27Fix ICE on invalid const param typesGurinder Singh-6/+47
2024-04-26Do not ICE on invalid consts when walking mono-reachable blocksBen Kimock-0/+52
2024-04-26Rollup merge of #124408 - matthiaskrgr:loltest, r=jieyouxuJacob Pratt-0/+102
crashes: add more tests
2024-04-26Rollup merge of #124383 - Urgau:port-print-native-static-libs, r=jieyouxuJacob Pratt-19/+76
Port run-make `--print=native-static-libs` to rmake.rs This PR port the run-make `--print=native-static-libs` test to rmake.rs The dedup was really awful in the `Makefile`, I'm glad to finally have a proper dedup detection for this. Related to https://github.com/rust-lang/rust/issues/121876 r? `@jieyouxu`
2024-04-27Also support MSVC in print-native-static-libs testUrgau-5/+18
2024-04-26Port run-make `--print=native-static-libs` to rmake.rsUrgau-19/+63
2024-04-26Auto merge of #122385 - lcnr:analyze-obligations-for-infer, r=compiler-errorsbors-28/+84
`obligations_for_self_ty`: use `ProofTreeVisitor` for nested goals As always, dealing with proof trees continues to be a hacked together mess. After this PR and #124380 the only remaining blocker for core is https://github.com/rust-lang/trait-system-refactor-initiative/issues/90. There is also a `ProofTreeVisitor` issue causing an ICE when compiling `alloc` which I will handle in a separate PR. This issue likely affects coherence diagnostics more generally. The core idea is to extend the proof tree visitor to support visiting nested candidates without using a `probe`. We then simply recurse into nested candidates if they are the only potentially applicable candidate for a given goal and check whether the self type matches the expected one. For that to work, we need to improve `CanonicalState` to also handle unconstrained inference variables created inside of the trait solver. This is done by extending the `var_values` of `CanoncalState` with each fresh inference variables. Furthermore, we also store the state of all inference variables at the end of each probe. When recursing into `InspectCandidates` we then unify the values of all these states. r? `@compiler-errors`
2024-04-26crashes: add more testsMatthias Krüger-0/+102
2024-04-26Auto merge of #120845 - petrochenkov:debmac, r=oli-obkbors-208/+116
debuginfo: Stabilize `-Z debug-macros`, `-Z collapse-macro-debuginfo` and `#[collapse_debuginfo]` `-Z debug-macros` is "stabilized" by enabling it by default and removing. `-Z collapse-macro-debuginfo` is stabilized as `-C collapse-macro-debuginfo`. It now supports all typical boolean values (`parse_opt_bool`) in addition to just yes/no. Default value of `collapse_debuginfo` was changed from `false` to `external` (i.e. collapsed if external, not collapsed if local) - https://github.com/rust-lang/rust/issues/100758#issuecomment-1935815625 describes some debugging scenarios that motivate this default as reasonable. `#[collapse_debuginfo]` attribute without a value is no longer supported to avoid guessing the default. Stabilization report: https://github.com/rust-lang/rust/pull/120845#issuecomment-1939145242 Closes https://github.com/rust-lang/rust/issues/100758 Closes https://github.com/rust-lang/rust/issues/41743 Closes https://github.com/rust-lang/rust/issues/39153
2024-04-26Update lldb only testsVadim Petrochenkov-0/+2
2024-04-25Rollup merge of #124378 - dpaoliello:keeplib, r=jieyouxuMichael Goulet-1/+4
Keep the LIB env var in the compiler-builtins test The `tests/run-make/compiler-builtins` test was failing for me with Visual Studio 2022, complaining that it couldn't find `kernel32.lib`. For whatever reason, with VS 2022 we need to keep the `LIB` environment variable when invoking Cargo so that the linker can find the Windows SDK libs.
2024-04-25Keep the LIB env var in the compiler-builtins testDaniel Paoliello-1/+4
2024-04-25Auto merge of #124386 - matthiaskrgr:rollup-0a6yr00, r=matthiaskrgrbors-12/+148
Rollup of 3 pull requests Successful merges: - #124313 (Detect borrow error involving sub-slices and suggest `split_at_mut`) - #124374 (Don't ICE when `codegen_select_candidate` returns ambiguity in new solver) - #124380 (`Range` iteration specialization: remove trivial bounds) r? `@ghost` `@rustbot` modify labels: rollup
2024-04-25ast: Generalize item kind visitingVadim Petrochenkov-22/+22
And avoid duplicating logic for visiting `Item`s with different kinds (regular, associated, foreign).
2024-04-25hir typeck: look into nested goalslcnr-28/+84
uses a `ProofTreeVisitor` to look into nested goals when looking at the pending obligations during hir typeck. Used by closure signature inference, coercion, and for async functions.
2024-04-25debuginfo: Stabilize `-Z debug-macros`, `-Z collapse-macro-debuginfo` and ↵Vadim Petrochenkov-208/+114
`#[collapse_debuginfo]` `-Z debug-macros` is "stabilized" by enabling it by default and removing. `-Z collapse-macro-debuginfo` is stabilized as `-C collapse-macro-debuginfo`. It now supports all typical boolean values (`parse_opt_bool`) in addition to just yes/no. Default value of `collapse_debuginfo` was changed from `false` to `external` (i.e. collapsed if external, not collapsed if local). `#[collapse_debuginfo]` attribute without a value is no longer supported to avoid guessing the default.
2024-04-25Rollup merge of #124374 - compiler-errors:fix-ambiguity-ice, r=lcnrMatthias Krüger-7/+17
Don't ICE when `codegen_select_candidate` returns ambiguity in new solver Because we merge identical candidates, we may have >1 impl candidate to in `codegen_select_error` but *not* have a trait error. r? lcnr
2024-04-25Rollup merge of #124313 - estebank:split-at-mut, r=fee1-deadMatthias Krüger-5/+131
Detect borrow error involving sub-slices and suggest `split_at_mut` ``` error[E0499]: cannot borrow `foo` as mutable more than once at a time --> $DIR/suggest-split-at-mut.rs:13:18 | LL | let a = &mut foo[..2]; | --- first mutable borrow occurs here LL | let b = &mut foo[2..]; | ^^^ second mutable borrow occurs here LL | a[0] = 5; | ---- first borrow later used here | = help: use `.split_at_mut(position)` or similar method to obtain two mutable non-overlapping sub-slices ``` Address most of #58792. For follow up work, we should emit a structured suggestion for cases where we can identify the exact `let (a, b) = foo.split_at_mut(2);` call that is needed.
2024-04-25Auto merge of #124377 - matthiaskrgr:rollup-ajxjq35, r=matthiaskrgrbors-21/+13
Rollup of 2 pull requests Successful merges: - #124287 (Improved code with clippy) - #124326 (tests: remove few ignore-stage2) r? `@ghost` `@rustbot` modify labels: rollup
2024-04-25Rollup merge of #124326 - klensy:ignore-stage2, r=compiler-errorsMatthias Krüger-21/+13
tests: remove few ignore-stage2 beta was branched long ago, so can be removed
2024-04-25Check equivalence of indices in more casesEsteban Küber-6/+3
2024-04-25Don't suggest `split_at_mut` when the multiple borrows have the same indexEsteban Küber-3/+19
2024-04-25Mention `split_at_mut` when mixing mutability in indexing opsEsteban Küber-2/+89
Emit suggestion when encountering ```rust let a = &mut foo[0]; let b = &foo[1]; a.use_mut(); ```
2024-04-25Only suggest `split_at_mut` on indexing borrowck errors for std typesEsteban Küber-5/+1
2024-04-25Detect borrow error involving sub-slices and suggest `split_at_mut`Esteban Küber-2/+32
``` error[E0499]: cannot borrow `foo` as mutable more than once at a time --> $DIR/suggest-split-at-mut.rs:13:18 | LL | let a = &mut foo[..2]; | --- first mutable borrow occurs here LL | let b = &mut foo[2..]; | ^^^ second mutable borrow occurs here LL | a[0] = 5; | ---- first borrow later used here | = help: use `.split_at_mut(position)` or similar method to obtain two mutable non-overlapping sub-slices ``` Address most of #58792. For follow up work, we should emit a structured suggestion for cases where we can identify the exact `let (a, b) = foo.split_at_mut(2);` call that is needed.
2024-04-25Don't ICE when codegen_select returns ambiguity in new solverMichael Goulet-7/+17
2024-04-25Auto merge of #123531 - compiler-errors:closure-wf, r=oli-obkbors-41/+104
Enforce closure args + return type are WF I found this out when investigating https://github.com/rust-lang/rust/issues/123461#issuecomment-2040894359. Turns out we don't register WF obligations for closure args and return types, leading to the ICE. ~~I think this is a useful thing to check for, but I'd like to check what the fallout is.~~ crater is complete. ~~Worst case, I think we should enforce this across an edition boundary (and possibly eventually migrate this for all editions) -- this should be super easy to do, since this is a check in HIR wfcheck, so it can be made edition dependent.~~ I believe the regressions are manageable enough to not necessitate edition-specific behavior. Fixes #123461
2024-04-25Add testMichael Goulet-5/+51
2024-04-25Check closure args and returns are WFMichael Goulet-36/+53
2024-04-25Auto merge of #124058 - TechVest:master, r=fmeasebors-2/+2
Fix some typos in comments
2024-04-25Fix substitution parts having a shifted underline in some casesLieselotte-1/+1
2024-04-25Auto merge of #119650 - chenyukang:yukang-fix-118596-ref-mut, r=wesleywiserbors-40/+148
Suggest ref mut for pattern matching assignment Fixes #118596
2024-04-25tests: remove few ignore-stage2klensy-21/+13
beta was branched long ago, so can be removed
2024-04-25Auto merge of #124360 - matthiaskrgr:rollup-k6bffhd, r=matthiaskrgrbors-4/+9
Rollup of 3 pull requests Successful merges: - #124257 (Rewrite the `no-input-file.stderr` test in Rust and support diff) - #124324 (Minor AST cleanups) - #124327 (CI: implement job skipping in Python matrix calculation) r? `@ghost` `@rustbot` modify labels: rollup
2024-04-25Auto merge of #121298 - nikic:writable, r=cuviperbors-4/+6
Set writable and dead_on_unwind attributes for sret arguments Set the `writable` and `dead_on_unwind` attributes for `sret` arguments. This allows call slot optimization to remove more memcpy's. See https://llvm.org/docs/LangRef.html#parameter-attributes for the specification of these attributes. In short, the statement we're making here is that: * The return slot is writable. * The return slot will not be read if the function unwinds. Fixes https://github.com/rust-lang/rust/issues/90595.