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

Resolve conflicts between stable documentation and main #16306

Merged
merged 46 commits into from
Nov 17, 2022

Conversation

Kordyjan
Copy link
Contributor

@Kordyjan Kordyjan commented Nov 9, 2022

No description provided.

Kordyjan and others added 30 commits September 1, 2022 16:42
If we see a class type parameter that has a wildcard argument, we now intersect
the original info of the class type parameter and the argument. Previously we
replaced the class type parameter info with the argument info, but that might lose
information.

Fixes scala#15940
Be still more careful when intersecting info and arguments of a class type parameter.
This is the latest installment of a never-ending story.

The problem is this: Given
```scala
class C[T >: L1 <: H1] { val x: T }
def f(): C[? >: L2 <: H2]
```
what is the type of `f().x`?

With capture conversion (an extremely tricky aspect of the type system forced on us
since Java does it), the type is something like `?1.T` where `?1` is a skolem variable
of type `C[? >: L2 <: H2]`. OK, but what is the underlying (widened) type of `?1.T`?

We used to say it's `C[T >: L1 <: H1]`. I.e. we forgot about the actual arguments.
But then we had to change untupling desugarings from defs to vals in scala#14816 to fix
scala#14783 and it turned out that was not good enough, we needed the information of the
actual arguments, i.e. the type should be `C[T >: L2 <: H2]. Then something else started
failing which relied on the formal arguiment bounds being preserved. So the new resolution
was that the type would be the intersection of the formal parameter bounds and the actual
bounds, i.e. `C[T >: L1 | L2 <: H1 & H2]`. Then there was a series of problems where _that_
failed, either because the parameter bound was F-bounded or because the intersection was an
empty type. The latest installment is that the parameter bounds refer to another parameter
in the same class, which requires a simultaneous substitution of all skolemized bounds for
all dependent parameter references in the parameter bounds. But that's impossible or at least
very hard to achieve since we are looking at the type of a single parameter after capture conversion here.
So the current solution is to also back out of the intersection if there are cross-parameter
references and to use just the argument bounds instead.
Was truncating tuples of size > 22 before.

Fixes scala#16104
Kordyjan and others added 5 commits November 7, 2022 17:19
Now when we are syncing `language-reference-stable` with the release
branches after each patch release, it is safe to use the `baseVersion`
as a version for the documentation. It wasn't the case earlier because
we assumed a slightly more complicated model for publishing the
reference documentation.

Note to self:
This should be ported to both `main` and `release-3.2.2`. The former
will be tried automatically, but will probably fail due to conflicts.

see: scala#15598
fix the quick links in the top nav bar

after:
<img width="1240" alt="Screenshot 2022-11-08 at 16 55 23"
src="https://user-images.githubusercontent.com/13436592/200613015-5e1fb513-2da9-4ad6-8eb9-56306cf47803.png">
Copy link
Member

@bishabosha bishabosha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can't change the TASTy version

@Kordyjan Kordyjan force-pushed the documentation-forwardpost branch from 3821908 to eee068d Compare November 10, 2022 09:26
@Kordyjan Kordyjan force-pushed the documentation-forwardpost branch 2 times, most recently from c777a68 to 8e759cd Compare November 16, 2022 14:10
@Kordyjan Kordyjan force-pushed the documentation-forwardpost branch from 8e759cd to 8f8c3a4 Compare November 16, 2022 14:56
@Kordyjan Kordyjan requested a review from bishabosha November 16, 2022 15:13
Copy link
Member

@bishabosha bishabosha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the changes to reference/other-new-features/indentation.md need reverting

@Kordyjan Kordyjan requested a review from bishabosha November 17, 2022 09:36
@Kordyjan Kordyjan merged commit 00c1950 into scala:main Nov 17, 2022
@Kordyjan Kordyjan deleted the documentation-forwardpost branch November 17, 2022 11:35
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.

7 participants