1. 15
  1.  

  2. 3

    That’s not as terrible as it sounds — it is shadowing a public type with a private one, but that’s a rather straightforward combination of glob imports. I was worried it could be something more unexpected.

    1. 3

      It’s certainly not language-breaking, I did say so in the intro:

      While I’m excited to have discovered this, I don’t think the problem is actually that severe.

      The bigger problem is that the current state of rustc lints and rustdoc make it impossible for tools to catch the problem. And humans are unlikely to catch it either, since we use glob imports precisely to avoid having to think about all the names they import.

      I think it’s a fun edge case (it’s surprising that you can break public API by only making private changes!), and it’s worth fixing especially since it’s broken real-world projects already.