0.3.0
Thank you everyone for your contributions!
Highlights
- jextract/jni:
- Improved performance of getting associated values from enum cases
- Improved control over library names and static library loading blocks
- Multiple fixes for tuples: including support for returning optional tuples and nesting complex types in them
- .swiftinterface file reading is now working correctly again
- Initial qualified lookups for types like
MyModule.MyType - Nested typealiases and many improvements around typealiseses and specializations
What's Changed
- Prepare next development cycle after 0.2.0 release by @ktoso in #689
- jextract/jni: Skip generating empty JNI cache enums by @sidepelican in #690
- Avoid javadoc linter warnings by @ktoso in #691
- Small refactorings and cleanups by @sidepelican in #692
- Add overrideStaticBlockLibraryLoading configuration option by @ktoso in #693
- jextract: Use fully qualified
java.lang.Stringto avoid shadowing by @sidepelican in #696 - jextract: Support .swiftinterface files for --input-swift by @sidepelican in #695
- jextract: Implement identifier escaping for functions and enum cases by @sidepelican in #697
- Refactor how we pass swift names into SwiftQualifiedTypeName by @ktoso in #698
- Use loadLibraryWithFallbacks when loading in static{} in jni mode by @ktoso in #701
- Fix JNI generation for sending closures by @iDevid in #700
- Support JDK17 style code snippets; {@snippet is only since JDK18 by @ktoso in #702
- javakit: Add more runtime tests for arrays to the sample app by @ktoso in #703
- Initial module qualified lookups by @ktoso in #704
- Fix Java package mapping for dependent modules by @iDevid in #699
- jextract: Fix duplicate
rawValuegeneration for enums by @sidepelican in #707 - Lower JDK version for modules not using ffm by @ktoso in #708
- jextract/jni: Move enum case classes inside the
Caseinterface by @sidepelican in #709 - Make module imports public to survive internal imports by default by @ktoso in #710
- Add @suite to test classes missing it by @sidepelican in #713
- Allow swift-collections up to next major by @tkrajacic in #712
- jextract: Initial typealias handling by @ktoso in #714
- Fix Swift documentation parsing and adds
- Throwssupport by @madsodgaard in #716 - jextract/jni: Use switch expressions in
getCase()by @sidepelican in #717 - jextract: Suppress InternalImportsByDefault related warnings by @sidepelican in #719
- Refactor to use more strongly-typed interfaces by @sidepelican in #721
- jextract/jni: Add
nativeJavaTypetoTranslatedResultfor explicit type handling by @sidepelican in #722 - jextract/jni: Support optional tuple return values 2 by @sidepelican in #723
- jextract/jni: Fix code generation for optional
Stringin tuples by @sidepelican in #724 - jextract: Fix access level check for
MinimumInputAccessLevelMode.packageby @sidepelican in #726 - jextract/jni: Handle single-element tuples correctly by @sidepelican in #725
- wrap-java: Fix escaped method calls and handle $ prefix by @sidepelican in #729
- jextract: Support nested typealiases by @sidepelican in #731
- jextract/ffm: Treat underscore labels as empty suffixes in function overloads by @sidepelican in #735
- jextract/jni: Handle unexpected types gracefully in Map by @sidepelican in #732
- jextract/jni: Overhaul enum associated value retrieval by @sidepelican in #727
- jextract: Fix compilation errors in constrained generic extensions by @sidepelican in #734
- Fix extension constraint matching for multiple constraints by @ktoso in #736
- Conformance constraints on specializations by @ktoso in #737
- jextract/jni: Fix compilation of nested generic types by @sidepelican in #738
- Make SwiftNominalType.genericArguments non-optional by @sidepelican in #739
- jextract/jni: Overhaul generic specialization to prevent cache contamination by @sidepelican in #741
- jextract/jni: Fix label-based overloading for JNI by @sidepelican in #742
- Build and path handling adjustments to handle both old build system and swift-build by @ktoso in #740
- Preparing release 0.3.0 by @ktoso in #745
New Contributors
Full Changelog: 0.2.0...0.3.0