Skip to content

Updates for JVM/IR atomicfu compiler plugin #322

@mvicsokolova

Description

@mvicsokolova

The following updates in the JVM/IR plugin are coming in 1.9.20:

  • Lots of refactoring with preparation for K/N support (Atomicfu compiler plugin for native #261): commonization of transformations.
  • Improved error handling (checks for visibility constraints, appending message about usage constraints in case of an error).
  • Explicit requirements for the visibility of atomic properties: to prevent leaking they should be private/internal or be members of private/internal classes.
  • Fixed visibility of generated properties: volatile properties are always private and atomic updaters have the same visibility as the original atomic property.
  • Volatile fields are generated from scratch and original atomic properties are removed.
  • Delegated properties support is fixed (only declaration in the same scope is allowed).
  • Non-inline atomic extensions are forbidden.
  • For top-level atomics: only one wrapper class per file (with corresponding visibility) is generated.
  • Bug fixes.

All the changes are here: KT-MR-10579
YT issue (necessary because changes are merged in Kotlin master): KT-60528

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions