There's no guarantee about Java either. This class compiles with Java 7, but not with Java 8:
class SampleClass {
static class Baz<T> {
public static java.util.List<Baz<Object>> sampleMethod(Baz<Object> param) {
return null;
}
}
private static void bar(Baz arg) {
Baz element = Baz.sampleMethod(arg).get(0);
}
}
Like Java or any other good software, Scala will try to maintain backwards compatibility (particularly source compatibility).