From 52fc34e464993b99da7443270a5dbf92fb086b38 Mon Sep 17 00:00:00 2001 From: Jamie Thompson Date: Fri, 14 Jul 2023 20:11:12 +0200 Subject: [PATCH] mark value classes as scala 2 only --- _overviews/core/value-classes.md | 8 ++++++-- _overviews/scala3-book/types-opaque-types.md | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/_overviews/core/value-classes.md b/_overviews/core/value-classes.md index 46d63f9e3a..18c84f43fa 100644 --- a/_overviews/core/value-classes.md +++ b/_overviews/core/value-classes.md @@ -7,9 +7,11 @@ partof: value-classes languages: [ja, zh-cn] permalink: /overviews/core/:title.html +scala2: true +versionSpecific: true --- -**Mark Harrah** +In Scala 3, a similar result can be achieved with [opaque types][opaques]. ## Introduction @@ -212,7 +214,7 @@ Note that local classes, traits, and objects are not allowed either, as in the f ... } } - + Local.scala:3: error: implementation restriction: nested class is not allowed in value class class Local ^ @@ -272,3 +274,5 @@ but this is allowed because the enclosing object is top-level: object Outer { class Inner(val x: Int) extends AnyVal } + +[opaques]: {% link _overviews/scala3-book/types-opaque-types.md %} diff --git a/_overviews/scala3-book/types-opaque-types.md b/_overviews/scala3-book/types-opaque-types.md index b3a3edf0a7..1d7483630c 100644 --- a/_overviews/scala3-book/types-opaque-types.md +++ b/_overviews/scala3-book/types-opaque-types.md @@ -6,9 +6,12 @@ languages: [ru, zh-cn] num: 55 previous-page: types-variance next-page: types-structural +scala3: true +versionSpecific: true --- -Scala 3 _Opaque type aliases_ provide type abstractions without any **overhead**. +_Opaque type aliases_ provide type abstraction without any **overhead**. +In Scala 2, a similar result could be achieved with [value classes][value-classes]. ## Abstraction Overhead @@ -142,3 +145,4 @@ As illustrated above, opaque types are convenient to use, and integrate very wel [extension]: {% link _overviews/scala3-book/ca-extension-methods.md %} +[value-classes]: {% link _overviews/core/value-classes.md %}