Skip to content

Diesel's build is failing on beta and nightly #47139

Closed
@sgrif

Description

@sgrif
Contributor

There appears to be some regression in trait resolution between beta and nightly. Our builds are failing on nightly with this error: https://travis-ci.org/diesel-rs/diesel/jobs/324077372#L1081

I haven't yet looked into what the exact cause is, but the same code is compiling successfully on stable and beta.

Activity

sgrif

sgrif commented on Jan 3, 2018

@sgrif
ContributorAuthor

This is now a regression from stable to beta

changed the title [-]Diesel's build is failing on nightly[/-] [+]Diesel's build is failing on beta and nightly[/+] on Jan 3, 2018
added a commit that references this issue on Jan 3, 2018
shssoichiro

shssoichiro commented on Jan 3, 2018

@shssoichiro
Contributor

I have some time now, I can go through and do a bisect to find the cause.

sgrif

sgrif commented on Jan 3, 2018

@sgrif
ContributorAuthor

@shssoichiro Thank you! <3 I'm sorry I haven't provided a more specific reproduction case

shssoichiro

shssoichiro commented on Jan 4, 2018

@shssoichiro
Contributor

It looks like the regression originated in 8c59418. My first guess at what's happening is that the blanket impl<T> SliceContains for T where T: PartialEq is causing an infinite recursion in trying to resolve diesel's Insertable trait, although I haven't created a minimized reproduction.

nikomatsakis

nikomatsakis commented on Jan 4, 2018

@nikomatsakis
Contributor

Hmm. Any idea how those two traits are connected? That seems surprising.

added
T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.
P-highHigh priority
on Jan 4, 2018
self-assigned this
on Jan 4, 2018
nikomatsakis

nikomatsakis commented on Jan 4, 2018

@nikomatsakis
Contributor

I'd like to dig a bit more into this and understand better what's going on.

sgrif

sgrif commented on Jan 4, 2018

@sgrif
ContributorAuthor

I'm not sure how SliceContains could affect Diesel, but I agree that it's the only thing in that commit that looks like it could possibly cause any problems here.

sgrif

sgrif commented on Jan 4, 2018

@sgrif
ContributorAuthor

FWIW the impls it appears to be recursing through look like this:

impl<T, Tab> Insertable<Tab> for Option<T>
where
    T: Insertable<Tab>,
    T::Values: Default,
{
    // ...
}

impl<'a, T, Tab> Insertable<Tab> for &'a Option<T>
where
    Option<&'a T>: Insertable<Tab>,
{
    // ...
}

67 remaining items

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

Metadata

Metadata

Assignees

Labels

P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.

Type

No type

Projects

No projects

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @nikomatsakis@sfackler@sgrif@arielb1@nickbabcock

      Issue actions

        Diesel's build is failing on beta and nightly · Issue #47139 · rust-lang/rust