about summary refs log tree commit diff
path: root/tests/ui/conditional-compilation
AgeCommit message (Collapse)AuthorLines
2025-01-07Update tests.Mara Bos-1/+1
2024-11-03use backticks instead of single quotes when reporting "use of unstable ↵dianne-2/+2
library feature" This is consistent with all other diagnostics I could find containing features and enables the use of `DiagSymbolList` for generalizing diagnostics for unstable library features to multiple features.
2024-08-23Return earlier in some cases in `collect_token`.Nicholas Nethercote-0/+19
This example triggers an assertion failure: ``` fn f() -> u32 { #[cfg_eval] #[cfg(not(FALSE))] 0 } ``` The sequence of events: - `configure_annotatable` calls `parse_expr_force_collect`, which calls `collect_tokens`. - Within that, we end up in `parse_expr_dot_or_call`, which again calls `collect_tokens`. - The return value of the `f` call is the expression `0`. - This inner call collects tokens for `0` (parser range 10..11) and creates a replacement covering `#[cfg(not(FALSE))] 0` (parser range 0..11). - We return to the outer `collect_tokens` call. The return value of the `f` call is *again* the expression `0`, again with the range 10..11, but the replacement from earlier covers the range 0..11. The code mistakenly assumes that any attributes from an inner `collect_tokens` call fit entirely within the body of the result of an outer `collect_tokens` call. So it adjusts the replacement parser range 0..11 to a node range by subtracting 10, resulting in -10..1. This is an invalid range and triggers an assertion failure. It's tricky to follow, but basically things get complicated when an AST node is returned from an inner `collect_tokens` call and then returned again from an outer `collect_token` node without being wrapped in any kind of additional layer. This commit changes `collect_tokens` to return early in some extra cases, avoiding the construction of lazy tokens. In the example above, the outer `collect_tokens` returns earlier because the `0` token already has tokens and `self.capture_state.capturing` is `Capturing::No`. This early return avoids the creation of the invalid range and the assertion failure. Fixes #129166. Note: these invalid ranges have been happening for a long time. #128725 looks like it's at fault only because it introduced the assertion that catches the invalid ranges.
2024-07-12Make parse error suggestions verbose and fix spansEsteban Küber-1/+5
Go over all structured parser suggestions and make them verbose style. When suggesting to add or remove delimiters, turn them into multiple suggestion parts.
2024-05-10Fix parse error message for meta itemsLeón Orell Valerian Liehr-4/+4
2024-05-04compiletest: add enable-by-default check-cfgUrgau-8/+7
2024-04-09Further cleanup cfgs in the UI test suiteUrgau-22/+22
This commit does three things: 1. replaces (the last remaining) never true cfgs by the FALSE cfg 2. fix derive-helper-configured.rs (typo in directive) 3. and comment some current unused #[cfg_attr] (missing revisions)
2024-04-07Unify all the always-false cfgs under the `FALSE` cfgUrgau-18/+16
2024-02-16[AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives许杰友 Jieyou Xu (Joe)-41/+41
2024-01-13Bless testsGeorge-lewis-0/+7
Update tests
2023-11-24Show number in error message even for one errorNilstrieb-10/+10
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-10-05Add a note to duplicate diagnosticsAlex Macleod-0/+1
2023-06-29Update UI tests which relied on old behavior of constructing a default error ↵许杰友 Jieyou Xu (Joe)-7/+7
handler every time `early_warn` is called Skip `colored-session-opt-error.rs` on Windows hosts This is very cursed as to why it fails on Windows CI specifically: - The test emits a *warning*. - *Warnings*, and only warnings *specifically*, have a different 256-color between Windows and non-Windows hosts (other levels `set_intense(true)` unconditionally): https://github.com/rust-lang/rust/blob/e69c7306e2be08939d95f14229e3f96566fb206c/compiler/rustc_errors/src/lib.rs#L1792-L1794 Therefore, I added `// ignore-windows` test header to skip this test on Windows (it's sufficient to test color is enabled on at least one non-Windows host).
2023-04-15Add some reasons why tests are ignored.Eric Huss-1/+1
2023-03-15error-msg: expand suggestion for unused lintEzra Shaw-0/+4
2023-02-18Adjust tracking issue for non_lifetime_bindersMichael Goulet-3/+3
2023-02-16Add feature gate for non_lifetime_bindersMichael Goulet-18/+28
2023-01-11Move /src/test to /testsAlbert Larsan-0/+1311