Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emit annotated item in error message #3495

Closed
zhassan-aws opened this issue Sep 5, 2024 · 1 comment · Fixed by #3501
Closed

Emit annotated item in error message #3495

zhassan-aws opened this issue Sep 5, 2024 · 1 comment · Fixed by #3501
Labels
[C] Feature / Enhancement A new feature request or enhancement to an existing feature.

Comments

@zhassan-aws
Copy link
Contributor

The replacement of the unmaintained proc-macro-error crate with the proc-macro-error2 crate in #3493 resulted in a diff in the error message Kani emits for https://github.com/model-checking/kani/tree/main/tests/ui/derive-arbitrary/union.

With proc-macro-error, the error was:

error: Cannot derive `Arbitrary` for `Wrapper` union
 --> union.rs:5:10
  |
5 | #[derive(kani::Arbitrary)]
  |          ^^^^^^^^^^^^^^^
  |
note: `#[derive(Arbitrary)]` cannot be used for unions such as `Wrapper`
 --> union.rs:6:7
  |
6 | union Wrapper {
  |       ^^^^^^^
  = note: this error originates in the derive macro `kani::Arbitrary` (in Nightly builds, run with -Z macro-backtrace for more info)

With proc-macro-error2, the error is:

error: Cannot derive `Arbitrary` for `Wrapper` union
       
         = note: `#[derive(Arbitrary)]` cannot be used for unions such as `Wrapper`
       
 --> union.rs:5:10
  |
5 | #[derive(kani::Arbitrary)]
  |          ^^^^^^^^^^^^^^^
  |
  = note: this error originates in the derive macro `kani::Arbitrary` (in Nightly builds, run with -Z macro-backtrace for more info)

The two notable differences are:

  1. The annotated item (union Wrapper) is no longer included in the error
  2. The first note does not appear after the span.

We should investigate if it's possible to restore the previous behavior.

@zhassan-aws
Copy link
Contributor Author

Created GnomedDev/proc-macro-error-2#1 to ask about the difference in output.

github-merge-queue bot pushed a commit that referenced this issue Sep 7, 2024
As suggested in
GnomedDev/proc-macro-error-2#1 (comment),
turning on the `nightly` feature for `proc-macro-error2` to restore the
previous error message for `derive(Arbitrary)`.

Resolves #3495 

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 and MIT licenses.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[C] Feature / Enhancement A new feature request or enhancement to an existing feature.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant