Dotty Versions Save

The Scala 3 compiler, also known as Dotty.

3.4.0-RC3

3 months ago

Backported fixes

  • Sync language.scala with main and backport "Add tests for context bounds migration" #19515
  • Handle default implicits to context parameters under -3.4-migration #19512

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.4.0-RC2..3.4.0-RC3 these are:

     4	Paweł Marks
     1	Martin Odersky
     1	Nicolas Stucki

3.4.0-RC2

4 months ago

Backported fixes

  • Fix expandParam's use of argForParam/isArgPrefixOf. #19412
  • Remove ascriptionVarargsUnpacking as we never used it #19399
  • Make explicit arguments for context bounds an error from 3.5 #19316
  • Avoid generating given definitions that loop #19282
  • Turn given loop prevention on for -source future #19392
  • Fix algorithm to prevent recursive givens #19411

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.4.0-RC1..3.4.0-RC2 these are:

    15	Martin Odersky
     4	Nicolas Stucki
     3	Paweł Marks
     1	Dale Wijnand
     1	Jan Chyb

3.4.0-RC1

5 months ago

Highlights of the release

  • Make polymorphic functions more efficient and expressive #17548
  • SIP-56: Better foundations for match types #18262
  • Make SIP 54 (Multi-Source Extension Overloads) a standard feature #17441
  • Value parameter inference for polymorphic lambdas #18041
  • Add @publicInBinary annotation and -WunstableInlineAccessors linting flag #18402
  • Stabilize Quotes defn.PolyFunction #18480
  • Stabilize Quotes Flags.AbsOverride #18482
  • Add -experimental compiler flags #18571
  • Stabilize SIP-53 (quote pattern explicit type variable syntax) #18574
  • Add reflect TypeRepr.dealiasKeepOpaques #18583
  • Add attributes section to TASTy and use it for Stdlib TASTy #18599
  • Error when reading class file with unknown newer jdk version #18618
  • Add support for xsbti.compile.CompileProgress #18739
  • Improve type inference for functions like fold #18780
  • Improve error message for mismatched tasty versions, allow configuration of header unpickler #18828
  • In 3.4 make refutable patterns in a for comprehension an error #18842
  • Disallow use of PolyFunction in user code #18920
  • Store source file in TASTY attributes #18948
  • First step to pipelining support - enable reading Java symbols from TASTy #19074
  • Activate constrainResult fix in 3.4 #19253
  • Parallelise JVM backend - Scala 2 port #15392

Deprecation warnings for old syntax

Other changes and fixes

Backend

  • Count size of parameters for platform limit check #18464
  • Don't emit line number for synthetic unit value #18717
  • Avoid too eager transform of $outer for lhs & accessor rhs #18949
  • Make more anonymous functions static #19251
  • Fix deadlock in initialization of CoreBTypes using Lazy container #19298
  • Fix #18769: Allow HK type args in Java signatures. #18883
  • Loading symbols from TASTy files directly #17594
  • Use dedicated equals method for univerval equality of chars #18770

Erasure

  • Get generic signature of fields entered after erasure from their accessor #19207
  • Detect case where two alternatives are the same after widening ExprTypes #18787
  • Improve erased params logic #18433

Experimental: Capture Checking

  • Fix capture set variable installation in Setup #18885
  • Don't follow opaque aliases when transforming sym info for cc #18929
  • Reset comparersInUse to zero in ContextState.reset #18915
  • Special handling of experimental.captureChecking import #17427
  • Change handling of curried function types in capture checking #18131
  • Fix #18246: correctly compute capture sets in TypeComparer.glb #18254
  • New capture escape checking based on levels #18463
  • A more robust scheme for resetting denotations after Recheck #18534
  • A more flexible scheme for handling the universal capability #18699
  • Fix potential soundness hole when adding references to a mapped capture set #18758
  • Alternative scheme for cc encapsulation #18899
  • Make reach refinement shallow #19171

F-bounds

  • Don't check bounds of Java applications in Java units #18054

GADTs

  • Avoid embedding SelectionProtos in Conversions #17755
  • Freeze constraints while calculating GADT full bounds #18222

Implicits

  • Followup fix to transparent inline conversion #18130
  • Select local implicits over name-imported over wildcard imported #18203
  • Fix how implicit candidates are combined #18321
  • Improve error message about missing type of context function parameter #18788
  • Support implicit arguments before extractor method #18671
  • Tweak convertible implicits fix #18727

Incremental Compilation

  • Make incremental compilation aware of synthesized mirrors #18310

Inference

  • Honour hard unions in lubbing and param replacing #18680

