summary refs log tree commit diff
path: root/tests/ui/consts/const-eval
AgeCommit message (Collapse)AuthorLines
2024-03-14preserve span when evaluating mir::ConstOperandRalf Jung-0/+88
2024-03-14Rollup merge of #122440 - RalfJung:required-consts, r=oli-obkMatthias Krüger-101/+0
const-eval: organize and extend tests for required-consts This includes some tests that are known-broken and hence disabled (due to https://github.com/rust-lang/rust/issues/107503). r? `````@oli-obk`````
2024-03-13const-eval: organize and extend tests for required-constsRalf Jung-101/+0
2024-03-13Added `deny(const_eval_mutable_ptr_in_final_value)` attribute to all tests ↵Felix S. Klock II-1/+26
that were expecting the hard error for it. I attempted to do this in a manner that preserved the line numbers to reduce the review effort on the resulting diff, but we still have to deal with the ramifications of how a future-incompat lint behaves compared to a hard-error (in terms of its impact on the diagnostic output).
2024-03-08Fix crash in late internal checkingyukang-3/+33
2024-02-29add const test for ptr::metadataRalf Jung-33/+36
2024-02-26Auto merge of #121516 - RalfJung:platform-intrinsics-begone, r=oli-obkbors-2/+2
remove platform-intrinsics ABI; make SIMD intrinsics be regular intrinsics `@Amanieu` `@workingjubilee` I don't think there is any reason these need to be "special"? The [original RFC](https://rust-lang.github.io/rfcs/1199-simd-infrastructure.html) indicated eventually making them stable, but I think that is no longer the plan, so seems to me like we can clean this up a bit. Blocked on https://github.com/rust-lang/stdarch/pull/1538, https://github.com/rust-lang/rust/pull/121542.
2024-02-25Use generic `NonZero` in tests.Markus Reiter-135/+135
2024-02-25fix use of platform_intrinsics in testsRalf Jung-2/+2
2024-02-19Always evaluate free constants and statics, even if previous errors occurredOli Scherer-52/+23
2024-02-17Enable `ConstPropLint` for promotedsGurinder Singh-3/+28
This fixes the issue wherein the lint didn't fire for promoteds in the case of SHL/SHR operators in non-optimized builds and all arithmetic operators in optimized builds
2024-02-16[AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives许杰友 Jieyou Xu (Joe)-123/+123
2024-02-16remove stderr-per-bitwidth from some testsRalf Jung-62/+8
2024-02-05revert stabilization of const_intrinsic_copyRalf Jung-1/+1
2024-02-03Rollup merge of #120616 - fmease:fix-ice-const-eval-fail-undef-field-access, ↵Matthias Krüger-0/+22
r=compiler-errors Fix ICE on field access on a tainted type after const-eval failure Fixes #120615. r? oli-obk or compiler
2024-02-03Check for presence of field in typeck results before visiting itLeón Orell Valerian Liehr-0/+22
Co-authored-by: Michael Goulet <michael@errs.io>
2024-01-31Don't hash lints differently to non-lints.Nicholas Nethercote-1/+0
`Diagnostic::keys`, which is used for hashing and equating diagnostics, has a surprising behaviour: it ignores children, but only for lints. This was added in #88493 to fix some duplicated diagnostics, but it doesn't seem necessary any more. This commit removes the special case and only four tests have changed output, with additional errors. And those additional errors aren't exact duplicates, they're just similar. For example, in src/tools/clippy/tests/ui/same_name_method.rs we currently have this error: ``` error: method's name is the same as an existing method in a trait --> $DIR/same_name_method.rs:75:13 | LL | fn foo() {} | ^^^^^^^^^^^ | note: existing `foo` defined here --> $DIR/same_name_method.rs:79:9 | LL | impl T1 for S {} | ^^^^^^^^^^^^^^^^ ``` and with this change we also get this error: ``` error: method's name is the same as an existing method in a trait --> $DIR/same_name_method.rs:75:13 | LL | fn foo() {} | ^^^^^^^^^^^ | note: existing `foo` defined here --> $DIR/same_name_method.rs:81:9 | LL | impl T2 for S {} | ^^^^^^^^^^^^^^^^ ``` I think printing this second argument is reasonable, possibly even preferable to hiding it. And the other cases are similar.
2024-01-22const-eval interner: from-scratch rewrite using mutability information from ↵Ralf Jung-35/+7
provenance rather than types
2024-01-20Auto merge of #119821 - oli-obk:reveal_all_const_evals, r=lcnrbors-3/+2
Always use RevealAll for const eval queries implements what is described in https://github.com/rust-lang/rust/pull/116803#discussion_r1364089471 Using `UserFacing` for const eval does not make sense anymore, unless we significantly change things like avoiding revealing opaque types. New tests are copied from https://github.com/rust-lang/rust/pull/101478
2024-01-19Always use RevealAll for const eval queriesOli Scherer-3/+2
2024-01-16Skip dead code checks on items that failed typeckOli Scherer-4/+12
2024-01-13Bless testsGeorge-lewis-0/+3
Update tests
2024-01-11Use the right level with `-Ztreat-err-as-bug`.Nicholas Nethercote-1/+1
Errors in `DiagCtxtInner::emit_diagnostic` are never set to `Level::Bug`, because the condition never succeeds, because `self.treat_err_as_bug()` is called *before* the error counts are incremented. This commit switches to `self.treat_next_err_as_bug()`, fixing the problem. This changes the error message output to actually say "internal compiler error".
2024-01-06remove an unnecessary stderr-per-bitwidthRalf Jung-139/+5
2023-12-24Replace legacy ConstProp by GVN.Camille GILLOT-6/+0
2023-12-12also test projecting to some sized fields at non-zero offset in structs with ↵Ralf Jung-2/+7
an extern type tail
2023-12-12make it more clear what comments refer to; avoid dangling unaligned referencesRalf Jung-5/+11
Co-authored-by: Waffle Maybe <waffle.lapkin@gmail.com>
2023-12-12reject projecting to fields whose offset we cannot computeRalf Jung-59/+41
2023-12-07also print 'immutable' flagRalf Jung-48/+48
2023-12-07compile-time evaluation: emit a lint when a write through an immutable ↵Ralf Jung-0/+85
pointer occurs
2023-12-02Auto merge of #118077 - calebzulawski:sync-portable-simd-2023-11-19, ↵bors-2/+2
r=workingjubilee Portable SIMD subtree update Syncs nightly to the latest changes from rust-lang/portable-simd r? `@rust-lang/libs`
2023-11-30generic_const_exprs: suggest to add the feature, not use itRalf Jung-1/+1
2023-11-27make const tests independent of std debug assertionsRalf Jung-163/+112
2023-11-26Update std::simd usage and test outputsCaleb Zulawski-2/+2
2023-11-25Fix testsGary Guo-110/+111
2023-11-24Manual find replace updatesNilstrieb-5/+5
2023-11-24Show number in error message even for one errorNilstrieb-54/+54
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-10-31Do not ICE on constant evaluation failure in GVN.Camille GILLOT-3/+26
2023-10-28Auto merge of #116240 - dtolnay:constdiscriminant, r=thomccbors-1/+1
Const stabilize mem::discriminant Tracking issue: #69821. This PR is a rebase of https://github.com/rust-lang/rust/pull/103893 to resolve conflicts in library/core/src/lib.rs (against #102470 and #110393).
2023-10-25Stabilize `[const_]pointer_byte_offsets`Maybe Waffle-7/+5
2023-10-16Stop trying to preserve pretty-printing.Camille GILLOT-44/+44
2023-10-16Rebless.Camille GILLOT-9/+9
2023-10-16Normalize alloc-id in tests.Camille GILLOT-63/+63
2023-10-15more precise error for 'based on misaligned pointer' caseRalf Jung-7/+7
2023-10-15place evaluation: require the original pointer to be aligned if an access ↵Ralf Jung-2/+19
happens
2023-10-15don't UB on dangling ptr deref, instead check inbounds on projectionsRalf Jung-86/+105
2023-10-14Rollup merge of #116576 - eduardosm:const-eval-wasm-target-features, r=RalfJungGuillaume Gomez-0/+14
const-eval: allow calling functions with targat features disabled at compile time in WASM This is not unsafe on WASM, see https://github.com/rust-lang/rust/pull/84988 r? `@RalfJung` Fixes https://github.com/rust-lang/rust/issues/116516
2023-10-14const-eval: allow calling functions with targat features disabled at compile ↵Eduardo Sánchez Muñoz-0/+14
time in WASM This is not unsafe on WASM, see https://github.com/rust-lang/rust/pull/84988
2023-10-14Auto merge of #116015 - EvanMerlock:master, r=oli-obkbors-0/+53
const_eval: allow function pointer signatures containing &mut T in const contexts potentially fixes #114994 We utilize a `TypeVisitor` here in order to more easily handle control flow. - In the event the typekind the Visitor sees is a function pointer, we skip over it - However, otherwise we do one of two things: - If we find a mutable reference, check it, then continue visiting types - If we find any other type, continue visiting types This means we will check if the function pointer _itself_ is mutable, but not if any of the types _within_ are.
2023-10-14Auto merge of #115524 - RalfJung:misalign, r=wesleywiserbors-0/+72
const-eval: make misalignment a hard error It's been a future-incompat error (showing up in cargo's reports) since https://github.com/rust-lang/rust/pull/104616, Rust 1.68, released in March. That should be long enough. The question for the lang team is simply -- should we move ahead with this, making const-eval alignment failures a hard error? (It turns out some of them accidentally already were hard errors since #104616. But not all so this is still a breaking change. Crater found no regression.)