pub fn is_coinductive(&self, program: &ProgramEnvironment) -> bool {
        if let FullyReducedGoal::DomainGoal(Canonical {
            value:
                InEnvironment {
                    goal: DomainGoal::Implemented(ref tr),
                    ..
                },
            ..
        }) = *self
        {
            let trait_datum = &program.trait_data[&tr.trait_id];
            return trait_datum.binders.value.flags.auto;
        }

        false
    }
/// A goal has coinductive semantics if it is of the form `T: AutoTrait`.
A goal has coinductive semantics if it is of the form `T: AutoTrait`.
A goal has coinductive semantics if it is of the form ` T : AutoTrait ` .
pub fn is_coinductive(&self, program: &ProgramEnvironment) -> bool {
        if let FullyReducedGoal::DomainGoal(Canonical {
            value:
                InEnvironment {
                    goal: DomainGoal::Implemented(ref tr),
                    ..
                },
            ..
        }) = *self
        {
            let trait_datum = &program.trait_data[&tr.trait_id];
            return trait_datum.binders.value.flags.auto;
        }
        false
    }
pub fn is_coinductive ( & self , program : & ProgramEnvironment ) -> bool { if let FullyReducedGoal :: DomainGoal ( Canonical { value : InEnvironment { goal : DomainGoal :: Implemented ( ref tr ) , .. } , .. } ) = * self { let trait_datum = & program . trait_data [ & tr . trait_id ] ; return trait_datum . binders . value . flags . auto ; } false }
A goal has coinductive semantics if it is of the form `T: AutoTrait`.
A goal has coinductive semantics if it is of the form ` T : AutoTrait ` .
&self
program
&ProgramEnvironment