Skip to content

Commit a7f477c

Browse files
wip
1 parent 8c0e910 commit a7f477c

File tree

1 file changed

+26
-30
lines changed

1 file changed

+26
-30
lines changed

docs/blog/_posts/2019-05-24-15th-dotty-milestone-release.md

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,32 @@ For the migration purposes, the above change will only take effect in Dotty 3.1
146146

147147
For more information, see the [documentation](http://dotty.epfl.ch/docs/reference/changed-features/pattern-bindings.html).
148148

149+
## Further improvements to GADT support
150+
In this release, we've further improved our support for Generalised Algebraic Data Types (GADTs). Most notably, we now support variant GADTs:
151+
152+
```scala
153+
enum Expr[+T] {
154+
case StrLit(s: String) extends Expr[String]
155+
case Pair[A, B](a: Expr[A], b: Expr[B]) extends Expr[(A, B)]
156+
}
157+
158+
def eval[T](e: Expr[T]): T = e match {
159+
case Expr.StrLit(s) => s
160+
case Expr.Pair(a, b) => (eval(a), eval(b))
161+
}
162+
```
163+
164+
We've also plugged a few soundness problems caused by inferring too much when matching on abstract, union and intersection types.
165+
149166

150167
## Other changes
151-
Some of the other notable changes include:
168+
Some of the other notable changes include the following:
169+
170+
- Dotty is now fully boostrapped. This means that we are able to compile Dotty with Dotty itself, and hence use all the new features in the compiler code base.
171+
- Singletones are now allowed in union types. E.g. the following is allowed: `object foo; type X = Int | foo.type`.
172+
- A bunch of improvements was made for the type inference system – see, e.g., PRs [#6454](https://github.com/lampepfl/dotty/pull/6454) and [#6467](https://github.com/lampepfl/dotty/pull/6467).
173+
- Improvements to the Scala 2 code support which, in particular, improves Cats support – see PRs [#6494](https://github.com/lampepfl/dotty/pull/6494) and [#6498](https://github.com/lampepfl/dotty/pull/6498).
152174

153-
- Dotty is now fully B
154175

155176
# Let us know what you think!
156177

@@ -162,36 +183,10 @@ If you have questions or any sort of feedback, feel free to send us a message on
162183

163184
Thank you to all the contributors who made this release possible!
164185

165-
According to `git shortlog -sn --no-merges 0.13.0-RC1..0.14.0-RC1` these are:
186+
According to `git shortlog -sn --no-merges 0.14.0-RC1..0.15.0-RC1` these are:
166187

167188
```
168-
214 Martin Odersky
169-
151 Nicolas Stucki
170-
71 Liu Fengyun
171-
53 Guillaume Martres
172-
26 Olivier Blanvillain
173-
10 Aleksander Boruch-Gruszecki
174-
9 Aggelos Biboudis
175-
6 Miles Sabin
176-
4 Allan Renucci
177-
4 Dale Wijnand
178-
3 Anatolii Kmetiuk
179-
2 Fengyun Liu
180-
2 Alex Zolotko
181-
1 gnp
182-
1 tim-zh
183-
1 Dmitry Petrashko
184-
1 Dotty CI
185-
1 Jasper Moeys
186-
1 Jentsch
187-
1 Jim Van Horn
188-
1 Lionel Parreaux
189-
1 Master-Killer
190-
1 Olivier ROLAND
191-
1 Robert Stoll
192-
1 Seth Tisue
193-
1 Tomasz Godzik
194-
1 Victor
189+
TODO
195190
```
196191

197192
If you want to get your hands dirty and contribute to Dotty, now is a good time to get involved!
@@ -223,3 +218,4 @@ to make sure that our regression suite includes your library.
223218
[@Duhemm]: https://github.com/Duhemm
224219
[@AleksanderBG]: https://github.com/AleksanderBG
225220
[@milessabin]: https://github.com/milessabin
221+
[@anatoliykmetyuk]: https://github.com/anatoliykmetyuk

0 commit comments

Comments
 (0)