Skip to content

1.1.0

Compare
Choose a tag to compare
@beta-ziliani beta-ziliani released this 14 Jul 18:27
· 2337 commits to master since this release
af095d7

1.1.0 (2021-07-14)

Language changes

  • Support splat expansions inside tuple and array literals. (#10429, thanks @HertzDevil)
  • Support breaks with values inside while expressions. (#10566, thanks @HertzDevil)

Macros

Standard library

Global changes

Windows support

Type annotations

Numeric

Text

Collections

Crypto

Time

Files

Fibers

Networking

System

Runtime

Serialization

Specs

Compiler

  • Add support for type var splats inside Tuple during generic parameter substitution. (#10232, thanks @HertzDevil)
  • Fix: consider free vars in parameters of abstract def implementations before existing types, in particular fixing the creation of empty types. (#10503, thanks @HertzDevil)
  • Fix variance checks between generic instances for Proc#call and abstract defs. (#10507, #10899, thanks @HertzDevil)
  • Fix error message when default parameter value doesn't match non-type restriction. (#10515, thanks @HertzDevil)
  • Fix type restriction logic for generic module instances. (#10519, thanks @HertzDevil)
  • Fix logic for subclass restricted against uninstantiated nested generic superclass. (#10522, #10560, thanks @HertzDevil)
  • Fix: eliminate extraneous types in certain non-commutative unions. (#10527, thanks @HertzDevil)
  • Fix: exclude variables' final types inside while true if re-assigned before first break. (#10538, thanks @HertzDevil)
  • Make Pointer(T)#value= even stricter for generic arguments. (#10553, thanks @HertzDevil)
  • Fix body locations for def nodes that have default args . (#10619, thanks @oprypin)
  • Fix call nodes' location after transforming its splats. (#10620, thanks @oprypin)
  • Fix check_type_allowed_as_proc_argument to show the type name. (#10688, thanks @straight-shoota)
  • Add free variables to "no overload matches" errors. (#10692, thanks @HertzDevil)
  • Fix: make virtual unbound types also unbound. (#10704, thanks @HertzDevil)
  • Fix: run instance variable initializers on instantiated generic superclasses only. (#10729, thanks @HertzDevil)
  • Fix: allow previous_def to init superclass's non-nilable ivars. (#10733, thanks @HertzDevil)
  • Fix: Use only last sub-expression of Expressions nodes for conditional type filters. (#10738, thanks @HertzDevil)
  • Fix: Don't compute type filters inside typeof's argument. (#10739, thanks @HertzDevil)
  • Fix: Devirtualize types in TypeNode#==(other : TypeNode) and #!=. (#10742, thanks @HertzDevil)
  • Fix exit types of variables assigned inside while conditions. (#10759, thanks @HertzDevil)
  • Fix logic for responds_to? of generic module instances. (#10760, thanks @HertzDevil)
  • Add support for accessing a common value of a union type. (#10770, thanks @asterite)
  • Fix subtype relation when generic type variable is a virtual abstract struct. (#10779, thanks @HertzDevil)
  • Fix array literals consisting entirely of splat expansions. (#10792, thanks @HertzDevil)
  • Fix parsing macro literal containing char literal. (#10799, thanks @straight-shoota)
  • Refactor: Use type instead of is_a? in filters. (#10815, thanks @caspiano)
  • Expand named macro expression arguments before outer macro call expansion. (#10819, thanks @HertzDevil)
  • Be more strict about printing operator calls as short forms. (#10825, thanks @HertzDevil)
  • Fix union logic between metaclasses of uninstantiated generic classes in same hierarchy. (#10832, thanks @HertzDevil)
  • Fix uninstantiated generic classes casting to themselves. (#10883, thanks @HertzDevil)
  • Allow underscore in block return type even if the type can't be computed (#10933, thanks @asterite)
  • Fix parser identifies call with named args as var (#10842, thanks @straight-shoota)

Tools

Formatter

Doc generator

Others