Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency scala to v3.3.1 #6699

Merged
merged 12 commits into from
Nov 5, 2023
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 5, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
scala 3.2.2 -> 3.3.1 age adoption passing confidence

Release Notes

lampepfl/dotty (scala)

v3.3.1

Compare Source

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

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

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

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

v3.3.0

Compare Source

Highlights of the release

Other changes and fixes

Annotations

  • Support use-site meta-annotations #​16445

Desugaring

  • Reuse typed prefix for applyDynamic and applyDynamicNamed #​16552
  • Fix object selftype match error #​16441

Erasure

  • Dealias before checking for outer references in types #​16525
  • Fix generic signature for type params bounded by primitive #​16442
  • Avoid EmptyScope.cloneScope crashing, eg on missing references #​16314

GADTs

  • Inline GADT state restoring in TypeComparer #​16564
  • Add extension/conversion to GADT selection healing #​16638
  • Split out immutable GadtConstraint #​16602
  • Avoid bidirectional GADT typebounds from fullBounds #​15683

Incremental compilation

  • Unpickle arguments of parent constructors in Templates lazily #​16688

Initialization

Inline

  • Dealias in ConstantValue, for inline if cond #​16652
  • Set Span for top level annotations generated in PostTyper #​16378
  • Interpolate any type vars from comparing against SelectionProto #​16348
  • Handle binding of beta reduced inlined lambdas #​16377
  • Do not add dummy RHS to abstract inline methods #​16510
  • Warn on inline given aliases with functions as RHS #​16499
  • Support inline overrides in value classes #​16523

Java interop

  • Represent Java annotations as interfaces so they can be extended, and disallow various misuses of them #​16260

Linting

  • Fix -Wunused:import registering constructor <init> instead of its owner (also fix false positive for enum) #​16661
  • Fix #​16675 : -Wunused false positive on case class generated method, due to flags used to distinguish case accessors. #​16683
  • Fix #​16682: CheckUnused missed some used symbols #​16690
  • Fix "-Wunused: False positive on parameterless enum member" #​16927
  • Register usage of symbols in non-inferred type trees in CheckUnused #​16939
  • Traverse annotations instead of just registering in -Wunused #​16956
  • Ignore parameter of accessors in -Wunused #​16957
  • Ignore parameter of accessors in -Wunused #​16957
  • Improve override detection in CheckUnused #​16965
  • WUnused: Fix unused warning in synthetic symbols #​17020
  • Fix WUnused with idents in derived code #​17095
  • WUnused: Fix for symbols with synthetic names and unused transparent inlines #​17061
  • Skip extension method params in WUnused #​17178
  • Fix wunused false positive when deriving alias type #​17157
  • Fix WUnused for accessible symbols that are renamed #​17177
  • Fix WUnused false positive in for #​17176
  • Make CheckUnused run both after Typer and Inlining #​17206
  • Disable WUnused for params of non-private defs #​17223
  • Wunused: Check if symbol exists before isValidMemberDef check #​17316
  • Wunused: Include import selector bounds in unused checks #​17323
  • Fix compiler crash in WUnused #​17340

Opaque Types

  • Delay opaque alias checking until PostTyper #​16644

Overloading

  • Handle context function arguments in overloading resolution #​16511

Parser

  • Improve support for Unicode supplementary characters in identifiers and string interpolation (as in Scala 2) #​16278
  • Require indent after colon at EOL #​16466
  • Help givens return refined types #​16293

Pattern Matching

  • Tweak AvoidMap's derivedSelect #​16563
  • Space: Use RHS of & when refining subtypes #​16573
  • Freeze constraints in a condition check of maximiseType #​16526
  • Restrict syntax of typed patterns #​16150
  • Test case to show that #​16252 works with transparent #​16262
  • Support inline unapplySeq and with leading given parameters #​16358
  • Handle sealed prefixes in exh checking #​16621
  • Detect irrefutable quoted patterns #​16674
  • Patmat: Use less type variables in prefix inference #​16827

Pickling

  • Allow case classes with up to 254 parameters #​16501
  • Correctly unpickle Scala 2 private case classes in traits #​16519

Polyfunctions

  • Fix #​9996: Crash with function accepting polymorphic function type with singleton result #​16327

Quotes

  • Remove contents of inline methods #​16345
  • Fix errors in explicit type annotations in inline match cases #​16257
  • Handle macro annotation suspends and crashes #​16509
  • Fix macro annotations spliceOwner #​16513
  • Fix HK quoted pattern type variables #​16907

REPL

Reflection

  • Fix reflect typeMembers to return all members #​15033
  • Deprecate reflect Flags.Static #​16568

Reporting

  • Suppress follow-on errors for erroneous import qualifiers #​16658
  • Fix order in which errors are reported for assignment to val #​16660
  • Fix class name in error message #​16635
  • Make refined type printing more source compatible #​16303
  • Add error hint on local inline def used in quotes #​16572
  • Fix Text wrapping #​16277
  • Fix #​16680 by registering Ident not containing a symbol #​16689
  • Fix the non-miniphase tree traverser #​16684
  • Just warn on type ascription on a pattern #​17454

Scala-JS

Scaladoc

  • Added jpath check to ClassLikeSupport getParentsAsTreeSymbolTuples #​16759

Standard Library

  • Add CanEqual instance for Map #​15886
  • Refine Tuple.Append return type #​16140
  • Remove experimental from Mirror#fromProductTyped #​16829

TASTy format

  • Make it a fatal error if erasure cannot resolve a type #​16373

Tooling

  • Add -Yimports compiler flag #​16218
  • Allow BooleanSettings to be set with a colon #​16425
  • Add support for disabling redirected output in the REPL driver for usage in worksheets in the Scala Plugin for IntelliJ IDEA #​16810
  • Fix #​17187: allow patches with same span #​17366

Transform

  • Avoid stackoverflow in ExplicitOuter #​16381
  • Make lazy vals run on non-fallback graal image - remove dynamic reflection #​16346
  • Patch to avoid crash in #​16351 #​16354
  • Don't treat package object's <init> methods as package members #​16667
  • Space: Refine isSubspace property & an example #​16574
  • Fix static lazy field holder for GraalVM #​16800
  • Fix race condition in new LazyVals #​16975

Typer

  • Drop requirement that self types are closed #​16648
  • Disallow constructor params from appearing in parent types for soundness #​16664
  • Don't search implicit arguments in singleton type prefix #​16490
  • Don't rely on isProvisional to determine whether atoms computed #​16489
  • Support signature polymorphic methods (MethodHandle and VarHandle) #​16225
  • Prefer parameterless alternatives during ambiguous overload resolution #​16315
  • Fix calculation to drop transparent classes #​16344
  • Test case for issue 16311 #​16317
  • Skip caching provisional OrType atoms #​16295
  • Avoid cyclic references due to experimental check when inlining #​16195
  • Track type variable dependencies to guide instantiation decisions #​16042
  • Two fixes to constraint solving #​16353
  • Fix regression in cyclic constraint handling #​16514
  • Sharpen range approximation for applied types with capture set ranges #​16261
  • Cut the Gordian Knot: Don't widen unions to transparent #​15642
  • Fix widening logic to keep instantiation within bounds #​16417
  • Skip ambiguous reference error when symbols are aliases #​16401
  • Avoid incorrect simplifications when updating bounds in the constraint #​16410
  • Take @targetName into account when resolving extension methods #​16487
  • Improve ClassTag handling to avoid invalid ClassTag generation and inference failure #​16492
  • Fix extracting the elemType of a union of arrays #​16569
  • Make sure annotations are typed in expression contexts #​16699
  • Throw a type error when using hk-types in unions or intersections #​16712
  • Add missing criterion to subtype check #​16889
  • Fix caching issue caused by incorrect isProvisional check #​16989

Contributors

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

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

   226 Martin Odersky
   106 Szymon Rodziewicz
    81 Dale Wijnand
    56 Nicolas Stucki
    52 Paul Coral
    48 Kamil Szewczyk
    45 Paweł Marks
    28 Florian3k
    28 Yichen Xu
    15 Guillaume Martres
    10 Michał Pałka
     9 Kacper Korban
     8 Fengyun Liu
     7 Chris Birchall
     7 rochala
     6 Sébastien Doeraene
     6 jdudrak
     5 Seth Tisue
     5 Som Snytt
     5 nizhikov
     4 Filip Zybała
     4 Jan Chyb
     4 Michael Pollmeier
     4 Natsu Kagami
     3 Anatolii Kmetiuk
     3 Jamie Thompson
     2 Adrien Piquerez
     2 Alex
     2 Dmitrii Naumenko
     2 Lukas Rytz
     2 Michael Pilquist
     2 Vasil Vasilev
     2 adampauls
     2 yoshinorin
     1 Alexander Slesarenko
     1 Chris Kipp
     1 Guillaume Raffin
     1 Jakub Kozłowski
     1 Jan-Pieter van den Heuvel
     1 Julien Richard-Foy
     1 Kenji Yoshida
     1 Matt Bovel
     1 Mohammad Yousuf Minhaj Zia
     1 Philippus
     1 Szymon R
     1 Tim Spence
     1 s.bazarsadaev


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot requested a review from waghanza as a code owner September 5, 2023 16:52
@whiplash
Copy link
Contributor

I wouldn't move out of 3.2 so quickly. Akka http for example does not seem to be compatible at the moment.

@waghanza
Copy link
Collaborator

waghanza commented Sep 11, 2023

The idea could be to use the latest version of scala, that could be used per framework (ex : use zio in 3.3 and play is 2.3)

@waghanza
Copy link
Collaborator

  • use akka stream 2.7 for akkahttp

.github/workflows/ci.yml Outdated Show resolved Hide resolved
@waghanza
Copy link
Collaborator

I wouldn't move out of 3.2 so quickly. Akka http for example does not seem to be compatible at the moment.

What do you may think of that @whiplash ?

@renovate renovate bot force-pushed the renovate/scala-3.x branch from 522202c to 166ed13 Compare October 4, 2023 06:54
@renovate
Copy link
Contributor Author

renovate bot commented Oct 9, 2023

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

Warning: custom changes will be lost.

@waghanza waghanza force-pushed the renovate/scala-3.x branch 3 times, most recently from 5d32297 to e062948 Compare October 10, 2023 07:15
@waghanza
Copy link
Collaborator

@whiplash only play is not working (still in scala2)

@whiplash
Copy link
Contributor

@whiplash
Copy link
Contributor

so it might "work" if you just add PlayKeys.akkaHttpScala3Artifacts := true, as the first setting in the build.sbt.

it'll look something like

  .settings(
    PlayKeys.akkaHttpScala3Artifacts := true,
    libraryDependencies ++= Seq(

@waghanza
Copy link
Collaborator

Reading the implementation, it is not obvious knowing the version we use

@whiplash
Copy link
Contributor

cat project/plugins.sbt
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "latest.integration")

@whiplash
Copy link
Contributor

@waghanza
Copy link
Collaborator

@whiplash seems that play could not use scala3

14:13:15.469 [main] INFO play.api.http.HttpErrorHandlerExceptions -- Registering exception handler: guice-provision-exception-handler
WARN  application - Logger configuration in conf files is deprecated and has no effect. Use a logback configuration file instead.
INFO  play.api.Play - Application started (Prod) (no global state)
Oops, cannot start the server.
java.lang.NoClassDefFoundError: akka/http/scaladsl/ConnectionContext
        at play.core.server.AkkaHttpServerProvider.createServer(AkkaHttpServer.scala:742)
        at play.core.server.AkkaHttpServerProvider.createServer(AkkaHttpServer.scala:741)
        at play.core.server.ServerProvider.createServer(ServerProvider.scala:30)
        at play.core.server.ServerProvider.createServer$(ServerProvider.scala:21)
        at play.core.server.AkkaHttpServerProvider.createServer(AkkaHttpServer.scala:740)
        at play.core.server.ProdServerStart$.start(ProdServerStart.scala:58)
        at play.core.server.ProdServerStart$.main(ProdServerStart.scala:28)
        at play.core.server.ProdServerStart.main(ProdServerStart.scala)
Caused by: java.lang.ClassNotFoundException: akka.http.scaladsl.ConnectionContext
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)

@waghanza
Copy link
Collaborator

btw, with this config we use play 2.9RC instead of 2.8 as it is displayed

@whiplash
Copy link
Contributor

I might have a fix for Play. Should I open a specific PR?

@waghanza
Copy link
Collaborator

Sure @whiplash. Rather to target this branch tho

@waghanza waghanza mentioned this pull request Oct 30, 2023
@waghanza
Copy link
Collaborator

waghanza commented Nov 3, 2023

@whiplash I try to use latest play version (with minimal changes). could you take a look ?

@waghanza waghanza merged commit 77406aa into master Nov 5, 2023
7 checks passed
@waghanza waghanza deleted the renovate/scala-3.x branch November 5, 2023 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants