-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
min_specialization with const traits can call non-const function in consteval #148200
Copy link
Copy link
Open
Labels
A-const-evalArea: Constant evaluation, covers all const contexts (static, const fn, ...)Area: Constant evaluation, covers all const contexts (static, const fn, ...)A-specializationArea: Trait impl specializationArea: Trait impl specializationC-bugCategory: This is a bug.Category: This is a bug.F-const_trait_impl`#![feature(const_trait_impl)]``#![feature(const_trait_impl)]`F-min_specialization`#![feature(min_specialization)]``#![feature(min_specialization)]`I-types-nominatedNominated for discussion during a types team meeting.Nominated for discussion during a types team meeting.PG-const-traitsProject group: Const traitsProject group: Const traitsT-typesRelevant to the types team, which will review and decide on the PR/issue.Relevant to the types team, which will review and decide on the PR/issue.
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, ...)A-specializationArea: Trait impl specializationArea: Trait impl specializationC-bugCategory: This is a bug.Category: This is a bug.F-const_trait_impl`#![feature(const_trait_impl)]``#![feature(const_trait_impl)]`F-min_specialization`#![feature(min_specialization)]``#![feature(min_specialization)]`I-types-nominatedNominated for discussion during a types team meeting.Nominated for discussion during a types team meeting.PG-const-traitsProject group: Const traitsProject group: Const traitsT-typesRelevant to the types team, which will review and decide on the PR/issue.Relevant to the types team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Edit: See the comment below for a simpler version.
This code manages to get through const checking without any errors, and only produces an error while "executing" consteval and running into the non-const function. This seems incorrect. The compiler is supposed to disallow calling non-const functions in consteval before actually running consteval.
Meta
Reproducible on the playground with version
1.93.0-nightly (2025-10-27 adaa838976ff99a4f066)