Skip to content

Commit 9cd3fb6

Browse files
committed
make Predef.*CharSequence implicits public again
fixing a recent regression in 2.13 when I was removing deprecated stuff in scala#5683 I was going too fast and misunderstood these deprecations. only the names of the class parameters were supposed to become private, not the entire class. note that now that the parameters aren't even vals anymore, they don't need to have funny `__` names anymore, either. this was caught by the Scala community build.
1 parent c348b7e commit 9cd3fb6

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

src/library/scala/Predef.scala

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -314,19 +314,19 @@ object Predef extends LowPriorityImplicits {
314314
def +(other: String): String = String.valueOf(self) + other
315315
}
316316

317-
private[scala] implicit final class SeqCharSequence(val __sequenceOfChars: scala.collection.IndexedSeq[Char]) extends CharSequence {
318-
def length: Int = __sequenceOfChars.length
319-
def charAt(index: Int): Char = __sequenceOfChars(index)
320-
def subSequence(start: Int, end: Int): CharSequence = new SeqCharSequence(__sequenceOfChars.slice(start, end))
321-
override def toString = __sequenceOfChars mkString ""
317+
implicit final class SeqCharSequence(sequenceOfChars: scala.collection.IndexedSeq[Char]) extends CharSequence {
318+
def length: Int = sequenceOfChars.length
319+
def charAt(index: Int): Char = sequenceOfChars(index)
320+
def subSequence(start: Int, end: Int): CharSequence = new SeqCharSequence(sequenceOfChars.slice(start, end))
321+
override def toString = sequenceOfChars mkString ""
322322
}
323323

324324
/** @group implicit-classes-char */
325-
private[scala] implicit final class ArrayCharSequence(val __arrayOfChars: Array[Char]) extends CharSequence {
326-
def length: Int = __arrayOfChars.length
327-
def charAt(index: Int): Char = __arrayOfChars(index)
328-
def subSequence(start: Int, end: Int): CharSequence = new runtime.ArrayCharSequence(__arrayOfChars, start, end)
329-
override def toString = __arrayOfChars mkString ""
325+
implicit final class ArrayCharSequence(arrayOfChars: Array[Char]) extends CharSequence {
326+
def length: Int = arrayOfChars.length
327+
def charAt(index: Int): Char = arrayOfChars(index)
328+
def subSequence(start: Int, end: Int): CharSequence = new runtime.ArrayCharSequence(arrayOfChars, start, end)
329+
override def toString = arrayOfChars mkString ""
330330
}
331331

332332
implicit val StringCanBuildFrom: CanBuildFrom[String, Char, String] = new CanBuildFrom[String, Char, String] {
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package scala
2+
3+
import org.junit.Test
4+
import org.junit.Assert._
5+
import org.junit.runner.RunWith
6+
import org.junit.runners.JUnit4
7+
8+
// these two implicit conversions come from Predef
9+
10+
@RunWith(classOf[JUnit4])
11+
class CharSequenceImplicitsTests {
12+
@Test def arrayAsCharSequence(): Unit =
13+
assertEquals("ab", (Array ('a', 'b'): CharSequence).toString)
14+
@Test def indexedSeqAsCharSequence(): Unit =
15+
assertEquals("ab", (IndexedSeq('a', 'b'): CharSequence).toString)
16+
}

0 commit comments

Comments
 (0)