Scala 3 feature status overview

Summarizing the doc per status (where the status is strawpoll status), I come to

Finalized and accept for 3.0

  • implicit function types
  • dependent function types
  • drop auto application
  • drop class shadowing
  • intersection types
  • union types
  • drop compound types
  • trait parameters
  • drop early initializers
  • drop existential types
  • drop procedure syntax
  • drop symbol literals
  • drop type projections
  • enums (rly? with/without widening apply/nesting?)
  • eta expansion
  • extension methods (has the bikeshed been fully painted?)
  • given instances
  • given import
  • using clauses
  • kind polymorphism
  • name based pattern matching
  • opaque type aliases
  • type lambdas
  • harmonization instead of weak conformance
  • main functions (with or without some form of parameter parsing)
  • toplevel defs (modulo details)

accepted for 3.1

  • drop xml syntax

rejected for 3.0 without prejudice

  • erased terms (probably 3.1)
  • nullability (feature not ready)
  • numeric literals (probably 3.1)
  • drop auto tupling (scala 2 world not ready)
  • named type arguments (unlikely to be re-submitted, as close as rejected with prejudice as it gets)

no consensus or no (closed) public discussion

  • @alpha
  • creator applications
  • drop DelayedInit
  • drop do…while
  • drop non-local return
  • export clauses
  • Conversion
  • implicit resolution changes (minutes suggest these should be split in all individual cases?)
  • indentation syntax
  • main functions
  • match types
  • meta programming
  • multiversal equality
  • parameter untupling
  • pattern bindings
  • polymorphic function types
  • structural types
  • wildcard types with ?

(edits reflect Martins corrections)

5 Likes