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

Use check_proc_macro for missing_const_for_fn #1

Closed

Conversation

daxpedda
Copy link

While fixing missing_const_for_fn, see rust-lang#8854, I found that your PR basically does half of my work already.

I hope that's alright making a PR against your work here!

@daxpedda daxpedda requested a review from Jarcho July 1, 2022 00:57
@daxpedda daxpedda requested a review from Jarcho July 1, 2022 01:16
@Jarcho Jarcho force-pushed the check_proc_macro branch from 79deff1 to 856b11c Compare July 2, 2022 02:34
@Jarcho
Copy link
Owner

Jarcho commented Jul 2, 2022

I think this is fine as is now.

When this branch is merged into clippy can you open a new PR there with this change? You can r? me when you do.

@Jarcho Jarcho force-pushed the check_proc_macro branch from 856b11c to bc25171 Compare July 2, 2022 03:01
@daxpedda
Copy link
Author

daxpedda commented Jul 2, 2022

Will do!

@Jarcho Jarcho force-pushed the check_proc_macro branch from c01d2d1 to 745b194 Compare August 8, 2022 02:02
@Jarcho
Copy link
Owner

Jarcho commented Aug 8, 2022

Ping @daxpedda. This has now been merged into clippy. You can open a PR there when you have the time.

@daxpedda
Copy link
Author

daxpedda commented Aug 9, 2022

See rust-lang#9308.

@daxpedda daxpedda closed this Aug 9, 2022
bors added a commit to rust-lang/rust-clippy that referenced this pull request Aug 9, 2022
Use `check_proc_macro` for `missing_const_for_fn`

This uses `@Jarcho's` #8694 implementation to fix `missing_const_for_fn` linting in proc-macros.
I'm not 100% sure what I'm doing here, any feedback is appreciated.

Previously: Jarcho#1.
Fixes #8854.

changelog: [`missing_const_for_fn`]: No longer lints in proc-macros
Jarcho pushed a commit that referenced this pull request Aug 31, 2023
…=xFrednet

Fix tuple_array_conversions lint on nightly

```
changelog: ICE: [`tuple_array_conversions`]: Don't expect array length to always be usize
```

tl;dr: changed [`Const::eval_target_usize`](https://github.com/rust-lang/rust/blob/master/compiler/rustc_middle/src/ty/consts.rs#L359) to [`Consts::try_eval_target_usize`](https://github.com/rust-lang/rust/blob/master/compiler/rustc_middle/src/ty/consts.rs#L327) to get rid of ICE.

I have encountered a problem with clippy: it caught ICE when working with a codebase that uses a lot of nightly features.
Here's a (stripped) ICE info:

```
error: internal compiler error: /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/compiler/rustc_middle/src/ty/consts.rs:361:32: expected usize, got Const { ty: usize, kind: N/#1 }

thread 'rustc' panicked at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/compiler/rustc_errors/src/lib.rs:1635:9:
Box<dyn Any>
stack backtrace:
...
  16:        0x110b9c590 - rustc_middle[449edf845976488d]::util::bug::bug_fmt
  17:        0x102f76ae0 - clippy_lints[71754038dd04c2d2]::tuple_array_conversions::all_bindings_are_for_conv
...
```

I don't really know what's going on low-level-wise, but seems like this lin assumed that the length of the array can always be treated as `usize`, and *I assume* this doesn't play well with `feat(generic_const_exprs)`.

I wasn't able to build a minimal reproducible example, but locally this fix does resolve the issue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants