Highlights of the release
- Use Scala 2.13.15 standard library #21648
- Support JDK 23 #20144
- Add the
-Wall
option that enables all warnings #20577 - Reversed
-Wconf
parsing order to mirror Scala 2 semantics #18503
Other changes and fixes
Annotations
- Tighten java annot value parsing #21650
Exports
- Re-use attachment in exportForwarders to handle ambiguous overloads #21518
- Allow export statements in AnyVal #21653
Extension Methods
- Make right assoc ext method fwd refs error #21641
Inference
Linting
- Add origin filter to WConf, DeprecationWarning #21404
- CheckUnused checks type param annotations #20549
Match Types
- Fix #20897: Make
Nothing ⋔ Nothing
, as per spec. #21241 - Always interpret underscores inside patterns as type bounds #21718
Overloading
- Report only non-overridden unimplemented members #21337
Parser
- Harden skip in Scanner #21607
- SimplePattern errors should now be recovered as wildcard instead of unimplemented expr #21438
Positions
- Fix trailing comma Ident's span #20445
Presentation Compiler
- Fix autoimports with using directives #21590
- Remove artificial
CURSOR
added to code in the completions #20899 - Help implement Metals' infer expected type feature #21390
- Weekly metals backport #21343
- Change mock symbol search #21296
- Fix: completions when parenthesis already provided #21299
- Backport from metals #21196
- Fix: don't add suffix if brackets already present #21259
Quotes
- Handle suspension due to macro call in arbitrary phases #21651
- Have a better error message when healing types #21711
- Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType) #20494
- Quotes type printing: take
infix
type modifier into account #21726
Reporting
- Nicer error message in case a
derived
method has an explicit term param #21332 - Add better error reporting for inlined non-immutable paths #21639
Releases
- Add support for Chocolatey #20534
- Add the merge commit hash to the icon's url #21221
- Add sources of synthetic classes to sources jar #20904
REPL
Scaladoc
- Only trim one newline when preprocessing the content of a markdown code snippet #21519
- Bump Inkuire version to fix it for the new Scala versions #21611
- Filter opaque modifier from object documentation #21640
TASTy format
- Add child to parent in completion context #21214
Transform
- Three fixes to SAM type handling #21596
- Fix treatment of separately compiled
@native
methods in FirstTransform #21593 - Fix #20856: Serialize
Waiting
andEvaluating
as ifnull
. #21243 - Fixes IllegalAccessError with Java package protected class #21362
- Consistently use TypeMismatch in TreeChecker #21529
- Fix: don't use color codes for pattern match code action #21120
- Let show behave more robustly for Recheck #21678
- Always rewrite empty List() to Nil #21689
Typer
- Fix extending protected nested java classes #21857
- Avoid cyclic errors forcing default arg types #21597
- Survive inaccessible types when computing implicit scope #21589
- Revert "Drop redundant
butNot = Param
clause in isAnchor" #21566 - Fail early & more clearly on shaded-broken classfiles #21262
- Fix isomorphism tests of
AndOrType
s under non-emptyBinderPairs
#21017 - Some fixes for AnnotatedTypes mapping #19957
- Simple performance improvement for Denotations #21584
- Avoid import suggestion thread hang if -Ximport-suggestion-timeout <= 1 #21434
- Fix incorrect caching with dependent method parameters #21699
Experimental: Explicit Nulls
- Add tracking of NotNullInfo for Match, Case, Try trees (fix #21380) #21389
- Fix #21392: Adjust
canComparePredefined(Nothing, T)
in explicit nulls #21504
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.3.4..3.3.5-RC1
these are:
44 Wojciech Mazur
14 Dale Wijnand
10 Katarzyna Marek
8 rochala
5 noti0na1
4 Hamza Remmal
4 Matt Bovel
4 Som Snytt
3 Jamie Thompson
3 Martin Odersky
3 Michał Pałka
3 dependabot[bot]
3 kasiaMarek
2 Aleksander Rainko
2 Eugene Flesselle
2 Florian3k
2 HarrisL2
2 Jędrzej Rochala
2 Kacper Korban
2 Yichen Xu
1 Eugene Yokota
1 Guillaume Martres
1 Hamza REMMAL
1 Jan Chyb
1 Joel Wilsson
1 Kenji Yoshida
1 Martin Duhem
1 Nicolas Stucki
1 Ondrej Lhotak
1 Seth Tisue
1 Sébastien Doeraene
1 Tomasz Godzik