pub fn expect<T, M>(sess: &Session, opt: Option<T>, msg: M) -> T where
    M: FnOnce() -> String,
{
    diagnostic::expect(sess.diagnostic(), opt, msg)
}
// Seems out of place, but it uses session, so I'm putting it here
Seems out of place, but it uses session, so I'm putting it here
Seems out of place but it uses session so I ' m putting it here
pub fn expect<T, M>(sess: &Session, opt: Option<T>, msg: M) -> T where
    M: FnOnce() -> String,
{
    diagnostic::expect(sess.diagnostic(), opt, msg)
}
pub fn expect < T , M > ( sess : & Session , opt : Option < T > , msg : M ) -> T where M : FnOnce ( ) -> String , { diagnostic :: expect ( sess . diagnostic ( ) , opt , msg ) }
Seems out of place, but it uses session, so I'm putting it here
Seems out of place but it uses session so I ' m putting it here
sess
&Session
opt
Option<T>
msg
M