-
Notifications
You must be signed in to change notification settings - Fork 13k
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
ICE: No HirId for DefId
#133771
Comments
mvce I guess? #![feature(generic_arg_infer)]
#![crate_type="lib"]
pub fn main() {
let s: [u8; 10];
s = [0; _];
} I don't understand why this does not crash with just a main and but needs a crate_type = lib.. |
Missing a main can mask the errors that occur in later stages I suppose |
Yeah I think this line should not be |
…id, r=compiler-errors Use correct `hir_id` for array const arg infers Fixes rust-lang#133771 `self.next_id()` results in the `DefId` for the const argument, created from the hack introduced by rust-lang#133468, having no `HirId` associated with it. This then results in an ICE in metadata encoding. Fixing this then results in *another* ICE where `encode_defs` was not skipping encoding `type_of` and other queries for `DefId`s when they correspond to a `ConstArgKind::Infer` node. This only reproduces with a library crate as metadata is not encoded for binaries, and apparently we had 0 tests for `generic_arg_infer` for array lengths in a library crate so this was not caught :< cc rust-lang#133589 `@voidc` r? `@compiler-errors` `@lcnr`
…id, r=compiler-errors Use correct `hir_id` for array const arg infers Fixes rust-lang#133771 `self.next_id()` results in the `DefId` for the const argument, created from the hack introduced by rust-lang#133468, having no `HirId` associated with it. This then results in an ICE in metadata encoding. Fixing this then results in *another* ICE where `encode_defs` was not skipping encoding `type_of` and other queries for `DefId`s when they correspond to a `ConstArgKind::Infer` node. This only reproduces with a library crate as metadata is not encoded for binaries, and apparently we had 0 tests for `generic_arg_infer` for array lengths in a library crate so this was not caught :< cc rust-lang#133589 ``@voidc`` r? ``@compiler-errors`` ``@lcnr``
…id, r=compiler-errors Use correct `hir_id` for array const arg infers Fixes rust-lang#133771 `self.next_id()` results in the `DefId` for the const argument, created from the hack introduced by rust-lang#133468, having no `HirId` associated with it. This then results in an ICE in metadata encoding. Fixing this then results in *another* ICE where `encode_defs` was not skipping encoding `type_of` and other queries for `DefId`s when they correspond to a `ConstArgKind::Infer` node. This only reproduces with a library crate as metadata is not encoded for binaries, and apparently we had 0 tests for `generic_arg_infer` for array lengths in a library crate so this was not caught :< cc rust-lang#133589 ```@voidc``` r? ```@compiler-errors``` ```@lcnr```
ah yes I just saw I forgot to revert changes from my bisection script that I did for #133641 which is why other bisections also point to that pr, oops 😅 |
yes this bisects to #133589 :) |
ah fun, we actually have a test |
Rollup merge of rust-lang#133779 - BoxyUwU:array_const_arg_infer_hir_id, r=compiler-errors Use correct `hir_id` for array const arg infers Fixes rust-lang#133771 `self.next_id()` results in the `DefId` for the const argument, created from the hack introduced by rust-lang#133468, having no `HirId` associated with it. This then results in an ICE in metadata encoding. Fixing this then results in *another* ICE where `encode_defs` was not skipping encoding `type_of` and other queries for `DefId`s when they correspond to a `ConstArgKind::Infer` node. This only reproduces with a library crate as metadata is not encoded for binaries, and apparently we had 0 tests for `generic_arg_infer` for array lengths in a library crate so this was not caught :< cc rust-lang#133589 `@voidc` r? `@compiler-errors` `@lcnr`
snippet:
Version information
Command:
/home/matthias/.rustup/toolchains/master/bin/rustc -Zcrate-attr=feature(generic_arg_infer) --crate-type=lib
Program output
@rustbot label +F-generic_arg_infer
The text was updated successfully, but these errors were encountered: