summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2016-09-01 10:41:28 +0200
committerGitHub <noreply@github.com>2016-09-01 10:41:28 +0200
commitf90bf565a529d0e95155992a3c243952183f25a5 (patch)
tree151f8d8d79dba64a96d12b1c4a9c4fa38269dcf8 /src/library
parent45edf8699f76faa5d1b035fb8f887621bcbb9934 (diff)
parent743f0d2c2a33bc8ab0c1f7bee796865672ba2fcc (diff)
downloadscala-f90bf565a529d0e95155992a3c243952183f25a5.tar.gz
scala-f90bf565a529d0e95155992a3c243952183f25a5.tar.bz2
scala-f90bf565a529d0e95155992a3c243952183f25a5.zip
Merge pull request #5294 from adriaanm/fields-lazies
Fields: expand lazy vals during fields, like modules
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/runtime/LazyRef.scala52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/library/scala/runtime/LazyRef.scala b/src/library/scala/runtime/LazyRef.scala
new file mode 100644
index 0000000000..3cd2d2d06b
--- /dev/null
+++ b/src/library/scala/runtime/LazyRef.scala
@@ -0,0 +1,52 @@
+package scala.runtime
+
+/* Classes used as holders for local lazy vals */
+
+class LazyRef[T] {
+ var value: T = _
+ @volatile var initialized: Boolean = false
+}
+
+class LazyBoolean {
+ var value: Boolean = _
+ @volatile var initialized: Boolean = false
+}
+
+class LazyByte {
+ var value: Byte = _
+ @volatile var initialized: Boolean = false
+}
+
+class LazyChar {
+ var value: Char = _
+ @volatile var initialized: Boolean = false
+}
+
+class LazyShort {
+ var value: Short = _
+ @volatile var initialized: Boolean = false
+}
+
+class LazyInt {
+ var value: Int = _
+ @volatile var initialized: Boolean = false
+}
+
+class LazyLong {
+ var value: Long = _
+ @volatile var initialized: Boolean = false
+}
+
+class LazyFloat {
+ var value: Float = _
+ @volatile var initialized: Boolean = false
+}
+
+class LazyDouble {
+ var value: Double = _
+ @volatile var initialized: Boolean = false
+}
+
+class LazyUnit {
+ @volatile var initialized: Boolean = false
+}