Compatibility is a complex issue, but we do our best in maintaining source, binary and behavioral compatibilities between two sequential versions of SSLR.
We can't guarantee that your code can be compiled (source compatibility) or linked (binary compatibility) with new version of SSLR and will behave (behavioral compatibility) exactly as before upgrade in following situations:
- You use internal classes or interfaces, i.e. those that are located under package "org.sonar.sslr.internal".
- You create instances or subclasses of classes, which are not intended for this. Such classes are marked by Javadoc ("This class is not intended to be instantiated or sub-classed by clients").
- You implement interfaces, which are not intended for this. Such interfaces are marked by Javadoc ("This interface is not intended to be implemented by clients").
- You use methods marked as internal. Such methods are marked by annotation "@VisibleForTesting" or by Javadoc ("For internal use only").
- You use deprecated code. Such code is marked by annotation "@deprecated" and Javadoc.