Skip to content

Releases: square/kotlinpoet

1.18.1

15 Jul 12:22
Compare
Choose a tag to compare

Thanks to @mitasov-ra for contributing to this release.

  • Fix: Workaround for KT-18706: KotlinPoet now generates import aliases without backticks (#1920).
// before, doesn't compile due to KT-18706
import com.example.one.`$Foo` as `One$Foo`
import com.example.two.`$Foo` as `Two$Foo`

// now, compiles
import com.example.one.`$Foo` as One__Foo
import com.example.two.`$Foo` as Two__Foo

1.18.0

05 Jul 12:03
Compare
Choose a tag to compare

Thanks to @DanielGronau for contributing to this release.

  • New: Kotlin 2.0.0.
  • New: KSP 2.0.0-1.0.22.
  • New: Promote kotlinpoet-metadata out of preview to stable.
  • New: Migrate kotlinpoet-metadata to stable org.jetbrains.kotlin:kotlin-metadata-jvm artifact for Metadata parsing.
  • New: Make enum entry references in KSAnnotation.toAnnotationSpec() and KSClassDeclaration.toClassName() more robust.
  • Fix: Don't expand typealiases of function types to LambdaTypeNames in KSTypeReference.toTypeName().
  • Fix: Avoid rounding small double and float values in %L translation (#1927).
  • Fix: Fix typealias type argument resolution in KSP2 (#1929).

1.17.0

24 May 13:23
Compare
Choose a tag to compare

Thanks to @jisungbin, @hfhbd, @evant, @sgjesse, @sebek64 for contributing to this release.

  • Change: kotlinx-metadata 0.9.0. Note that the KotlinClassMetadata.read is deprecated in 0.9.0 and replaced with readStrict (#1830).
    • Note: we now also provide lenient parameters to map to the underlying readStrict() and readLenient() calls (#1766).
    • We have also removed various Class/TypeElement/Metadata-to-KmClass APIs from the public API, as these are trivial to write now with kotlinx-metadata's newer APIs and allows us to focus the API surface area of this artifact better (#1891).
  • New: Supertype list wraps to one-per-line if the primary constructor spans multiple lines (#1866).
  • New: Extract MemberSpecHolder interface for constructs that can hold PropertySpecs and FunSpecs and their builders (#1877).
  • New: joinToCode variant which operates on any type, but requires a transform lambda to convert each element into a CodeBlock (#1874).
  • New: Support annotation type arguments in KSAnnotation.toAnnotationSpec() (#1889).
  • Fix: Prevent name clashes between a function in class and a function call in current scope (#1850).
  • Fix: Fix extension function imports (#1814).
  • Fix: Omit implicit modifiers on FileSpec.scriptBuilder (#1813).
  • Fix: Fix trailing newline in PropertySpec (#1827).
  • Fix: KSAnnotation.toAnnotationSpec writes varargs in place instead of making them an array to work around a Kotlin issue with OptIn annotations (#1833).
  • Fix: MemberNames without a package are now correctly imported (#1841)
  • Fix: Throw if primary constructor delegates to other constructors (#1859).
  • Fix: Aliased imports with nested class (#1876).
  • Fix: Check for error types in KSType.toClassName() (#1890).
  • Fix: Support generating a single import for overloaded MemberNames (#1909).

1.16.0

18 Jan 23:23
Compare
Choose a tag to compare

Thanks to @drawers, @rickclephas for contributing to this release.

  • New: Kotlin 1.9.22.
  • New: KSP 1.9.22-1.0.16.
  • New: Add NameAllocator API to control keyword pre-allocation (#1803).
  • Fix: Fix issue with missing suspend modifier in KSTypeReference.toTypeName (#1793).
  • Fix: Honour same-package import aliases (#1794).
  • Fix: Always include parameter docs in the type header (#1800).

1.15.3

04 Dec 12:57
Compare
Choose a tag to compare

Thanks to @gabrielittner for contributing to this release.

  • Fix: Fix nullability of lambdas in KSTypeReference.toTypeName (#1756).

1.15.2

30 Nov 16:34
Compare
Choose a tag to compare

Thanks to @evant for contributing to this release.

  • New: Kotlin 1.9.21.
  • New: KSP 1.9.21-1.0.15.
  • New: KSP: more accurately represent function types (#1742).

1.15.1

19 Nov 12:18
Compare
Choose a tag to compare
  • Fix: Fix a regression introduced by #1637, where a superfluous newline is added to a type's KDoc if it has a primary constructor with no docs (#1727).

1.15.0

18 Nov 10:16
Compare
Choose a tag to compare

Thanks to @drawers, @fejesjoco, @takahirom, @martinbonnin, @mcarleio for contributing to this release.

In this release the :kotlinpoet module has been converted to a Kotlin Multiplatform module (#1654), though for now it only supports the JVM target.

  • New: Kotlin 1.9.20.
  • New: KSP 1.9.20-1.0.14.
  • New: Extract TypeSpecHolder interface for constructs that can hold a TypeSpec and their builders (#1723).
  • New: Expose relative path from FileSpec (#1720).
  • New: Return the generated path from FileSpec.writeTo(). (#1514).
  • New: Remove default compatibility from unstable types (#1662).
  • New: Deprecate TypeSpec.expectClassBuilder() and TypeSpec.valueClassBuilder() (#1589).
  • New: Add option to convert KSAnnotation to AnnotationSpec while omitting default values (#1538).
  • New: Add FileSpec.builder convenience for MemberName (#1585).
  • Fix: Set DecimalFormatSymbols.minusSign for consistency across locales (#1658).
  • Fix: Fix link to incremental KSP in KDoc (#1638).
  • Fix: Emit primary constructor KDoc (#1637).
  • Change: kotlinx-metadata 0.7.0. This is a breaking change for users of the :kotlinpoet-metadata module, as most Flags-API extensions have been removed in favor of the now-available first-party versions.

1.14.2

30 May 09:35
Compare
Choose a tag to compare
  • Fix: Fix one more missing API in binary compatibility override in Annotatable.Builder (#1581).

1.14.1

29 May 15:33
Compare
Choose a tag to compare
  • Fix: Restore ABI stability for annotatable and documentable builders (#1580).