Skip to content

3.7.2-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 24 Jun 09:34
· 129 commits to main since this release
3f98956

Highlights of the release

  • Implement applied constructor types #22543
  • Bump Scala CLI to v1.8.1 (was v1.8.0) #23334

Other changes and fixes

Documentation

  • Mark AnyRef::eq and AnyRef::ne as infix instead of special casing when emitting the warning #23252
  • Mark eq and ne in Predef as infix #23255

Experimental: Capture Checking

  • Allow caps in result types of functions to be mapped to reaches #23275
  • Adapt types according to read-only status #23332
  • Rename mut to update #23335
  • Change retains annotation from using term arguments to using type arguments #22909
  • New Syntax for Capture Variables and Explicit Capture Polymorphism v3 #23063
  • Fix #23223: Add handling for classes deriving from Capability during Setup #23248
  • Copy @use and @consume annotations to parameter types #23324
  • Fix handling of @use and @consume in class parameters #23342
  • Some usability improvements relating to errors #23370
  • Loosen the "does not match previously inferred" criterion #23067
  • Use level checking for Fresh instances #23101
  • Ensure all capture variables carry the attachment #23162
  • Cache ResultCaps #23198
  • Move separation checking to -source:3.8 #23249
  • Refactorings for CC error reporting #23260
  • Standardize on log-based undo #23357
  • Flag nonsensical capturing types with pure parents as errors #23367

Experimental: Erased Definitions

  • Erased fields are not nullable #23311

Experimental: Explicit Nulls

  • Relax comparison between Null and reference types in explicit nulls #23308
  • Warn about unnecessary uses of .nn #23327

Experimental: Global Initialization

  • Modified abstract domain in global initialization checker #23138

Experimental: Into Modifier

  • Change into scheme to be fully type-based #23014

Implicits

  • Try extensions for arguments with type mismatch error #23212

Linting

  • Improve checking LHS of Assign #22977
  • Remove premature caching of lookups for unused lint #22982
  • Enclosing package p.q not visible as q #23069
  • Mention extension in unused param warning #23132
  • Improve Unit ascription escape hatch #23147
  • Dealias for unused param check #23256
  • Take inferred or explicit refinement result for unused check #23325
  • Nowarn receiver of extension taking params #23351
  • Improved edit span for import #23083

Parser

  • Fix incorrect warning with -no-indent #23216
  • Patvar: adjust caret in error message #23115
  • Disallow empty parameter clauses in extension definition #23143

Pattern Matching

  • Improve GADT reasoning for pattern alternatives #23205

Pickling

  • Try to handle SkolemTypes in SingletonTypeTree during pickling #23236
  • Avoid creating constructors where not warranted #23178

Presentation Compiler

  • Use untpd.Tree instead of tpd.Tree for SelectionRangeProvider #22702
  • Fix completion mode filtering + optimize scopeCompletions #23172
  • Handle multiple params lists in for infer type #23197
  • Add jpath to VirtualFile (for pc) #23203
  • Add selection ranges for more names #23257
  • Add inlay hints for by-name parameters #23283
  • Implement code action 'convert to named lambda parameters' #22799
  • Buffix: Make PC actions work for re-exported symbols #22722
  • Bugfix: Fix enumeration issues when Value is imported #23124
  • Bugfix: Check in the collector for empty arrays #23341
  • Bugfix: Don't check scope members if not needed #23384
  • Improvement: Don't dealias named tuples for type hints #23013
  • Improvement: Simplify match types when possible #23146
  • Improvement: Improve efficiency of completions #23355
  • Improvement: Cache compilation on . and don't add CURSOR #23356

Private Options

  • Add an -Yimplicit-to-given flag for rewrites to easily test changes in the ecosystem #22580
  • Add scala.language.2.13 #23219

Rewrites

  • Remove empty parentheses when rewriting implicits to givens #23339

Quotes

  • Preserve implicits in Quotes context #23263
  • Don't StackOverflow when printing RecursiveType structure. #22859

Reflection

  • Forbid StringConstant(null) #23064

Reporting

  • Fix incorrect warning on type ascription for backquoted identifiers #23088
  • Improve position of deprecation #23052
  • Have a better error message when context bounds are not allowed #23190
  • Avoid false warning when synthesising deferred givens #23087
  • Fix insufficient number width allocated when using -print-lines #23336

SemanticDB

  • Fix SemantiDB production of method signature with shadowed parameters #23161
  • Check if symbol exists before calling methods on it #23376

Settings

  • Filter allowed source versions by import and by settings #23215

Tooling

  • Suggest to add using as a code action #23079

Transform

  • Warn trivial recursion with module prefix #23278
  • Partial function synthesis changesOwner of selector #23337

Typer

  • Compare TypeVar and TypeParamRef in mergeRefinedOrApplied #23045
  • Revert recent changes to opaque type proxy generation #23059
  • Only keep denotation for methods in IntegrateMap #23226
  • Tighten condition when to do SAM type conversion #23246
  • Revert "Make overload pruning based on result types less aggressive (#21744)" in main #23331
  • Tweak parameter dependency test when typing applications #23346
  • Ensure pt span exists in implicitParams migration #23372
  • Check for error before checking members of product type in getUnapplySelectors #23358
  • Synthesise value of this.type in ValueOf #23094
  • Hide constructor proxies at PostTyper #23269