rust/compiler/rustc_builtin_macros/src
Matthias Krüger caa2d008f9
Rollup merge of #138231 - Sa4dUs:autodiff-ice, r=ZuseZ4
Prevent ICE in autodiff validation by emitting user-friendly errors

This PR moves `valid_ret_activity` and `valid_input_activity` checks to the macro expansion phase in compiler/rustc_builtin_macros/src/autodiff.rs, replacing the following internal compiler error (ICE):
```
error: internal compiler error:
compiler/rustc_codegen_ssa/src/codegen_attrs.rs:935:13:
Invalid input activity Dual for Reverse mode
```
with a more user-friendly message.

The issue specifically affected the test file `tests/ui/autodiff/autodiff_illegal.rs`, impacting the functions `f5` and `f6`.

The ICE can be reproduced by following [Enzyme's Rustbook](https://enzymead.github.io/rustbook/installation.html) installation guide.

Additionally, this PR adds tests for invalid return activity in `autodiff_illegal.rs`, which previously triggered an unnoticed ICE before these fixes.

r? ``@oli-obk``
2025-03-11 19:35:29 +01:00
..
assert Implement .use keyword as an alias of clone 2025-03-06 17:58:32 -03:00
deriving Implment #[cfg] and #[cfg_attr] in where clauses 2025-03-01 22:02:46 +08:00
format_foreign Rustfmt 2025-02-08 22:12:13 +00:00
alloc_error_handler.rs Rustfmt 2025-02-08 22:12:13 +00:00
asm.rs parse_format optimize import use 2025-01-28 19:33:00 +01:00
assert.rs Speed up Parser::expected_token_types. 2024-12-19 16:05:41 +11:00
autodiff.rs Rollup merge of #138231 - Sa4dUs:autodiff-ice, r=ZuseZ4 2025-03-11 19:35:29 +01:00
cfg_accessible.rs Re-export more rustc_span::symbol things from rustc_span. 2024-12-18 13:38:53 +11:00
cfg_eval.rs Re-export more rustc_span::symbol things from rustc_span. 2024-12-18 13:38:53 +11:00
cfg.rs Speed up Parser::expected_token_types. 2024-12-19 16:05:41 +11:00
cmdline_attrs.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
compile_error.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
concat_bytes.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
concat_idents.rs Rollup merge of #134161 - nnethercote:overhaul-token-cursors, r=spastorino 2024-12-18 22:56:53 +08:00
concat.rs Re-export more rustc_span::symbol things from rustc_span. 2024-12-18 13:38:53 +11:00
contracts.rs Fix imports, remove attrs for unused_* 2025-02-10 20:15:30 +00:00
derive.rs Re-export more rustc_span::symbol things from rustc_span. 2024-12-18 13:38:53 +11:00
edition_panic.rs Re-export more rustc_span::symbol things from rustc_span. 2024-12-18 13:38:53 +11:00
env.rs Rustfmt 2025-02-08 22:12:13 +00:00
errors.rs Fix ICE for invalid return activity and proper error handling 2025-03-11 09:36:57 +01:00
format_foreign.rs Simplify printf and shell format suggestions 2025-03-06 13:55:05 -08:00
format.rs Simplify printf and shell format suggestions 2025-03-06 13:55:05 -08:00
global_allocator.rs Express contracts as part of function header and lower it to the contract lang items 2025-02-03 12:54:00 -08:00
lib.rs Revert "Use workspace lints for crates in compiler/ #138084" 2025-03-10 18:12:47 +08:00
log_syntax.rs Adjust some pubs. 2024-04-26 13:29:20 +10:00
pattern_type.rs Add a TyPat in the AST to reuse the generic arg lowering logic 2025-02-11 08:51:05 +00:00
proc_macro_harness.rs Rustfmt 2025-02-08 22:12:13 +00:00
source_util.rs tree-wide: parallel: Fully removed all Lrc, replaced with Arc 2025-02-03 13:25:57 +03:00
standard_library_imports.rs span: add a "future" edition 2025-02-24 14:35:30 +00:00
test_harness.rs Express contracts as part of function header and lower it to the contract lang items 2025-02-03 12:54:00 -08:00
test.rs Rustfmt 2025-02-08 22:12:13 +00:00
trace_macros.rs Rollup merge of #134161 - nnethercote:overhaul-token-cursors, r=spastorino 2024-12-18 22:56:53 +08:00
util.rs Account for format_args in HiddenUnicodeCodepoints lint 2024-12-31 05:03:22 +00:00