Introducing new interfaces that have no methods is clearly source-
and binary compatible, so I am not particularly compelled by "some
very brittle and badly written code might break." So far, no one
has proposed any examples that would make us reconsider that.
??;
you are forgetting inference, this code will fail to compile
class A {}
class B {}
var list = List.of(new A(), new B());
List<Object> list2 = list:
Good catch. There is precedent for leaving certain interfaces out of
inference, though; I suspect we will want to do this for these
interfaces too.