- Switch to
is
instead of==
to improve static initialization behavior (#130). Thanks @kyay10! - Ensure objects are not duplicated in the sealed enum list, if reachable from more than one subclass (#135). Thanks @kyay10!
- The type of
EnumForSealedEnumProvider.enumClass
is updated from aClass
to aKClass
. This allowsruntime
to not depend on any JVM classes, and therefore can be a multiplatform artifact in the future.
- Update to Kotlin 1.8
- Various dependency updates
- Updated JDK versions on CI to 1.8, 11 and 17
- Update to Kotlin 1.7
- The implicit order of sealed subclasses was changed in Kotlin 1.7, resulting in different ordinal orders when using
sealed-enum
0.4.0
and below.sealed-enum
0.5.0
restored the expected behavior when declaring subclasses as nested inner classes and defined a deterministic order when subclasses occur elsewhere in the file and package.
- Various dependency updates
- Switch to using version catalogs and convention plugins
- Added full support for
sealed interface
s - Added KSP processor as an alternate code generation method
- Update to Kotlin 1.5
- Add binary compatibility validator
- Added JDK 15 to CI tests
- Added CI to run on macOS and Windows
- Various dependency updates
- Artifact ids were updated (
sealedenum
->runtime
andsealedenumprocessor
->processor
). This was done to accommodate alternate generation implementations, such as by KSP
- Switch to GitHub actions for CI
- Various dependency updates
- Added extension properties and methods to make
sealed-enum
easier to use in common cases. In particular, access tovalues
, ordinals, names and theSealedEnum
implementation can all be achieved without having to use a generated class name. - Added support for isomorphic enum generation via the
generateEnum
argument for@GenSealedEnum
. Isomorphism and class information can be retrieved from the implementedEnumForSealedEnumProvider
interface.
@GenSealedEnum
must now be applied to the companion object ofsealed class
, rather than thesealed class
itself.- Processor option for auto-generation without
@GenSealedEnum
was removed.
- Updated to Kotlin 1.4
- Switched to
kotlin-compile-testing
for testing - Updated dependencies and created
buildSrc
for version management - Generated code is explicit-api-mode compatible by default (courtesy of KotlinPoet 1.7.x)
Publish dokka documentation and sources
Initial preview release