Infrastructure

  • Use -Yscala2-library-tasty to add Scala 2 lib TASTY to scalac (internal only) #18613
  • Rename stdlib-bootstrapped-tasty to scala2-library-tasty #18615
  • Fix #19286: Freeze rubygems-update at < 3.5.0. #19288

Initialization

  • Fix #17997: Handle intersection type as this type of super type #18069
  • Add test for issue #17997 affecting the global object initialization checker #18141
  • Fix i18624 and add test case for it #18859
  • Treat new Array(0) as immutable #19192
  • Fix #18407: Ignore Quote/Slice in init checker #18848
  • Check safe initialization of static objects #16970
  • Pattern match support in checking global objects #18127
  • Fix crash in global object initialization checker when select target has no source #18627
  • Fix warning underlining in global init checker #18668
  • Fix i18629 #18839
  • I18628 #18841
  • Make safe init checker skip global objects #18906
  • Handle local lazy vals properly #18998

Inline

  • Fix regression: inline match crash when rhs uses private inlined methods #18595
  • Add structural classes of dynamicApply before inlining #18766
  • Set missing expansion span for copied inlined node #18229
  • Fix callTrace of inlined methods #18738

Linting

  • Keep tree of type ascriptions of quote pattern splices #18412
  • Fix false positive in WUnused for renamed path-dependent imports #18468
  • Fix false positive in WUnused for renamed path-dependent imports (2) #18617
  • Fix wunused false positive on CanEqual #18641
  • Implement -Xlint:private-shadow, type-parameter-shadow #17622
  • Fix: reversed wconf parsing order to mirror scala 2 #18503
  • Revert Fix false positive in WUnused for renamed path-dependent imports #18514

Macro Annotations

  • Enter missing symbols generated by the MacroAnnotation expansion #18826

Match Types

  • Allow Tuple.Head and Tuple.Tail to work with EmptyTuple #17189
  • Fix match type reduction with avoided types #18043
  • Strip LazyRef before calling simplified, in MT reduction #18218
  • Fix MT separate compilation bug #18398
  • Do not show deprecation warning for _ in type match case #18887

Nullability

  • Improve logic when to emit pattern type error #18093
  • Allow nullability flow typing even in presence of pattern match #18206
  • Fix #11967: flow typing nullability in pattern matches #18212
  • Fix #18282: consider Predef.eq/ne in nullability flow typing #18299
  • Make this.type nullable again (unless under -Yexplicit-nulls). #18399

Opaque Types

  • Type ascribe trees that require opaque type usage #18101

Parser

  • Fix selecting terms using root #18335
  • Tweak java getlitch not to skip zero #18491
  • Fix i18518 #18520
  • Only apply future patches on future-migration #18820
  • Parser simple expression error recovery change from null to ??? #19103

Pattern Matching

  • Fix syntax and parsing of vararg patterns #18055
  • Avoid over widening in SpaceEngine #18252
  • Fix regression in exhaustivity of HK types #18303
  • Fix missing case in isSubspace, which broke reachablility #18326
  • Unsuppress unchecked warnings #18377
  • Consider extension methods in Space isSameUnapply #18642
  • Fix unreachable warning in deeply nested sealed hierarchy #18706
  • Remove unnecessary and recursive Space decomposition #19216
  • Prioritise sequence-matches over product-sequence-matches #19260
  • Propagate constant in result of inline match #18455
  • Disable match anaylsis in inlined trees #19190
  • Teach provablyDisjoint about AnyKind #18510
  • Warn about unchecked type tests in primitive catch cases #19206
  • Reprioritise seq-match over product-seq-match #19277
  • Fix exhaustivity due to separate TypeVar lambdas #18616

Presentation Compiler

  • Support completions for extension definition parameter #18331
  • Fix: Don't collect map, flatMap, withFilter in for-comprehension #18430
  • Bugfix: Catch exception from the compiler for broken shadowed pickles #18502
  • Bugfix: highlight for enum type params #18528
  • Bugfix: No signature help for local methods #18594
  • Bugfix: add moduleClass imported symbols in IndexedContext #18620
  • Bugfix: Named args completions with default values #18633
  • Fix: match completions for type aliases #18667
  • Bugfix: add multiline comment completion #18703
  • Bugfix: Backticked named arguments #18704
  • Bugfix: [metals] Case completions for tuple type #18751
  • Completions should prepend, not replace as it is for Scala 2 #18803
  • Bugfix: rename end marker #18838
  • Presentation compiler: Bugfix for semantic tokens and synthetic decorations #18955
  • Show documentation for value forwarders in completions #19200
  • Bugfix: Document highlight on class constructors #19209
  • Bugfix: Completions for extension methods with name conflict #19225

Polyfunctions

  • Check user defined PolyFunction refinements #18457
  • Support polymorphic functions with erased parameters #18293
  • Use PolyFunction instead of ErasedFunction #18295

Quotes

  • Support type variable with bounds in quoted pattern #16910
  • Add new EXPLICITtpt to TASTy format #17298
  • Inhibit typer to insert contextual arguments when it is inside arguments of HOAS patterns #18040
  • Compile quote patterns directly into QuotePattern AST #18133
  • Add missing span to synthesized product mirror #18354
  • Improve non-static macro implementation error message #18405
  • Fix scala 2 macros in traits with type parameters #18663
  • Patch underlyingArgument to avoid mapping into modules #18923
  • Fallback erasing term references #18731
  • Fix ignored type variable bound warning in type quote pattern #18199
  • Splice hole with singleton captures #18357
  • Fix macros with erased arguments #18431
  • Deprecate 3-arg FunctionClass constructor #18472
  • Deprecate Quotes {MethodType,TermParamClause}.isErased #18479
  • Avoid crashes on missing positions #19250

Reflection

  • Add reflect.ValOrDefDef #16974
  • Check New tree for ill-formed module instantiations #17553
  • Add reflect TypeLambda.paramVariances #17568
  • Make check flags for newMethod, newVal and newBind in Quotes API less restrictive #18217
  • Normalise mirrorType for mirror Synthesis #19199
  • Add reflect defn.FunctionClass overloads #16849
  • Stabilize reflect flag JavaAnnotation #19267
  • Stabilize reflect paramVariance #19268

