You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
More details can be found in [`@unroll` reference](https://docs.scala-lang.org/scala3/reference/experimental/unrolled-defs.html)
@@ -233,6 +233,13 @@ Starting with Scala 3.7 the expression compiler has been migrated to the main [s
233
233
The presentation compiler is a specialized instance of the Scala compiler that runs interactively in IDEs or LSPs, providing immediate feedback about code correctness, type checking, symbol resolution, autocompletion, error highlighting, and other editing support functionalities.
234
234
Some of the latest improvements to the presentation compiler focus on the ability to infer more information about expected types of expressions provided by the users. As the results presented compiler can now show the users the expected type of expression when hovering over holes.
235
235
236
+
```scala
237
+
defsomeMethod(count: Int, label: String):Unit=???
238
+
someMethod(???, ???)
239
+
```
240
+
241
+
Given the code snippet above hovering on the first placeholder would now provide information for Metals that `Int` is required, similarlly hovering on second `???` placehold would result in hint about missing argument of `String` type.
242
+
236
243
### Quotes API changes
237
244
238
245
Scala 3.7 introduces changes to the experimental subset of Quotes API. One notable addition is the `apply` methods to import selectors ([#22457](https://github.com/scala/scala3/pull/22457)), simplifying the construction of import statements within macros. This feature streamlines the generation of import trees, making macro code more concise and readable.
@@ -319,7 +326,7 @@ Scala 3.7 brings a crucial fix that enhances its compatibility with the Android
319
326
320
327
The update addresses this by modifying the Scala compiler to box the return type of native instantiated methods when the SAM's return type isn't primitive. This change ensures that lambda expressions conform to ART's expectations, preventing runtime errors on Android devices. By aligning the compiler's behaviour with ART's requirements, the Scala 3 development for the Android platform should be unblocked, although it might require recompiling existing libraries using Scala 3.7 or the upcoming Scala 3.3 LTS version containing a backported fix.
321
328
322
-
### Minimal support for dependant case classes [#21698](https://github.com/scala/scala3/pull/21698)
329
+
### Minimal support for dependent case classes [#21698](https://github.com/scala/scala3/pull/21698)
323
330
324
331
Starting with Scala 3.7, developers can now define case classes with dependent fields, marking a notable improvement in expressiveness and type safety. This allows fields within a case class to depend on other constructor parameters via path-dependent types. One use case is encoding a configuration system where each setting has a distinct value type determined by the setting itself.
325
332
@@ -339,7 +346,7 @@ class IntSetting(name: String) extends Setting(name):
@@ -394,7 +401,6 @@ Looking ahead, you can expect two more patch releases before Scala 3.8, which is
394
401
395
402
The Scala compiler team aims to finalize all major changes in 3.8, followed by a soft feature freeze and a stabilization period. This ensures a smooth transition for users and maximizes the stability of the compiler and tooling ecosystem ahead of the LTS release.
396
403
397
-
398
404
# Contributors
399
405
400
406
Thank you to all the contributors who made this release possible 🎉
0 commit comments