5 ms·
If by "syntax compatibility" he means code that compiles in one version does not compile is another, that's definitely true. Name collisions with the new defau
by mhixson 13y ago
If by "syntax compatibility" he means code that compiles in one version does not compile is another, that's definitely true. Name collisions with the new default methods in Java 8 are one source. If your Comparator-implementing class has a method "void reverseOrder()", that will no longer compile.
Here's a couple of recent examples the Guava authors have fixed. Fortunately they were in internals and not their public API, so users won't care.
https://code.google.com/p/guava-libraries/source/detail?r=7de3cbca3854ae0d9e9f7973a8f3cfe855a2407a https://code.google.com/p/guava-libraries/source/detail?r=7d...
https://code.google.com/p/guava-libraries/source/detail?r=257148b2901c8b8ec1b06d9c10804300ac3d06d0 https://code.google.com/p/guava-libraries/source/detail?r=25...
- laureny 13y agoThis happens for all languages and is not usually considered as "a language breaking backward compatibility", it's purely a library concern. What is meant by "breaking backward compatibility" is when the grammar is altered in a way that makes existing sources no longer compile.