Skip to content

Sync with the stable documentation branch #17195

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

Merged
merged 3 commits into from
Apr 12, 2023
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
5 changes: 2 additions & 3 deletions docs/_docs/reference/changed-features/lazy-vals-init.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ title: Lazy Vals Initialization
nightlyOf: https://docs.scala-lang.org/scala3/reference/changed-features/lazy-vals-init.html
---

Scala 3 implements [Version 6](https://docs.scala-lang.org/sips/improved-lazy-val-initialization.html#version-6---no-synchronization-on-this-and-concurrent-initialization-of-fields)
of the [SIP-20] improved lazy vals initialization proposal.
Scala 3 implements Version 6 of the [SIP-20] improved lazy vals initialization proposal.

## Motivation

Expand Down Expand Up @@ -77,4 +76,4 @@ recursive lazy vals is undefined (initialization may result in a deadlock).

* [SIP-20]

[SIP-20]: https://docs.scala-lang.org/sips/improved-lazy-val-initialization.html
[SIP-20]: https://github.com/scala/improvement-proposals/pull/19
28 changes: 22 additions & 6 deletions docs/_docs/reference/metaprogramming/tasty-inspect.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,33 @@ title: "TASTy Inspection"
nightlyOf: https://docs.scala-lang.org/scala3/reference/metaprogramming/tasty-inspect.html
---

```scala
libraryDependencies += "org.scala-lang" %% "scala3-tasty-inspector" % scalaVersion.value
```

TASTy files contain the full typed tree of a class including source positions
and documentation. This is ideal for tools that analyze or extract semantic
information from the code. To avoid the hassle of working directly with the TASTy
information from the code.

To avoid the hassle of working directly with the TASTy
file we provide the `Inspector` which loads the contents and exposes it
through the TASTy reflect API.

## Inspecting TASTy files
We also showcase TASTyViz, a visualiser for tasty, useful for debugging and checking your understanding of TASTy

## TASTyViz

<!-- Keep synced with https://github.com/scala/docs.scala-lang/blob/main/scala3/guides/tasty-overview.md -->

TASTyViz is a tool to inspect TASTy files visually.
At the time of writing, it is still in the early stages of developement, therefore you can expect missing functionality and less-than-ideal user experience, but it could still prove useful when debugging.
You can check it out [here](https://github.com/shardulc/tastyviz).

## `Inspector`

`Inspector` is a tool which provides API access to TASTy.

You can add the depency to your sbt build like so:
```scala
libraryDependencies += "org.scala-lang" %% "scala3-tasty-inspector" % scalaVersion.value
```


To inspect the trees of a TASTy file a consumer can be defined in the following way.

Expand Down
2 changes: 1 addition & 1 deletion docs/_docs/reference/new-types/union-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: "Union Types"
nightlyOf: https://docs.scala-lang.org/scala3/reference/new-types/union-types.html
---

A union type `A | B` has as values all values of type `A` and also all values of type `B`.
A union type `A | B` includes all values of both types.


```scala
Expand Down