Skip to content

Presence of lifetime params on free consts shouldn't affect evaluatability & impossible preds should prevent evaluation #136204

Open
@compiler-errors

Description

@compiler-errors
Member

There's a difference between const _: () = panic!(); and const _<'a>: () = panic!();: The former is a pre-mono error, the latter is a post-mono error.

This seems inconsistent, and pretty bad. But luckily something we can change before stabilizing generic consts :)

I think we should probably change the code introduced in #121387 to instead call requires_monomorphization instead of is_empty on the generics.

It should also preferably check for impossible predicates in the same way we do for -Clink-dead-code/-Zcollect-mono-items=eager, since we must avoid monomorphizing consts with impossible (possibly trivial) preds. You could probably turn that into an ICE today.

Originally posted by @compiler-errors in #136168 (review)

Activity

added
needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.
on Jan 28, 2025
added
T-typesRelevant to the types team, which will review and decide on the PR/issue.
C-bugCategory: This is a bug.
and removed
needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.
on Jan 28, 2025
added 2 commits that reference this issue on Feb 2, 2025

Auto merge of rust-lang#136429 - fmease:gci-fix-def-site-checks, r=<try>

Auto merge of rust-lang#136429 - fmease:gci-fix-def-site-checks, r=<try>

added a commit that references this issue on May 2, 2025

Auto merge of rust-lang#136429 - fmease:gci-fix-def-site-checks, r=<try>

added a commit that references this issue on May 29, 2025

Rollup merge of rust-lang#136429 - fmease:gci-fix-def-site-checks, r=…

d3c605a
added a commit that references this issue on May 29, 2025
changed the title [-]Lifetime generics on Generic Const Items should not affect if const is checked for evaluatability[/-] [+]Presence of lifetime generics on free const items should not affect if const is checked for evaluatability[/+] on May 29, 2025
changed the title [-]Presence of lifetime generics on free const items should not affect if const is checked for evaluatability[/-] [+]Presence of lifetime params on free consts shouldn't affect evaluatability & impossible preds should prevent evaluation[/+] on Jun 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.F-generic_const_items`#![feature(generic_const_items)]`T-typesRelevant to the types team, which will review and decide on the PR/issue.

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @compiler-errors@fmease@rustbot

      Issue actions

        Presence of lifetime params on free consts shouldn't affect evaluatability & impossible preds should prevent evaluation · Issue #136204 · rust-lang/rust