Skip to content

"Regression" - some static bounds incorrectly compiled in 1.63..=1.67 #112283

Closed

Description

@QuineDot

Heads-up

The example below should not compile and currently does not compile, so this is going to be low priority.

However, the example compiled for 1.63 -- 1.67 inclusive (it doesn't compile in 1.62 or in 1.68 to current).

I didn't see anything that looked relevant in the release notes, and I figure there should at least be a test somewhere, so it doesn't start compiling again.

So this issue is primarily about making sure a test exists.

Code

I tried this code:

pub trait Trait {}

pub trait Assoc<'x> {
    type A: ?Sized;
}

impl<'x> Assoc<'x> for str { type A = &'x dyn Trait; }

pub fn assoc<T: 'static>() {}
pub fn assoc_helper<'a: 'a>() {
    assoc::< <str as Assoc<'a>>::A >();
}

I expected to see this happen: Inexplicably compile like it did during some exploration months ago. (Search for "this all works" for more examples with probably irrelevant variations if you're curious.)

Instead, this happened: Failed to compile, which makes more sense.

Version it worked on

It most recently worked on: Rust 1.67, and also 1.63, 1.64, 1.65, and 1.66.

Version with regression

1.68 to present.

Activity

  1. added
    C-bugCategory: This is a bug.
    regression-untriagedUntriaged performance or correctness regression.
    on Jun 4, 2023
  2. added
    I-prioritizeIssue needs a team member to assess the impact. Will be replaced by P-{low,medium,high,critical}
    on Jun 4, 2023
  3. Jules-Bertholet commented on Jun 5, 2023

    @Jules-Bertholet
    Contributor

    @rustbot label E-needs-test regression-from-stable-to-stable -regression-untriaged

  4. added
    E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.
    regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.
    and removed
    regression-untriagedUntriaged performance or correctness regression.
    on Jun 5, 2023
  5. added
    P-lowLow priority
    and removed
    I-prioritizeIssue needs a team member to assess the impact. Will be replaced by P-{low,medium,high,critical}
    on Jun 5, 2023
  6. compiler-errors commented on Jun 5, 2023

    @compiler-errors
    Contributor

    Oh right, forgot to click enter--

    searched nightlies: from nightly-2023-01-01 to nightly-2023-06-01
    regressed nightly: nightly-2023-01-10
    searched commit range: cc47b06...3020239
    regressed commit: af58fc8

    bisected with cargo-bisect-rustc v0.6.6

    Host triple: aarch64-apple-darwin
    Reproduce with:

    cargo bisect-rustc 2023-01-01 --end 2023-06-01 --regress error
  7. QuineDot commented on Jun 12, 2023

    @QuineDot
    Author

    The tests from PR #101947 look sufficient to me, so I'm going to close this.

    Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.P-lowLow priorityregression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions