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

[sync/backports]: Synchronize with scala/scala3-lts #22160

Merged
merged 48 commits into from
Dec 9, 2024

Conversation

WojciechMazur
Copy link
Contributor

No description provided.

hamzaremmal and others added 30 commits December 4, 2024 23:52
Previously we only supported suspension in Typer and Inliner. In the added test
case this happens in PostTyper, but I've seen it happen in Mixin too.

Fixes scala#18517.

[Cherry-picked bac8781][modified]
Bumps [webrick](https://github.com/ruby/webrick) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/ruby/webrick/releases)
- [Commits](ruby/webrick@v1.8.1...v1.8.2)

---
updated-dependencies:
- dependency-name: webrick
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
[Cherry-picked 97455cf]
…pe (like a SkolemType)

When the SkolemType appears as the prefix of a TypeRef, we avoid it by going
using `qualifier` which is defined in QuotesImpl to widen skolem, but skolems
can appear in any position, and so before this change we would get a compiler
crash in the added test case where the skolem appears as the prefix of a
TermRef.

We fix this by adding fallback cases in the quotes pretty-printer, now for the
test case we get:

    Test.f.ho(((arg: <<SkolemType(693709097) does not have a corresponding extractor> does not have a source representation>.x.type) => arg))

Which isn't great, but better than a crash.

Maybe we should run `Type#deskolemized` on a type before trying to print it in
SourceCode/Extractors, but currently these files are intentionally defined to
not depend on compiler internals and do not have a `Context` so we cannot even
call `deskolemized` on them.

Alternatively, maybe SkolemType should be a tasty-reflect constructor but that
would also be a pretty big change.

[Cherry-picked 0ee8762][modified]
The pretty-printing logic for a Recheck phase
applies the phase to the tree. But if there was
a type error, then the pretty printing would
have previously crashed the compiler.

[Cherry-picked a990978][modified]
The added test case used to fail Ycheck:typer with the seemingly identicals:

    Found:    (a: (aa : A{type B = Int}), b: a.B): CCPoly[(aa : A{type B = Int})]
    Required: (a: (aa : A{type B = Int}), b: a.B): CCPoly[(aa : A{type B = Int})]

In fact one of the `aa` is a a TypeVar instantiated to `A {type B = Int }`. The
MethodType comparison failed the signature check because the `a.B` where `a` is
backed by a type variable had a stale signature cached.

Fixed by changing `isProvisional` to traverse ParamRefs.

[Cherry-picked c32e535][modified]
Always treat underscores as type bounds inside patterns, even when `ctx.settings.XkindProjector.value == "underscores"`.

Fixes scala#14952 and scala#21400.

[Cherry-picked 374cd4f][modified]
This is similar to how the regular compiler `.show` handles `infix` but using
explicit parens everywhere to not have to reimplement the precedence
logic (maybe quote type printing should just use `.show` eventually).

[Cherry-picked 936c009]
Co-authored-by: Wojciech Mazur <[email protected]>
[Cherry-picked f6bfa0a][modified]
[Cherry-picked dd47185][modified]
- Forward-ports changes to `publish_release` CI job from `release-3.6.1`
branch.
* Fix building SDK archives, don't use `build-sdk-packages` job that
produced artifacts in SNAPSHOT version
  * Fix typos introduced in template (forward port from `release-3.6.0`)
- Detect and check version used to publish artifacts: 
* For release builds ensure that `version` is always matching tag used
to trigger CI job
* For nightly builds ensure that `version` is following the expected
pattern

[Cherry-picked 34f1c54][modified]
Backport "Enable PC tests in test_windows_fast" to LTS
Backport "Filter opaque modifier from object documentation" to LTS
Backport "Add better error reporting for inlined non-immutable paths" to LTS
Backport "Make right assoc ext method fwd refs error" to LTS
Backport "Tighten java annot value parsing" to LTS
Backport "Handle suspension due to macro call in arbitrary phases" to LTS
Backport "Allow export statements in AnyVal" to LTS
Backport "Bump webrick from 1.8.1 to 1.8.2 in /docs/_spec" to LTS
Backport "Expr#show: Don't crash when the expression contains an unsupported type (like a SkolemType)" to LTS
Backport "Let show behave more robustly for Recheck" to LTS
Backport "Always rewrite empty List() to Nil" to LTS
Backport "fix `dotty.tools.dotc.config.Properties` scaladoc" to LTS
Backport "Fix incorrect caching with dependent method parameters" to LTS
Backport "Have a better error message when healing types" to LTS
Backport "Always interpret underscores inside patterns as type bounds" to LTS
Backport "Quotes type printing: take `infix` type modifier into account" to LTS
Backport "REPL: JLine 3.27.0 (was 3.25.1)" to LTS
Backport "Scala 2.13.15 (was .14)" to LTS
Backport "Add zip and unzip to the CI" to LTS
Backport "Fix and future-proof the CI release scripts" to LTS
Backport "Use bash shell when using here-strings" to LTS
Backport "Fix CLA checks after domain change of CLA check server" to LTS
@WojciechMazur WojciechMazur merged commit e92d7ec into scala:lts-3.3 Dec 9, 2024
17 checks passed
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.

8 participants