- Notifications
You must be signed in to change notification settings - Fork 13.9k
Closed
Labels
A-const-evalArea: Constant evaluation, covers all const contexts (static, const fn, ...)Area: Constant evaluation, covers all const contexts (static, const fn, ...)B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-bugCategory: This is a bug.Category: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
I tried this code:
#![feature(const_fn)] struct Foo(Option<&'static mut i32>); impl Foo { const fn new() -> Self { Self(None) } } fn main() {}I expected to see this happen: Compilable
Instead, this happened:
Compiling foo v0.1.0 (/home/hiroki/foo) error[E0723]: mutable references in const fn are unstable --> src/main.rs:5:14 | 5 | Self(None) | ^^^^ | = note: see issue #57563 <https://github.com/rust-lang/rust/issues/57563> for more information = help: add `#![feature(const_fn)]` to the crate attributes to enable error: aborting due to previous error For more information about this error, try `rustc --explain E0723`. error: could not compile `foo` To learn more, run the command again with --verbose. Meta
rustc --version --verbose:
rustc 1.48.0-nightly (8b4085359 2020-09-23) binary: rustc commit-hash: 8b4085359ae798dedb05c95ad42520557bd25320 commit-date: 2020-09-23 host: x86_64-unknown-linux-gnu release: 1.48.0-nightly LLVM version: 11.0 I found this bug when I was trying to build linked-list-allocator crate.
cargo-bisect-rustc : https://gist.github.com/toku-sa-n/0b8e18d78c625ee1dd6b9fe630bed7ce
ecstatic-morse
Metadata
Metadata
Assignees
Labels
A-const-evalArea: Constant evaluation, covers all const contexts (static, const fn, ...)Area: Constant evaluation, covers all const contexts (static, const fn, ...)B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-bugCategory: This is a bug.Category: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.