Commit Graph

14 Commits

Author SHA1 Message Date
Esteban Küber
92a798dac0 Detect when attribute is provided by missing derive macro
```
error: cannot find attribute `empty_helper` in this scope
  --> $DIR/derive-helper-legacy-limits.rs:17:3
   |
LL | #[empty_helper]
   |   ^^^^^^^^^^^^
   |
help: `empty_helper` is an attribute that can be used by the derive macro `Empty`, you might be missing a `derive` attribute
   |
LL + #[derive(Empty)]
LL | struct S2;
   |
```

Look at proc-macro attributes when encountering unknown attribute

```
error: cannot find attribute `sede` in this scope
  --> src/main.rs:18:7
   |
18 |     #[sede(untagged)]
   |       ^^^^
   |
help: the derive macros `Serialize` and `Deserialize` accept the similarly named `serde` attribute
   |
18 |     #[serde(untagged)]
   |       ~~~~~

error: cannot find attribute `serde` in this scope
  --> src/main.rs:12:7
   |
12 |     #[serde(untagged)]
   |       ^^^^^
   |
   = note: `serde` is in scope, but it is a crate, not an attribute
help: `serde` is an attribute that can be used by the derive macros `Serialize` and `Deserialize`, you might be missing a `derive` attribute
   |
10 | #[derive(Serialize, Deserialize)]
   |
```
2025-06-12 21:28:49 +00:00
Jana Dönszelmann
a5f7d44405 add test for 141764 2025-06-02 11:29:27 +02:00
bors
ab62d56603 Auto merge of #140580 - jdonszelmann:variables-external-macros, r=m-ou-se
Don't name variables from external macros in borrow errors.

This came up as part of the expansion of format_args. However, it's a more general problem (and now solution).

I noticed that this does change another test, moving out of fields in derives on packed struct. However, I think this is a better error simply because it used to refer to `other.0` which is an implementation detail which doesn't really make sense.

cc `@m-ou-se`
2025-05-04 15:16:06 +00:00
mejrs
9a574b0871 Move some tests out of tests/ui 2025-05-03 17:22:52 +02:00
Jana Dönszelmann
867b4c9e48 Test that names of variables in external macros are not shown on a borrow error 2025-05-02 18:09:25 +02:00
Jieyou Xu
89cac55bb8 tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
Eric Huss
f94142b366 Update tests to use new proc-macro header 2024-11-27 07:18:25 -08:00
Eric Holk
7653811ac5 Add coverage for pat too
In 2021 pat was changed to recognize `|` at the top level, with
pat_param added to retain the old behavior. This means
pat is subject to the same cross-edition behavior as expr will be in
2024.

Co-authored-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
2024-09-17 11:08:52 -07:00
Vincenzo Palazzo
255586d659 test: cross-edition metavar fragment specifiers
There's a subtle interaction between macros with metavar expressions and the
edition-dependent fragment matching behavior. This test illustrates the current
behavior when using macro-generating-macros across crate boundaries with
different editions.

Co-Authored-By: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
Co-Authored-By: Eric Holk <eric@theincredibleholk.org>
2024-09-17 11:08:51 -07:00
Michael Goulet
50d1efa3e2 Add a test demonstrating the problem 2024-06-19 12:37:32 -04:00
许杰友 Jieyou Xu (Joe)
ec2cc761bc [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
Caio
69a5264a52 Move some tests 2024-02-09 15:43:08 -03:00
Jacob Pratt
8dc3b8559c Fix tests 2023-06-20 19:40:26 -04:00
Albert Larsan
cf2dff2b1e Move /src/test to /tests 2023-01-11 09:32:08 +00:00