Scala Download (2025 Latest)

What’s new in this version:

Highlights:
– Warn if implicit default shadows given
– Standardize on -Vprint:… (still support -Xprint:… as alias)

Other changes and fixes:

Desugaring:
– Optimize simple tuple extraction

Enums:
– Make hashcode of enum items stable

Erasure:
– Replace erased class modifiers with Erased base traits
– Bring back part of PruneErasedDefs

Experimental: Capture Checking:
– Fix parsing crash for update in later phases
– Implement boxing for singleton type arguments
– Expand Capability types also in arguments of Capability classes
– Adjustments to the capability trilogy
– Set context owner to the method for paramsToCap
– Flatten nested capture sets in retainedElementsRaw
– Fix well-formed test for capabilities
– Add restricted capabilities x.only[C]
– Rely on hidden sets for use checking

Experimental: Separation Checking:
– Make separation checking controlled by language import

Experimental: Erased Definitions:
– Refactorings and fixes to erased definition handling

Experimental: Explicit Nulls:
– Add quick fix to remove unnecessary .nn
– Add stableNull annotation to force tracking mutable fields

Experimental: Global Initialization:
– Rewrite resolveThis in global init checker
– Fix errors in the global initialization checker when compiling bootstrapped dotty
– Fix error in product-sequence match in global init checker

Experimental: Into:
– Fix isConversionTargetType test

Experimental: Modularity:
– Refinements to skolemizaton

Experimental: Unroll:
– Enable UnrollDefinitions phase in REPL frontend phases

Extension Methods:
– Avoid forcing extension on check of local select

Implicits:
– Refine implicit search fallbacks for better ClassTag handling

Inline:
– Fix Symbol.info remapping in TreeTypeMap
– Fail not inlined inline method calls early
– Fix inline export forwarder generation regression

Linting:
– Consider setter of effectively private var
– Add accessible check for import usage
– Check OrType in interpolated toString lint
– Use result of lambda type of implicit in CheckUnused
– Add suppression if nowarn differs

Match Types:
– Fix: Distinguish 0.0 and -0.0 in ConstantType match types

Named Tuples:
– Skip bypassing unapply for scala 2 case classes to allow for single-element named tuple in unapply

Parser:
– Enforce -new-syntax under -language:future
– Disallow Scala 2 implicits under -source:future

Pattern Matching:
– Fix problems in checking that a constructor is uninhabited for exhaustive match checking

Pickling:
– Don’t force annotation unpickling when testing for SilentIntoAnnot
– Drop invalid assumption from TastyUnpickler

Printer:
– Print update modifier when printing update method definitions

Positions:
– Compare span points in pathTo to determine best span
– Add line number magic comment support

Presentation Compiler:
– Port Inlay hints for name parameters
– Fix: Simplify infer type for apply
– Fix: Inconsistent annotation tooltips
– Fix adjust type when already exists
– Exclude named parameters inlay hints for java defined
– Fix: StringIndexOutOfBoundsException in presentation compiler’s hasColon method
– Add InferredMethodProvider for automatic method signature generation
– Fix completions for Quotes
– Handle default arguments in named parameters for inlay hints
– Fix issue with pc breaking in requiredMethod on newly overloaded valueOf
– Handle default arguments in named parameters for inlay hints
– Fix extracting refinements from intersection types in dynamic select hovers

Quotes:
– Skip splice level checking for symbols
    – Fix stale top level synthetic package object being used in later runs
– Emit an error for quoted pattern type variable after new
– Fix issue with certain polyfunctions not properly matching in macros
– Check PCP of constructor calls on the type

Reflection:
– Quotes reflect: sort the typeMembers output list and filter out non-members

Reporting:
– Add an explainer to the DoubleDefinition error
– Suppress warnings in comprehensions with 22+ binds
– Unhelpful error message when trying to use named extraction, when not matching case class or named tuple
– Improve error message for conflicting definitions
– -Yprofile-trace properly report macro splicing source
– -Yprofile-trace profiles all inline calls

Rewrites:
– Patch empty implicit parens on error recovery
– Rewrite underscore with optional space

Runner:
– Bump Scala CLI to v1.9.0 (was v1.8.4)

Scaladoc:
– Scaladoc: fixes and improvements to context bounds and extension methods
– Encode path of class

SemanticDB:
– Bugfix: Also save infos in semanticdb

Transform:
– Handle multiple type parameter lists in value class methods
– Check path of module prefix for tailrec

Tuples:
– Normalize tuple types in var args seq literals and classOf instances

Typer:
– Fix
– Fix this references everywhere in dependent function types
– Don’t approximate a type using Nothing as prefix
– Support cleanup actions in class completers
– Fix regressions in asSeenFrom introduced in 3.7
– Use correct owner in eta expansion
– Fix irrefutability checking in for with untupling
– Fix missing members reporting for var setters
– Guard against invalid prefixes in argForParam
– Add missing case to TypeComparer
– Fix match type bounds checking problem
– Generalize “Don’t approximate a type using Nothing as prefix”
– More careful ClassTag instantiation
– Use more context for implicit search only if no default argument

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top