v0.39.0 – Circumfix Operators, Improved GenSrc Methods, Nested String Interpolation and bugfixes

  • New Features:
    • Nested String Interpolation #387
    • GenSrc Call Directives can now accept trailing blocks. #388
    • Circumfix Operators #389
  • Bugfixes:
    • Capture in nested method calls. #267
    • Reified Type Parameters are now properly captured. #381
  • Other Changes:
    • Parameters can no longer be captured by reference. #386
    • Overriding Static Methods now generates bridge methods. #391
    • Removed Increment and Decrement Operators. #390

v0.40.0 – Extension Classes and Mixed Attribute Declarations

  • New Features:
    • Extension Classes #304 #406
    • BytecodeName on classes #394
    • Attributes within declarations #400
    • Duplicate class bytecode names now cause a diagnostic error. #403
  • Bugfixes:
    • Throw Statements without an expression no longer cause compiler errors. #392
  • Other Changes:
    • Revised Trait Initialization #396
    • Revised Compiler Arguments #402
    • Improved inner class bytecode naming #401

v0.41.0 – Varargs Fences, Improved Property Names, JavaName Annotation and Bugfixes

  • New Features:
    • Varargs Fences #412
  • Bugfixes:
    • Malformed infix type operators no longer cause compiler errors. #373
    • print({}) no longer causes a compiler error. #404
    • type([:]) no longer causes a compiler error. #407
    • Trailing closure syntax now works with explicit closure parameter names. #408
    • Implicit conversions are now correctly resolved. #410
    • Lambdas now support constructor references correctly. #411
    • Implicit Receivers are now captured correctly. #415
    • type((,,,)->) no longer causes a compiler error. #417
    • Malformed infix operators no longer cause compiler errors. #418
    • match 1 case no longer causes a compiler error. #420
    • Markers on EOF are no longer printed incorrectly. #421
    • Extension Methods can now be resolved from nested Extension Classes. #423
    • Nested Extension Classes no longer produce an unnecessary “static” warning. #424
    • Implicit Conversions in Extension Classes in the REPL are now accessible. #426
    • Match Expressions with Throw Statements no longer cause verification errors. #430
  • Other Changes:
    • @BytecodeName is now named @JavaName #405
    • Method and class name ambiguities in the REPL are now resolved by newest definition priority. #413 #425
    • Properties now use conventional Java names. #414
    • The @DyvilName annotation is no longer allowed in Dyvil source code. #416
    • Removed the :rename REPL command. #427

v0.41.1 – Compiler Bugfixes

  • Bugfixes:
    • Package types no longer cause compiler errors. #428
    • Package resolution is no longer case-insensitive. #429
    • Added a missing localization key try.catch.type. #435
    • Attributes after the Throws list no longer cause syntax errors. #436
    • Patterns with conditional guards are no longer counted as duplicate. #437
    • Char Patterns no longer generate useless if safeguards in bytecode. #438

v0.42.0 – Generic Extension Classes

  • New Features:
    • Generic Extension Classes #422
  • Deprecation:
    • C-Style For Loops are now deprecated. #440
  • Bugfixes:
    • Ambiguous generic method calls no longer cause compiler error. #441

v0.42.1

  • Bugfixes:
    • Extension Method parameter indices are no longer offset. #443

v0.42.2

  • Bugfixes:
    • Deprecated classes no longer cause compiler errors. #449
    • Method receiver types are now decompiled correctly. #444

v0.43.0 – Java Collection Extensions and Final Extension Methods

  • New Features:
    • Added Java Collection Extensions. #445 #448
    • Added support for different styles of diagnostic marker output. #451
    • Added support for final Extension Methods. #455
  • Bugfixes:
    • Wildcard Lambda Expressions now work with field-like access. #452
  • Deprecation:
    • Deprecated the dyvil.io.FileUtils class. #446
  • Other Changes:
    • Dropped support for C-Style For Loops. #447
    • Nested Methods are now private by default. #461

v0.44.0 – JLine REPL Input, Command Tab Completion, and improved Diagnostics

  • New Features:
    • Added compiler flags for different styles of diagnostic marker output. #454
    • Invalid access modifier combinations now cause a diagnostic error. #459
    • Non-private nested methods now cause a diagnostic error. #460
    • The REPL now uses JLine for input. #463
    • REPL Commands can now be tab-completed. #466

v0.44.1

  • Other Changes:
    • Fixed errors and warnings in Javadoc comments.

v0.45.0 – Extension Properties and Array Extensions

  • New Features:
    • Extensions for Array Types #476
    • Extension Properties #478
  • Bugfixes:
    • Fenced Arguments now count as named, which avoids method resolution failure in some cases. #470
    • Immutability Error Diagnostics are no longer translated incorrectly. #480
    • Function Types are now rendered correctly in diagnostic messages. #481
    • Wildcard Patterns no longer produce invalid markers. #482
    • @UsageInfo no longer causes compiler errors. #483
  • Deprecation:
    • Deprecated Control Statements without a Block. #468
    • Deprecated non-void methods without an explicit return type. #471
    • Deprecated non-symbolic infix functions. #474
    • Deprecated prefix, infix and postfix functions without exactly one/two parameter(s). #477
  • Other Changes:
    • Improved style and wording across all diagnostic messages. #469
    • The prefix modifier is now correctly reified in bytecode. #475

v0.45.1

  • Other Changes:
    • Bumped REPL, GenSrc and DPF version numbers.