T-Lang Meeting: Current meeting

Action item

  • Niko to reach out to wg-grammar around writing up a “what is status” thing
  • Niko to comment on https://github.com/rust-lang/rust/pull/74622 to say that this feels like largely libs call but we’d like consistency with print! and panic! in terms of when something is a format string or not
  • Josh to comment on #74754 
  • scottmcm to follow up on RFC: Overconstraining and omitting `unsafe` in impls of `unsafe` trait methods #2316 

Agenda

  • Active items
  • Major Change Proposals
  • Meeting Proposals

Notes from meeting (2020-08-17):

make `ConstEvaluatable` more strict #74595 
It is less bad than I thought, so this works
fn test<T: Bar>() {
    let _ = [0; T::ASSOC];
}

trait Bar {}

impl Bar for u16 {}
impl Bar for (u8, u8) {}

trait Fez {
    const ASSOC: usize;
}

impl<T> Fez for T {
    const ASSOC: usize = 4;
}
but this breaks:
fn test<T: Bar>() {
    let _ = [0; T::ASSOC];
}

trait Bar {
    const ASSOC: usize;
}

impl Bar for u16 {
    const ASSOC: usize = 4;