Skip to content

Latest commit

 

History

History
143 lines (119 loc) · 6.09 KB

File metadata and controls

143 lines (119 loc) · 6.09 KB

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Added

  • isInstanceOf to check whether a variable is an instance of a certain class or protocol
  • pick to convert implementation class to a specific protocol

Changed

  • Changed the error message when a procedure is unimplemented in implementation class

v0.7.1 -2023-10-21

Fixed

  • Fixed the bug that constructors cannot be called

v0.7.0 -2023-8-27

Added

  • class macro can now generate multiple constructors
  • class macro can now deal with multiple implementations of protocol
    • See tests dir for more details
  • {.construct.} macro that generates a constructor for standard type definitions
  • {.protocoled.} macro that make a tuple definition a protocol

Changed

  • Renamed toInterface to toProtocol
  • Removed implemented procedures in protocol due to the BREAKING CHANGES
    • This feature will be back in the next version

Removed

💥BREAKING CHANGES

  • Removed some features below:
    • Class data constant
    • Inheritance class, super keyword and {.open.}
    • Alias class
    • {.pClass.}, {.pProtocol.}
    • {.noNewDef.} for class

v0.6.1 -2023-2-5

Fixed

  • a bug that prevent working from exported variables

v0.6.0 -2023-2-5

Removed

  • Argument type inference
  • Support for generics

v0.5.0 -2022-9-24

Added

  • NamedTuple implementation #78
    • classes aliasing tuples are now converted to named tuples and member variables can be defined
  • Argument type inference #101
    • types of arguments in constructors are now inserted automatically
  • Implemented procedures in protocol #94
    • procedures can now be implemented in protocols
  • super for constructor of inheritance classes #102
  • {.initial.} to set initial values #118

Removed

  • Old constructors are now removed #96

v0.4.3 -2022-5-22

Fixed

  • a bug that toInterface was not exported

v0.4.2 - 2022-5-22

Fixed

  • a bug that protocol was not exported

v0.4.1 - 2022-5-21

Fixed

  • exported properties in implementation classes now work properly #106
  • func in implementation classes now don't cause errors #107

Changed

  • Improved error indication for lack of properties in implementation classes

v0.4.0 - 2022-5-5

Added

  • protocol that defines a tuple for an interface #76
    • toInterface is used for interface implementations
    • Properties marked with {.ignored.} is ignored when interfaces are implemented
    • isProtocol to check a type is protocol or not
  • Omission of body #85
    • class and protocol are now called without their bodies
  • Alternative constructor #77
  • Support for generics #93

Deprecated

  • newType
    • Use Type.new instead

v0.3.0 - 2021-10-16

Added

  • Type inference for default args #55
    • Member variables with default values can now be defined without type annotation
  • Class data constants #56
  • isClass to check a type is class or not #27
  • Alias class #25
  • {.noNewDef.} to not define constructors #43

v0.2.2 - 2021-8-26 [YANKED]

Fixed

  • A bug that prevented {.open.} from working #42

Changed

  • Disabled auto-definition of subclass constructors #44
    • Constructors are now not defined automatically in subclasses
  • Subclasses are now warning when {.open.} is used together #42

v0.2.1 - 2021-8-23 [YANKED]

Fixed

  • A bug in constructors #42

v0.2.0 - 2021-8-22

Added

  • Auto-definition of constructors #6
  • Assistance with constructor definition #6
  • {.open.} to allow inheritance #13
  • Support for converter #16
  • super keyword for method #20

Fixed

  • A bug when variables are marked with * #37

v0.1.0 - 2021-8-1

  • 🎉 First release!