You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
martin> Is it used somewhere in the standard library? I agree that if possible we should deprecate it.
martin> As far as I can tell, the intent was that it provides a view. So, the implementation
def readOnly = this
Is perfectly fine.
The text was updated successfully, but these errors were encountered:
Example:
scala> val buf = scala.collection.mutable.ListBuffer[Int](1, 2)
buf: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2)
scala> def f(): List[Int] = buf.readOnly
f: ()List[Int]
scala> val innocent = f()
innocent: List[Int] = List(1, 2)
scala> buf ++= (1 to 100)
res4: buf.type = ListBuffer(1, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
scala> innocent
res5: List[Int] = List(1, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
This was discussed long ago there:
https://groups.google.com/d/msg/scala-internals/g_-gIWgB8Os/kWazrALbLKEJ
The summary of discussion:
martin> Is it used somewhere in the standard library? I agree that if possible we should deprecate it.
martin> As far as I can tell, the intent was that it provides a view. So, the implementation
def readOnly = this
Is perfectly fine.
The text was updated successfully, but these errors were encountered: