Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
252 changes: 252 additions & 0 deletions changelogs/3.3.6-RC1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
# Highlights of the release

- Partial Fix #21242: Add REPL init script setting [#22206](https://github.com/scala/scala3/pull/22206)
- Update asm to patched 9.7.1 [#22250](https://github.com/scala/scala3/pull/22250)
- REPL: Add back `:silent` command [#22248](https://github.com/scala/scala3/pull/22248)
- Scala 2 forwardport: `-Yprofile-trace` [#19897](https://github.com/scala/scala3/pull/19897)

# Other changes and fixes

## Annotations

- Make sure symbols in annotation trees are fresh before pickling [#22002](https://github.com/scala/scala3/pull/22002)
- Fix Java parsing of annotations on qualified types [#21867](https://github.com/scala/scala3/pull/21867)
- Rename `InlineCopier` to `ConservativeTreeCopier`, use it in `TypeMap`s [#21941](https://github.com/scala/scala3/pull/21941)
- Consider all arguments in Annotations.refersToParamOf [#22001](https://github.com/scala/scala3/pull/22001)

## Backend

- Flag class file collision as error [#19332](https://github.com/scala/scala3/pull/19332)
- Backend computes line number from source of position [#21763](https://github.com/scala/scala3/pull/21763)

## CI

- In CI, use new standard scala/cla-checker action [#22203](https://github.com/scala/scala3/pull/22203)
- Cancel stale CI executions when CI is re-triggered in the same branch/PR [#21974](https://github.com/scala/scala3/pull/21974)
- Drop support for old experimental in community-build [#21729](https://github.com/scala/scala3/pull/21729)

## Coverage

- Fix coverage serialization when encountering macro suspension [#22303](https://github.com/scala/scala3/pull/22303)

## Dependencies

- Sbt 1.10.5 (was 1.9.9) [#20157](https://github.com/scala/scala3/pull/20157)
- Scala 2.13.16 (was .15) [#22386](https://github.com/scala/scala3/pull/22386)

## Desugaring

- Fix #22051: only trust the type application part for case class unapplies [#22099](https://github.com/scala/scala3/pull/22099)

## Documentation

- Fix: typo in documentation for Tuple.zip [#22313](https://github.com/scala/scala3/pull/22313)
- Copyright 2025 [#22326](https://github.com/scala/scala3/pull/22326)
- Documentation only: update Example code linked to obsolete content in macros-spec.md [#22256](https://github.com/scala/scala3/pull/22256)
- Doc fix, removed repeated use of the word with [#21915](https://github.com/scala/scala3/pull/21915)
- Fix typos [#21913](https://github.com/scala/scala3/pull/21913)

## Enums

- Add type parameters derived from enum to default param getters of enum cases [#22157](https://github.com/scala/scala3/pull/22157)

## Extension Methods

- Add regression test for #22320 [#22321](https://github.com/scala/scala3/pull/22321)
- Tweak ExtensionNullifiedByMember [#22268](https://github.com/scala/scala3/pull/22268)

# Infrastructure

- Improve, document and group versioning code in `Build.scala` [#21837](https://github.com/scala/scala3/pull/21837)
- Fix: drop jackson-module-scala from CB [#22353](https://github.com/scala/scala3/pull/22353)
- Fix inductive-implicits benchmark [#22007](https://github.com/scala/scala3/pull/22007)
- Remove tests/pos-with-compiler-cc from VSCode ignored files [#22198](https://github.com/scala/scala3/pull/22198)
- Bump webrick from 1.8.2 to 1.9.1 in /docs/_spec [#22066](https://github.com/scala/scala3/pull/22066)
- Fix Windows OS detection in TraceNameManglingTest [#21937](https://github.com/scala/scala3/pull/21937)
- Don't warn for deprecated Thread.getId() calls in `ChromeTrace` [#21831](https://github.com/scala/scala3/pull/21831)
- Improvement: Remove workaround for Bloop and update docs [#21842](https://github.com/scala/scala3/pull/21842)
- Ensure ChromeTraceTest event timestamps are emitted in correct invervals [#21911](https://github.com/scala/scala3/pull/21911)
- Remove tests/pos-with-compiler-cc [#21956](https://github.com/scala/scala3/pull/21956)
- Shade scalajs.ir under dotty.tools [#21765](https://github.com/scala/scala3/pull/21765)

## Implicits

- Rollback constraints in compareAppliedTypeParamRef [#22339](https://github.com/scala/scala3/pull/22339)
- Apply implicit conversion from derived Conversion instance defined as implicit rather than given [#21785](https://github.com/scala/scala3/pull/21785)

## Imports

- Allow imports nested in packagings to shadow [#21539](https://github.com/scala/scala3/pull/21539)

## Inline

- Fix inline reduction for CaseDef guards with asInstanceOf [#22305](https://github.com/scala/scala3/pull/22305)
- Avoid using the current denotation in NamedType.disambiguate [#21414](https://github.com/scala/scala3/pull/21414)

## Linting

- Append instead of prepending import selectors for the current scope when collecting them in CheckUnused [#22314](https://github.com/scala/scala3/pull/22314)
- Allow discarding "Discarded non-Unit" warnings with `: Unit` [#21927](https://github.com/scala/scala3/pull/21927)
- Disallow open modifier on objects [#21922](https://github.com/scala/scala3/pull/21922)
- Only count associated files of direct members of package objects in dropStale [#22190](https://github.com/scala/scala3/pull/22190)

## Metaprogramming

- Rethrow SuspendExceptions caught in CodeGen phase [#22009](https://github.com/scala/scala3/pull/22009)
- Extend compiletime.testing.typechecks with certain transform phases [#21185](https://github.com/scala/scala3/pull/21185)

# Match Types

- Fix #21841: Check more that an `unapplySeq` on a `NonEmptyTuple` is valid. [#22366](https://github.com/scala/scala3/pull/22366)
- Type avoidance in MT bound inference [#22142](https://github.com/scala/scala3/pull/22142)


## Nullability

- Fix #21619: Refactor NotNullInfo to record every reference which is retracted once. [#21624](https://github.com/scala/scala3/pull/21624)

## Parser

- Fix: don't consider `into` as a soft-modifier [#21924](https://github.com/scala/scala3/pull/21924)
- Fix: Allow `as` as an infix type in non context bound types [#21849](https://github.com/scala/scala3/pull/21849)
- Undo patch of double-block apply [#21982](https://github.com/scala/scala3/pull/21982)

## Pattern Matching

- (Re-)Drop inaccessible subclasses from refineUsingParent [#21930](https://github.com/scala/scala3/pull/21930)
- Fix #21914: Don't project nested wildcard patterns to nullable [#21934](https://github.com/scala/scala3/pull/21934)
- Fix use of class terms in match analysis [#21848](https://github.com/scala/scala3/pull/21848)
- Fix provablyDisjoint handling enum constants with mixins [#21876](https://github.com/scala/scala3/pull/21876)
- Do not consider uninhabited constructors when performing exhaustive match checking [#21750](https://github.com/scala/scala3/pull/21750)

## Pickling

- Avoid orphan param from default arg [#21824](https://github.com/scala/scala3/pull/21824)
- Make sure definition tree has the defined symbol [#21851](https://github.com/scala/scala3/pull/21851)

## Presentation Compiler

- Use new infer expected type for singleton complations [#21421](https://github.com/scala/scala3/pull/21421)
- Fix presentation compiler testcases [#22253](https://github.com/scala/scala3/pull/22253)
- Fix match error in keyword completions [#22138](https://github.com/scala/scala3/pull/22138)
- Add test cases project for presentation compiler [#22101](https://github.com/scala/scala3/pull/22101)
- Improvement: Update mtags to 1.4.1 and backport remaining changes [#21859](https://github.com/scala/scala3/pull/21859)
- Backport changes for the presentation compiler from Metals [#21756](https://github.com/scala/scala3/pull/21756)

## Quotes

- Fix tupleTypeFromSeq for XXL tuples [#21782](https://github.com/scala/scala3/pull/21782)
- Do not bring forward symbols created in transform and backend phases [#21865](https://github.com/scala/scala3/pull/21865)
- Fix #20471: owners of top-level symbols in cached quoted code being incorrect [#21945](https://github.com/scala/scala3/pull/21945)
- Fix for macro annotation that resolves macro-based implicit crashing the compiler [#20353](https://github.com/scala/scala3/pull/20353)
- Allow macro annotations to recover from suspension [#21969](https://github.com/scala/scala3/pull/21969)

# REPL

- REPL: JLine: follow recommendation to use JNI, not JNA; also JLine 3.27.1 (was 3.27.0) [#22205](https://github.com/scala/scala3/pull/22205)
- Fix #9879: allow top-level opaque type definitions in REPL [#21753](https://github.com/scala/scala3/pull/21753)

## Reflection

- Do not return java outline dummy constructor in `primaryConstructor` [#22104](https://github.com/scala/scala3/pull/22104)

## Reporting

- Normalise the types for Type Mismatch Error (E007) [#22337](https://github.com/scala/scala3/pull/22337)
- Do not warn about expected missing positions in quotes.reflect.Symbol [#21677](https://github.com/scala/scala3/pull/21677)
- Add missing error messages to asserts in QuotesImpl [#21852](https://github.com/scala/scala3/pull/21852)
- Don't point to the compiler backlog when a compiler plugin phase crashes [#21887](https://github.com/scala/scala3/pull/21887)
- Nowarn extension matching nonpublic member [#21825](https://github.com/scala/scala3/pull/21825)
- Fix: better error messages when an enum derives from AnyVal [#22236](https://github.com/scala/scala3/pull/22236)

## Scaladoc

- [ISSUE-#19208] If scaladocs on file protocol don't do SPA routing. [#22013](https://github.com/scala/scala3/pull/22013)
- Fix scaladoc graph highlight background color in dark mode [#21814](https://github.com/scala/scala3/pull/21814)

## SemanticDB

- Extract semanticDB for lifted definitions [#21856](https://github.com/scala/scala3/pull/21856)

## Specification

- Align the spec to allow the marker [#22323](https://github.com/scala/scala3/pull/22323)
- Fix #20271: Bring for comprehension spec up to date. [#21702](https://github.com/scala/scala3/pull/21702)
- Spec: Integrate the specification for match types. [#22164](https://github.com/scala/scala3/pull/22164)

## Settings

- Limit exposure to ConcurrentModificationException when sys props are replaced or mutated [#22180](https://github.com/scala/scala3/pull/22180)

# Tooling

- Connect the input to the compiler in `sbt` [#22336](https://github.com/scala/scala3/pull/22336)
- Ensure to escape characters before constructing JSON profile trace [#21872](https://github.com/scala/scala3/pull/21872)
- Fix: correctly print literal types in the refined printer [#22351](https://github.com/scala/scala3/pull/22351)

## Transform

- Attempt to beta reduce only if parameters and arguments have same shape [#21970](https://github.com/scala/scala3/pull/21970)
- Fix enclosingClass from returning refinement classes [#21411](https://github.com/scala/scala3/pull/21411)
- Fix #22226: Use `classOf[BoxedUnit]` for Unit array in `ArrayConstructors`. [#22238](https://github.com/scala/scala3/pull/22238)
- Fix typo in `allTermArguments` [#21836](https://github.com/scala/scala3/pull/21836)

## Typer

- Fixes for isLegalPrefix change [#22241](https://github.com/scala/scala3/pull/22241)
- Resolve name when named imp is behind wild imps [#21888](https://github.com/scala/scala3/pull/21888)
- Do not crash when typing a closure with unknown type, since it can occur for erroneous input [#21178](https://github.com/scala/scala3/pull/21178)
- Allow autotupling if fn's param is a type param [#21741](https://github.com/scala/scala3/pull/21741)
- Fix ctx implicits under case unapplySeq [#21748](https://github.com/scala/scala3/pull/21748)
- Avoid using ExplainingTypeComparer in regular code [#21583](https://github.com/scala/scala3/pull/21583)
- Avoid erasure/preErasure issues around Any in transformIsInstanceOf [#21647](https://github.com/scala/scala3/pull/21647)
- Remove tvars introduced while testing normalizedCompatible [#21466](https://github.com/scala/scala3/pull/21466)

## Miscellaneous

- Replace deprecated AnyRefMap [#22230](https://github.com/scala/scala3/pull/22230)

# Contributors

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

According to git shortlog -sn --no-merges 3.3.5..3.3.6-RC1 these are:

```
63 Tomasz Godzik
30 Dale Wijnand
26 Wojciech Mazur
20 noti0na1
15 Hamza Remmal
15 Matt Bovel
10 Jan Chyb
9 Kacper Korban
6 Som Snytt
4 Sébastien Doeraene
3 HarrisL2
3 Jamie Thompson
3 Martin Odersky
3 Seth Tisue
3 kasiaMarek
2 Friendseeker
2 João Ferreira
2 Kenji Yoshida
2 Natsu Kagami
2 Pascal Weisenburger
2 dependabot[bot]
1 Adrien Piquerez
1 Alden Torres
1 Alexander
1 Georgi Krastev
1 Guillaume Martres
1 Jentsch
1 Lunfu Zhong
1 Mathias
1 Michał Pałka
1 Oleg Zenzin
1 Oliver Bračevac
1 friendseeker
1 philippus
1 tgodzik
1 xiaoshihou
```
13 changes: 13 additions & 0 deletions changelogs/3.3.6-RC2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Reverted changes

- Do not lift annotation arguments [#22035](https://github.com/scala/scala3/pull/22035) and [#22046](https://github.com/scala/scala3/pull/22046)

# Contributors

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

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

```
3 Tomasz Godzik
```
16 changes: 16 additions & 0 deletions changelogs/3.3.6-RC3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Backported fixes

- classfile reader: handle JDK 9+ constant types in constant pool [#19533](https://github.com/scala/scala3/pull/19533)
- Update asm to 9.8.0 [#23004](https://github.com/scala/scala3/pull/23004)

# Contributors

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

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

```
2 Seth Tisue
1 Tomasz Godzik
1 philippus
```
Loading
Loading