Replace the IDeprecatable symbol interface with a new IVersionableSymbol interface, which allows symbols to contain information about the version in which the symbol was deprecated or introduced. We don't do anything with this info yet but having this mechanism means we can now start annotating symbols with this info in preparation for future use.
This info is stored on a SymbolVersionInfo object so it's easier to expand in future without touching every implementation of
the interface. This also means that the increased memory cost is paid only by the small number of versionable symbols that contain version info.
Replace the
IDeprecatable
symbol interface with a newIVersionableSymbol
interface, which allows symbols to contain information about the version in which the symbol was deprecated or introduced. We don't do anything with this info yet but having this mechanism means we can now start annotating symbols with this info in preparation for future use.This info is stored on a
SymbolVersionInfo
object so it's easier to expand in future without touching every implementation of the interface. This also means that the increased memory cost is paid only by the small number of versionable symbols that contain version info.