Reporting

  • Take into account the result type of inline implicit conversions unless they are transparent #17924
  • Check if a fatal warning issued in typer is silenced, before converting it into an error #18089
  • Elide companion defs to a object extending AnyVal #18451
  • Add regression test for issue i18493 #18497
  • Add better explanation to error message #18665
  • Better error message when accessing private members #18690
  • Improve message for discarded pure non-Unit values #18723
  • Better error message when a pattern match extractor is not found. #18725
  • Give "did you mean ...?" hints also for simple identifiers #18747
  • Better error for definition followed by keyword #18752
  • Better explain message for 'pattern expected' #18753
  • Improve failure message of enum fromOrdinal/valueOf #19182
  • Fix type mismatch error confusion between types with same simple name #19204
  • Add hint for nested quotes missing staged Quotes #18755
  • Better error messages for missing commas and more #18785
  • Fix imported twice error messages #18102
  • Improve error message for inaccessible types #18406
  • Future migration warning for with type operator #18818
  • Improve assertion error message for Apply and TypeApply #18700
  • Shorten traces for TypeMismatch errors under -explain [#18742](https://gi
  • Improve with in type migration warning #18852 hub.com/lampepfl/dotty/pull/18742)
  • Future migration warning for alphanumeric infix operator #18908
  • Make sure that trace is shown correctly in the presence of invalid line numbers #18930
  • Add migration warning for XML literals in language future #19101
  • Avoid diagnostic message forcing crashing the compiler #19113
  • Make sure that the stacktrace is shown with -Ydebug-unpickling #19115
  • Improve asExprOf cast error formatting #19195
  • Do not warn on underscore wildcard type in pattern #19249

Scala-JS

  • Fix #18658: Handle varargs of generic types in JSExportsGen. #18659

Scaladoc

  • Fix incorrect comment parser used in nightly scaladoc #18523

SemanticDB

  • Export diagnostics (including unused warnings) to SemanticDB #17835
  • Bugfix: Incorrect semanticdb span on Selectable #18576
  • Bugfix: in semanticdb make synthetic apply disambiguator consistent w/ Scala 2 implicit #17341

Standard Library

  • Intrinsify constValueTuple and summonAll #18013
  • Fix #18609: Add language.3.4 and language.3.4-migration. #18610

TASTy format

  • Eliminate FromJavaObject from TASTy of Java sources #19259
  • Add new HOLETYPES to TASTy format #17225
  • Add capture checking attributes to TASTy #19033
  • Add TASTyInfo abstraction #19089
  • Add UTF8 abstraction in the TASTy format #19090

Tooling

  • Don't add explanation twice #18779
  • ExtractDependencies uses more efficient caching #18403
  • Introduce the SourceVersions 3.4 and 3.4-migration; make 3.4 the default. #18501
  • Bugfix: Completions for named args in wrong order #18702
  • Align unpickled Scala 2 accessors encoding with Scala 3 #18874
  • Reinterpret Scala 2 case accessors xyz$access$idx #18907
  • Presentation-compiler: Add synthetic decorations #18951
  • Add compilation unit info to ClassSymbol #19010
  • Make sure that patches for 3.0 are also applied in later versions #19018

Transform

  • Also consider @targetName when checking private overrides #18361
  • Teach PostTyper to handle untupled context closures #17739
  • Properly dealias tuple types when specializing #18724
  • Fix condition in prefixIsElidable to prevent compiler crash #18924
  • Fix #18816: Transfer the span of rewired This nodes in fullyParameterizedDef. #18840
  • List(...) optimization to avoid intermediate array #17166
  • Make Array.apply an intrinsic #18537
  • Add missing span to extension method select #18557

Tuples

  • Handle TupleXXL in match analysis #19212
  • Add reverse method to NonEmptyTuple #13752
  • Refine handling of pattern binders for large tuples #19085
  • Introduce Tuple.ReverseOnto and use it in Tuple.reverse #19183

Typeclass Derivation

  • Consider all parents when checking access to the children of a sum #19083

Typer

  • Fix logic when comparing var/def bindings with val refinements #18049
  • Fix variance checking in refinements #18053
  • Fix accessibleType for package object prefixes #18057
  • Refix avoid GADT casting with ProtoTypes #18085
  • Avoid shadowing by private definitions in more situations #18142
  • Refine infoDependsOnPrefix #18204
  • Fix spurious subtype check pruning when both sides have unions #18213
  • Reimplement support for type aliases in SAM types #18317
  • Fix adaptation of constants to constant type aliases #18360
  • Issue "positional after named argument" errors #18363
  • Deprecate ops.long.S #18426
  • Tweak selection from self types #18467
  • Use the unwidened type when casting structural calls #18527
  • Fix #18649: Use loBound of param types when materializing a context function. #18651
  • Identify structural trees on Match Type qualifiers #18765
  • Tweak approximation of type variables when computing default types #18798
  • Admit parametric aliases of classes in parent typing #18849
  • Also add privateWithin when creating constructor proxies #18893
  • Revert part of Simplify defn.FunctionOf.unapply #19012
  • Check @targetName when subtyping Refined Types #19081
  • Record failures to adapt application arguments #18269
  • Improve handling of AndTypes on the LHS of subtype comparisons #18235
  • Allow inferred parameter types always, when eta-expanding #18771
  • Fix failing bounds check on default getter #18419
  • Use constructor's default getters in case class synthetic apply methods #18716
  • Keep qualifier of Ident when selecting setter #18714
  • Retract SynthesizeExtMethodReceiver mode when when going deeper in overloading resolution #18759
  • Constant fold all the number conversion methods #17446
  • Refine criterion when to widen types #17180
  • Run all MatchType reduction under Mode.Type #17937
  • Force consistent MT post-redux normalisation, disallow infinite match types #18073
  • Fix #17467: Limit isNullable widening to stable TermRefs; remove under explicit nulls. #17470
  • Disallow naming the root package, except for selections #18187
  • Contextual varargs parameters #18186
  • Encode the name of the attribute in Selectable.selectDynamic #18928
  • Remove linearization requirement for override ref checks from java classes #18953
  • Fix type inferencing (constraining) regressions #19189
  • Repeated params must correspond in override #16836
  • Convert SAM result types to function types #17740
  • Disallow infix objects #17966
  • Fix hasMatchingMember handling NoDenotation #17977
  • Fix: disallow toplevel infix definitions for vals, vars, givens, methods and implicits #17994
  • Curried methods are not valid SAM methods #18110
  • Fix #17115: Try to normalize while computing typeSize. #18386
  • Add default arguments to derived refined type #18435
  • Handle dependent context functions #18443
  • Fix variance loophole for private vars #18693
  • Avoid crash arising from trying to find conversions from polymorphic singleton types #18760
  • Allow inner classes of universal traits #18796
  • Prevent crash when extension not found #18830

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.3.1..3.4.0-RC1 these are:

   458 Martin Odersky
   291 Nicolas Stucki
   132 Fengyun Liu
   118 Dale Wijnand
    77 Jamie Thompson
    69 Sébastien Doeraene
    49 Paweł Marks
    32 Chris Kipp
    27 Guillaume Martres
    26 Rikito Taniguchi
    21 Yichen Xu
    19 EnzeXing
    14 Szymon Rodziewicz
    13 Lucas Leblanc
    12 Jakub Ciesluk
    12 Jędrzej Rochala
    12 Katarzyna Marek
    11 Carl
    10 David Hua
     9 Florian3k
     9 Wojciech Mazur
     8 Eugene Flesselle
     8 ghostbuster91
     7 Hamza Remmal
     7 Ondrej Lhotak
     7 Quentin Bernet
     6 Jan Chyb
     6 Julien Richard-Foy
     6 Kacper Korban
     6 Seth Tisue
     5 Lorenzo Gabriele
     5 Matt Bovel
     5 Som Snytt
     5 Yuito Murase
     5 dependabot[bot]
     3 David
     3 Lucas
     3 Pascal Weisenburger
     3 Tomasz Godzik
     2 Aleksander Rainko
     2 Decel
     2 Guillaume Raffin
     2 Ondřej Lhoták
     2 Oron Port
     2 danecek
     2 rochala
     1 Adam Dąbrowski
     1 Aleksey Troitskiy
     1 Arnout Engelen
     1 Ausmarton Zarino Fernandes
     1 Bjorn Regnell
     1 Daniel Esik
     1 Eugene Yokota
     1 François Monniot
     1 Jakub Cieśluk
     1 John Duffell
     1 John M. Higgins
     1 Justin Reardon
     1 Kai
     1 Kisaragi
     1 Lucas Nouguier
     1 Lukas Rytz
     1 LydiaSkuse
     1 Martin Kucera
     1 Martin Kučera
     1 Matthew Rooney
     1 Matthias Kurz
     1 Mikołaj Fornal
     1 Nicolas Almerge
     1 Preveen P
     1 Shardul Chiplunkar
     1 Stefan Wachter
     1 philippus
     1 q-ata
     1 slim

3.3.2-RC1

5 months ago

Highlights of the release

  • Improvements to code coverage (detailed list below)
  • Add Stable Presentation Compiler #17528

Other changes and fixes

Backend

  • Make sure synthetic apply methods are generated in deterministic order #18210

Coverage

  • Only lift inner expressions when lifting repeated Typed arguments #18424
  • Fix: scoverage statement's line number should be 1-base #18932
  • Do not lift applications of context functions #18498
  • Don't lift the argument of a synchronized block in scoverage #16941
  • Fix the issue with coverage inside of a TypeApply #18420
  • Coverage: mark case bodies as branches; don't ignore branches with synthetic spans #18437

Documentation

  • Compiler plugin Scaladoc: document phase requirement #18394

Exports

  • Refine override exclude criterion for export forwarders #17590

Incremental Compilation

  • Fix overcompilation due to unstable context bound desugaring #18280

Inline

  • Don't generate a super accessor for an inline method call #17598

Linting

  • Wunused: Only use type treverser for checking refinements in refined type trees #17929

Parser

  • Add examples taken from reference page #18066
  • Test for #18345 #18349

Pattern Matching

  • Properly refine type of inlined unapply pattern #18292

Presentation Compiler

  • Bugfix: suggest correct arg name completions for lambda expressions #18379
  • Improvement: print better bracket suffix in completion item label #18380
  • Fix presentation compiler autoimports, update presentation compiler dependencies #18264
  • Update scala3-presentation-compiler to 39e349e #18296
  • Update presentation compiler with changes from PR 5287 #18301
  • Update presentation compiler to a829a6a #18347
  • Bugfix: highlight enum cases correctly #18362

Quotes

  • Do not beta-reduce/eta-expand pattern splices with contextual function types #18198
  • XcheckMacro types of Block expression and Apply/TypeApply function #18242
  • Fix owner of splices in class statements #18359
  • Handle macro dependencies through class of this #18396
  • Add missing span in QuoteMatcher #18178
  • Fix stale symbol crashes in some path depended types in macro contexts #18077
  • Simplify avoidance of local types of Hole #17571

Reporting

  • Detail "not a constant type" message #17626
  • Suggest imports for the expected type of the underlying implicit not found error #17976
  • Fix: report correct location on a repeat modifier #17982
  • Warn when calling synchronized on AnyVal #18021
  • Fix compile error message in wildcard exports #18189
  • Improve parameter type inference error messaging #18190
  • Don't report warnings in migration when performing rewrites #15589
  • Fix crash reporter, units and phases #17754
  • Omit more prefixes in non-package module printing #17758
  • Fix pretty printer to handle using and erased modifier #17952
  • Add -Yprint-tasty compiler flag #17986
  • Add actionable item to PatternMatchExhaustivity diagnostic #18314

Scaladoc

  • Fix: -no-link-warnings does not work #17028
  • Fix: Validation for API link #17099
  • Scaladoc: type rendering fixes and improvements #17213
  • Feat: Add a custom icon #17241
  • Fix: Correction of the siteRoot path #17297
  • Fix: Correct the navigation to anchor #17910
  • Fix: Style for wiki syntax #18079
  • Fix NoSuchElementException in scaladoc #18184

SemanticDB

  • Check for primary constructor in namePresentInSource #18325
  • Add -semanticdb-text compiler option #18307

Typer

  • Fix pattern generation in "ordinal" mirror method #17570
  • Fix superType of SuperType #17574
  • Avoid crash in erasure when reference cannot be emitted #18056
  • Disallow overloading from breaking stable patterns #18327
  • Fix widen types before checking an implicit view exists #18719
  • Properly handle SAM types with wildcards #18201
  • Handle recursion in collectParts #18214
  • Allow eta-expansion of inline defs #18249
  • Stable names for lambda lifted methods #18281

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.3.1..3.3.2-RC1 these are:

    37 Nicolas Stucki
    36 Paweł Marks
    28 Chris Kipp
    15 Sébastien Doeraene
    13 Lucas Leblanc
    13 Martin Odersky
    12 Guillaume Martres
    10 Dale Wijnand
    10 Jamie Thompson
     8 ghostbuster91
     6 Florian3k
     5 Kacper Korban
     4 Jędrzej Rochala
     4 Katarzyna Marek
     4 Quentin Bernet
     3 Jan Chyb
     3 Lucas
     3 Matt Bovel
     3 Seth Tisue
     2 Julien Richard-Foy
     2 Wojciech Mazur
     1 Aleksey Troitskiy
     1 Arnout Engelen
     1 Bjorn Regnell
     1 Eugene Yokota
     1 Justin Reardon
     1 Kisaragi
     1 Martin Kučera
     1 Matthew Rooney
     1 Matthias Kurz
     1 Ondrej Lhotak
     1 Rikito Taniguchi
     1 Stefan Wachter
     1 Yuito Murase
     1 rochala

3.3.1

8 months ago

Highlights of the release

  • Support records in JavaParsers #16762
  • Port JVM backend refactor from Scala 2 #15322

Other changes and fixes

Backend

  • Disallow mixins where super calls bind to vals #16908
  • Fix #15107: Avoid re-emitting a LineNumber after only LabelNodes. #16813

Coverage

  • Fix #17042: Preserve the shape of secondary ctors in instrumentCoverage. #17111

Default parameters

  • Dupe fix when finding default arg getters #17058

Documentation

  • Fix: ensure syntax blocks for ebnf are marked as such #16837

Erasure

  • Handle @companionClass and @companionMethod meta-annotations #17091

Extension Methods

  • Support extension methods imported from different objects #17050

GADTs

  • Fix tuple member selection so it works with GADT healing #16766
  • Fix upper bound constraints, that are higher-kinded #16744
  • Split out immutable GadtConstraint #16602

Implicits

  • Improve subtyping check for not yet eta-expanded higher kinded types #17139
  • Harden tpd.Apply/TypeApply in case of errors #16887
  • Try to be more subtle when inferring type parameters of class parents #16896
  • Include P in the implicit scope of P.this.type #17088

Incremental Compilation

  • Fix under-compilation when the method type in a SAM changes #16996

Infrastructure

  • Set reference version to 3.3.0-RC6 #17504
  • Fix #17119: Download Coursier from GitHub directly #17141

Inline

  • Remove NamedArg from inlined arguments #17228
  • Don't generate a Select for a TermRef with NoPrefix #16754
  • Prepare bodies of inline forwarders eagerly #16757
  • Do not remove inline method implementations until PruneErasedDefs #17408

Java Interop

  • ClassfileParser: allow missing param names (for JDK 21) #17536

Linting

  • Improve -Wunused: locals, privates with unset vars warning #16639 #17160
  • Fix wunused false positive when deriving alias type #17157
  • Port -Wnonunit-statement setting for dotty #16936

Match Types

  • Normalize match type usage during implicit lookup #17457
  • Fix #13757: Explicitly disallow higher-kinded scrutinees of match types. #17322
  • Fix match type reduction with wildcard type arguments #17065
  • Fix check whether classtag can be generated for match types #16708

Parser

  • Allow lines starting with . to fall outside previous indentation widths #17056

Pattern Matching

  • Fix #11541: Specialize ClassTag[T] in exhaustivity check #17385
  • Check outer class prefixes in type projections when pattern matching #17136
  • Make unchecked cases non-@unchecked and non-unreachable #16958
  • Fix #16899: Better handle X instanceOf P where X is T1 | T2 #17382

Pickling

  • ClassfileParser: Avoid cycle when accessing companion in inner class lookup #16882

Polyfunctions

  • Fix type aliases in beta-reduction of polyfunctions #17054

Quotes

  • Register paramProxy and thisProxy in Quote type #17541
  • Only check newVal/newMethod privateWithin on -Xcheck-macros #17437
  • Unencode quote and splice trees #17342
  • Correctly type Expr.ofTupleFromSeq for arity > 22 #17261
  • Use TermRef to distinguish distinct Type[T] instances #17205
  • Check level consistency of SingletonTypeTree as a type #17209
  • Fix splice type variable pattern detection #17048
  • Avoid creation of @SplicedType quote local refrences #17051
  • Dealias type references when healing types in quotes #17049
  • Replace quoted type variables in signature of HOAS pattern result #16951
  • Beta-reduce directly applied PolymorphicFunction #16623
  • Use Object.toString for quoted.{Expr, Type} #16663
  • Fix Splicer.isEscapedVariable #16838
  • Fix references to class members defined in quotes #17107
  • Handle pickled forward references in pickled expressions #16855
  • Fix #16615 - crashes of path dependent types in spliced Type.of #16773
  • Disallow local term references in staged types #16362
  • Refactor level checking / type healing logic #17082
  • Dealias quoted types when staging #17059
  • Fix quotes with references to path dependent types #17081
  • Make arguments order in quote hole deterministic #17405
  • Only transform the body of the quote with QuoteTransformer #17451
  • Place staged type captures in Quote AST #17424
  • Add SplicePattern AST to parse and type quote pattern splices #17396

Reflection

  • -Xcheck-macros: add hint when a symbol in created twice #16733
  • Assert that symbols created using reflect API have correct privateWithin symbols #17352
  • Fix reflect.LambdaType type test #16972
  • Improve New/Select -Ycheck message #16746
  • Improve error message for CyclicReference in macros #16749
  • Add reflect defn.FunctionClass overloads #16849

REPL

  • Always load REPL classes in macros including the output directory #16866

Reporting

  • Improve missing argument list error #17126
  • Improve implicit parameter error message with aliases #17125
  • Improve "constructor proxy shadows outer" handling #17154
  • Clarify ambiguous reference error message #16137
  • Hint about forbidden combination of implicit values and conversions #16735
  • Attach explanation message to diagnostic message #16787
  • Propagate implicit search errors from implicit macros #16840
  • Detail UnapplyInvalidReturnType error message #17167
  • Add way to debug -Xcheck-macros tree checking #16973
  • Enrich and finesse compiler crash reporting #17031
  • Allow @implicitNotFound messages as explanations #16893
  • Include top-level symbols from same file in outer ambiguity error #17033
  • Do not issue deprecation warnings when declaring deprecated case classes #17165

Scala-JS

  • Fix #17344: Make implicit references to this above dynamic imports explicit. #17357
  • Fix #12621: Better error message for JS trait ctor param. #16811
  • Fix #16801: Handle Closure's of s.r.FunctionXXL. #16809
  • Fix #17549: Unify how Memoize and Constructors decide what fields need storing. #17560

Scaladoc

  • Feat: Add a blog configuration with yaml #17214
  • Don't render the "$" for module #17302
  • Fix: Add scrollbar to the sidebar #17203
  • Scaladoc: fix crash when processing extends call #17260
  • Fix: Modify the CSS so that the logo of the generated documentation is adaptive #17172
  • Fix: Remove the duplicate parameter when generating the scaladoc. #17097
  • Fix: padding top in mobile version #17019
  • Fix: tap target of the menu in Mobile version #17018
  • Scaladoc: Fix expand icon not changing on anchor link #17053
  • Scaladoc: fix inkuire generation for PolyTypes #17129
  • Re port scroll bar #17463
  • Handle empty files and truncated YAML front matter #17527

SemanticDB

  • Make sure symbol exists before calling owner #16860
  • Support LambdaType (convert from HKTypeLambda) #16056

Specification

  • Apply class-shadowing.md to the Spec #16839
  • Adding base for future Spec into the compiler repo #16825

Standard Library

  • Optimization: avoid NotGiven allocations #17090

Tooling

  • Disable ExtractSemanticDB phase when writing to output directory defined as JAR. #16790
  • Print owner of bind symbol with -Yprint-debug-owners #16854
  • Small fixes to allow using Metals with scaladoc with sbt #16816

Transform

  • Move CrossVersionChecks before FirstTransform #17301
  • Fix needsOuterIfReferenced #17159
  • Drop incorrect super accessor in trait subclass #17062
  • Generate toString only for synthetic companions of case classes #16890
  • Check trait constructor for accessibility even if not called at Typer #17094
  • Fix #17435: A simpler fix #17436

Typer

  • Preserve type bounds for inlined definitions in posttyper #17190
  • Change logic to find members of recursive types #17386
  • Recognize named arguments in isFunctionWithUnknownParamType #17161
  • Better comparisons for type projections #17092
  • Allow selectDynamic and applyDynamic to be extension methods #17106
  • Fix use of accessibleFrom when finding default arg getters #16977
  • Map class literal constant types #16988
  • Always use adapted type in withDenotation #16901
  • Restrict captureWildcards to only be used if needed #16799
  • Don't capture wildcards if in closure or by-name #16732
  • Infer: Don't minimise to Nothing if there's an upper bound #16786
  • Perform Matchable check only if type test is needed #16824
  • Don't eta expand unary varargs methods #16892
  • Fix beta-reduction with Nothing and null args #16938
  • Generate kind-correct wildcards when selecting from a wildcard #17025
  • Fix #16405 ctd - wildcards prematurely resolving to Nothing #16764
  • Test: add regression test for #7790 #17473
  • Properly handle AnyVals as refinement members of Selectables #16286

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.3.0..3.3.1 these are:

   152	Nicolas Stucki
    73	Martin Odersky
    54	Dale Wijnand
    51	Szymon Rodziewicz
    49	Quentin Bernet
    38	Chris Kipp
    31	Paweł Marks
    19	David Hua
    18	Lucas
    18	ysthakur
    15	Fengyun Liu
    14	Guillaume Martres
    14	Jamie Thompson
    11	Sébastien Doeraene
     9	Timothée Andres
     8	Kacper Korban
     7	Matt Bovel
     7	Som Snytt
     6	Julien Richard-Foy
     6	Lucas Leblanc
     5	Michał Pałka
     4	Anatolii Kmetiuk
     4	Guillaume Raffin
     4	Jan Chyb
     4	Paul Coral
     4	Wojciech Mazur
     4	Yichen Xu
     3	Decel
     2	Adrien Piquerez
     2	Arman Bilge
     2	Carl
     2	Florian3k
     2	Kenji Yoshida
     2	Michael Pilquist
     2	Natsu Kagami
     2	Seth Tisue
     2	Tomasz Godzik
     2	Vasil Vasilev
     2	Yadu Krishnan
     1	Bersier
     1	Flavio Brasil
     1	Jan-Pieter van den Heuvel
     1	Lukas Rytz
     1	Miles Yucht
     1	Mohammad Yousuf Minhaj Zia
     1	Ondra Pelech
     1	Philippus
     1	Rikito Taniguchi
     1	Simon R
     1	brandonspark
     1	github-actions[bot]
     1	liang3zy22
     1	s.bazarsadaev
     1	Łukasz Wroński

3.3.1-RC7

8 months ago

Backported fixes

  • Tweak selection from self types #18467
  • Revert "Add reflect defn.FunctionClass overloads" #18473

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.3.1-RC6..3.3.1-RC7 these are:

     3	Paweł Marks
     1	Martin Odersky

3.3.1-RC6

8 months ago

Backported fixes

  • Refine infoDependsOnPrefix #18204
  • FDo not compute protoFormal if param.tpt is empty #18288
  • Revert "Normalize match type usage during implicit lookup" #18440

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.3.1-RC5..3.3.1-RC6 these are:

     3	Paweł Marks
     2	Martin Odersky
     1	Nicolas Stucki

3.3.1-RC5

9 months ago

Backported fixes

  • Heal stage inconsistent prefixes of type projections #18239
  • Fix regression #17245: Overloaded methods with ClassTags #18286
  • Disallow taking singleton types of packages again #18232
  • A slightly more conservative version of #14218 #18352
  • Record failures to adapt application arguments #18269
  • Fix regression in exhaustivity of HK types #18303

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.3.1-RC4..3.3.1-RC5 these are:

     5 Dale Wijnand
     2 Martin Odersky
     2 Paweł Marks
     1 Jan Chyb
     1 Nicolas Stucki

3.3.1-RC4

10 months ago

Backported fixes

  • Revert "Include top-level symbols from same file in outer ambiguity error" #17438

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.3.1-RC3..3.3.1-RC4 these are:

     2 Paweł Marks
     1 Nicolas Stucki

3.3.1-RC3

10 months ago

Backported fixes

  • Add clause for protected visibility from package objects #18134

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 3.3.1-RC2..3.3.1-RC3 these are:

     2 Paweł Marks
     1 Martin Odersky